Lessons from Fred Brooks
Brooks is one of my revered writers on the subject of software engineering. The basic lessons in The Mythical Man Month are so obvious and fundamental yet often obscured or forgotten in many of the projects that I’ve worked on. Certainly, even this classic is “no silver bullet”, as Brooks himself would concede, but it offers sage advice for aspiring developers and architects.
In this month’s Wired magazine (8.10), he dishes some more wisdom in an interview with Wired’s Kevin Kelly.
KK: You say that the Job Control Language you developed for the IBM 360 OS was “the worst computer programming language ever devised by anybody, anywhere.” Have you always been so frank with yourself?
FB: You can learn more from failure than success. In failure you’re forced to find out what part did not work. But in success you can believe everything you did was great, when in fact some parts may not have worked at all. Failure forces you to face reality.
KK: In your experience, what’s the best process for design?
FB: Great design does not come from great processes; it comes from great designers.
Both these points resonate with me and I think the last point is particularly salient. Brooks highlights an example in Steve Jobs:
KK: You’re a Mac user. What have you learned from the design of Apple products?
FB: Edwin Land, inventor of the Polaroid camera, once said that his method of design was to start with a vision of what you want and then, one by one, remove the technical obstacles until you have it. I think that’s what Steve Jobs does. He starts with a vision rather than a list of features.
Brooks’ The Mythical Man Month and The Design of Design should be on every developer, architect, and IT project manager’s reading list.