Software Articles

PDF files of articles I've published about the fine art of composing software.

Managing in Mayberry (STQE, Jan/Feb 2001)

Don Gray and I wrote this article, in which Barney, Aunt Bee and Sheriff Andy demonstrate three management styles: the micro-manager who'd prefer to be directing robots, the motherly manager who thinks she's in charge of a bunch of kids, and the masterly manager who accepts that he's managing grown-up human beings who are capable of doing things for themselves most of the time. It was a lot of fun to write, and seems to have taken on a life of its own, as Don's still maintaining it on the AYE Conference web site. You can download a PDF of the article, as it originally appeared in STQE, by clicking here.


A Blueprint for Success (STQE, Jul/Aug 2002)

The Systems Architecture Review Board (SARB) at Lucent Technologies spent eleven years developing a process for testing systems and software by performing expert reviews during the architecture stage of the project. At the time the article was written, we had performed some 500 architecture reviews and estimated (conservatively) that the process had saved the company tens of millions of dollars just by avoiding wasted development effort (and many millions more in schedule slips and customer dissatisfaction). The article, co-written with Bell Labs manager Gus Zimmerman, explains the rationale for testing software architecture, describes the process for carrying out architecture reviews, and gives some tips for introducing a review process. You can download a PDF file containing the article, as it appeared in STQE, by clicking here.


What Supports the Roof? (Software Development, July 2003)

When preparing to remodel my 60-year-old house, I discovered that a previous remodeling had removed an internal load-bearing wall, so that nothing was holding up the roof! About the same time, I witnessed a project whose whole purpose was to assure platform independence lock itself into a specific model from a single vendor. This got me thinking about long-term evolvability, and the way that buildings neatly separate the structural elements that rarely change from the cosmetic and furniture elements that are in constant churn. The article tries to offer a similar way of thinking about software, a conceptual layering based on the rate at which requirements change. The article also contains a sidebar on the values and potential pitfalls of metaphors like "software architecture" (that is, the metaphor that a good piece of software is in some way like a good building). You can download a PDF file of the article, as it appeared in Software Development, by clicking here.