The tree house model of software engineering

When I was a kid I had a tree house. What I built ended up with looked something like the one shown here, but with only one level. It seemed like a good idea at the time, but what I really ended up with was a hideous blob of boards that looked like they had been nailed to a tree in some sort of random pattern. Looking at that picture more than reminds me of my own tree house; it also reminds me of designing software.

Just like I thought I was building a good, solid tree house, software architects think that they're designing useful and elegant software. Andjust like I realize that the tree house that I built back then wasn't really as good as I thought it was, the software that we're getting these days really isn't as good as it could be.

There are probably lots of good pictures of ugly tree houses on the Internet. Maybe I'll find a particularly dramatic one to use the next time that I have to give a talk about software engineering.

  • Sam Cannon

    I’m glad your tree had a good trunk at least, because trees use the UNIX system and need a central philosophy: life needs a good way to communicate from the nidus to the front lines. Without good pipes, programs can’t communicate on the way out and on the way in!
    See “The Unix Philosophy” and Abe Maslow’s work.


Leave a Reply

Your email address will not be published. Required fields are marked *