Following a blog post by John D. Cook, I started reading Fred Brooks‘ latest book. Brooks is famous, among other things, for his earlier book, the Mythical Man-Month. The book is really a collection of essays, organized like blog posts. It is really engaging.
I had never read about design per se, except in Paul Graham‘s essays. For me, the core message of the book is that writing software, planning houses, writing books or poems, are very similar tasks. The metaheuristics are the same. The lessons you must learn are similar. You are trying to solve very large NP-hard problems where you can’t reliably divide the problem space. Systematic greedy algorithms may work, but they may also mislead you. You need some formalism, some rigor, but you also need experience, or instinct.
Wasn’t Brooks the one who said build the first one to throw it away?
I had a few ideas along those lines some years ago.
The Methodology of Rational System Design http://web.ncf.ca/andre/publications/methodology_of_design.pdf
@Vellino I like your paper.
@Nei: among many other things. FB’s concerned with the human and organisational aspects of building systems. Although his case studies in tmmm are mostly very old in computing terms, they are even more powerful since they show that for any sizeable project the challenges don’t lie with the technology per se (which is where most of his readers seem to think the answer lies), but with the people and processes.
“Throw the first one away” acknowledges that the key deliverables from early work in new problem/implementation spaces are lessons learned about the problems and solutions, rather than working systems.