. .


The Design of Design

May 23, 2010 14:37:56.486

I wrote a bit about Fred Brooks' fine book earlier, but now I've finished it.

While the essays in the early part of the book were quite good (and I touched on that in my earlier post), the case studies were perhaps the most illustrative things. Why? Partly because Brooks does what far too few of us are willing to do - ponder oversights and mistakes made during the design process and how they impacted later use. That came up both in discussions of his beach house (which he was a co-designer), and of the IBM System/360.

After any major deliverable, I think it's worth taking stock of what happened and why. As well, these words from Brooks (in the context of the 360) make a ton of sense for any real system:

Allow plenty of time for design. It makes the product much better and useful longer, and it might even make delivery sooner by reducing rework

Two large examples from the history of VisualWorks come to mind: VW 2.0 and VW 5i.0. In the first case, what came to be known as the ObjectLens (and O/R mapping framework) was brought in from the outside by marketing, and then an additional year of development work was done in order to make it minimally deliverable. No on at PPS (or the successor owners) was ever happy with Lens - in fact, the original developer of the code had left engineering, and been allowed to take the code with him - partly because no one in engineering had much faith in it. That code has been problematic ever since, and is only now being replaced with something better (Glorp).

VW 5i.0 was rushed for management reasons - there were bad numbers about to come out, and management wanted a release "to soften the blow". 5i.0 was not even vaguely ready for release; Store was unstable, and the (then new) namespace system still had kinks in it. It took two releases from the new owner (Cincom) before the 5i line was minimally usable, and, to some extent, things didn't really stabilize until the 7.x release line.

Those were both management failures as well as design failures, but - a willingness to spend more time on design, and less on "quick fixes" would have been better for everyone. That's one of the major lessons of the case studies, at least for me. Overall, I liked the book - it's accessible to anyone who's associated even loosely with design, and makes high level points without going off into the weeds on any of the examples. I highly recommend it.

Technorati Tags: ,

posted by James Robertson

 Share Tweet This