Just as a coder must anticipate what users will do with a piece of software and make sure that there aren’t dead-ends or overflows, a lawyer has to think hard about anything that could possibly happen in the future.