On the design of design

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.

Published by

Daniel Lemire

A computer science professor at the University of Quebec (TELUQ).

4 thoughts on “On the design of design”

  1. @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.

Leave a Reply

Your email address will not be published.

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax

You may subscribe to this blog by email.