In software design, if dogma doesn't work, examine its opposite—heresy. At the very least, such an examination can open your mind to new approaches. At worst, it can reinforce your conviction that there's no reliable way to design software. Heresy 1: If you know exactly how to do it, it's not worth doing. We need to control complexity because our minds are easily overwhelmed by it. That's the attraction of computers: They let us extend the power of our minds in useful ways. Programming is unique in that you need never do exactly the same job twice.
展开▼