Excerpts from an interview with Tom West and Tracy Kidder, three years after the publication of The Soul of a New Machine:
West: If somebody walks into your office after five minutes of staring at a sheet of paper and asks: "Should we make this register sixteen bits wide or thirty-two bits wide?" you know the answer to this question if you have been through it over and over and over again. So you can tell him the answer, and he goes back and puts it in. The he sits around for another five minutes before coming back with the next question. In some sense that is sort of what happens.
If you can send him back to his office and he thinks a little while longer, ten minutes, fifteen minutes, or a half an hour, and then he gets a little scared because he's got to have the right answer by the time he goes back in again, you extend his span of attention before he is finally ready to go and scream for help.
It seems to me that that is one of the most valuable lessons that you can teach a kid who is coming into this business right out of school. A span of attention of five minutes or even half an hour is not really going to do it. There are some problems that only yield after three hours of just staring at them. I'm sure all of those have been doing design work have seen exactly that same thing happen. It is the ability not to give up even after two hours of trying to stare something down. Part of that is what is embedded in that whole style of trying to make the easy answers difficult to get.
It's reassuring that this is not a new issue, since this interview was written in 1983. Slack and email may be making the problem worse, but it's always been there. And so have the rewards for overcoming it.
Q: The book mentions a saying in Mr. West's office that anything worth doing is not necessarily worth doing well or something along those lines.
Kidder: One of the things that I began to learn about engineers is that they are aesthetes as much as they pretend to be something else. I've seen this most vividly in the intersection of engineers and non-computer scientists. The engineer talks about technical symmetry and the scientist says I just want something that works. I think that that was what that piece of cryptic puzzling advice was. How did it go? Not everything worth doing is worth doing well.
West: I am very comfortable with that notion. I suspect that there are more people who fail in our industry because they try to do it perfectly, as opposed to doing it on time and on cost.
This is mostly a reminder to myself. I think at some level, software engineers have this dream that because we work in a world of pure logic we can make these perfect little clockwork programs. But you have to accept good enough.
There is a pattern where you do well enough under constraints that you are trusted to make decisions. But you doom yourself if you then use that trust to relax the constraints that produced the good work in the first place.
Also reassuring to know this is not a new problem.