Moore's Law of big tech projects

The best way to build something big is to start small. You can't do that with an airplane.

It always costs more and takes longer. Adding people just slows things down.

--Frederick Brooks

Co-blogger John Dodge has been giving SmartPlanet readers a real treat in his coverage of the ongoing Boeing 787 saga.

But delaying the product a year and watching the top guy walk are no surprise to tech historians. Every project, as it grows in complexity, takes longer and costs more than originally expected.

In computing we saw this first in the IBM S/360.

In the 1960s these computers transformed the industry. They were the first to run the same software across the product line, separating applications from operating systems for the very first time.

The most heart-rending memoir of those days was Thomas Watson Jr.'s Father, Son & Co. Watson's father created IBM in his image. Watson Jr. transformed it into a computer company, and made the fateful S/360 decision.

One casualty of the S/360 delays was Watson's brother Dick. Tom gave Dick the project as a stepping-stone to the CEO job. It was Dick's head that was chopped when failure came.

Why this happens is revealed in another book, The Mythical Man Month, by OS/360 manager Frederick Brooks. In it he describes Brooks' Law, "adding manpower to a late software project makes it later". (Buy it now at Amazon.Com.)

This is true because when you hire people you have to train them, and manage them. This takes time. Software development is an intellectual endeavor, so as projects become more software-intensive -- and even planes today use a lot of software -- Brooks' Law holds in more places.

I have my own way of describing the process. I call it Moore's Law of Software. Fact is, there is no Moore's Law of Software. Hardware gets more complex, and software reaches higher levels of abstraction, but while the former moves exponentially the latter moves arithmetically.

What John's reporting proves is that Moore's Law of Software applies to airplanes, too.

Anyone who has ever been inside a big, important software project knows the result of this. Late nights, all-nighters, and giant "pushes" followed by vacations and sabbaticals that are timed to the product life cycle, rather than the developer's life cycle.

My wife has been in on several of these in 26 years as a programmer, and I can tell you it takes a toll. They say as a result that software is a young man's (or woman's) game, but it takes a toll on young programmers, too.

One way technology deals with this is through continual cycles of destruction. If it seems that we've been building the same things, over and over, moving from PCs to the Internet to cell phones, and from proprietary tools to open source, we have.

The best way to build something big is to build from pieces, to start from a blank sheet, so the history of technology is one of starting small, building something big from pieces, then starting over.

You can't really do that with an airplane. Each plane is a separate project, not just pieces but an integrated whole. Software must drive design, fabrication, manufacturing and testing, and given the long lead-times that result much of it must be invented on-the-fly or integrated along the way.

None of this answers the questions Boeing is asking about its 787. It merely explains them. The answers have yet to come.

As Brooks wrote most famously, "there is no silver bullet." Maybe you can help create one.

This post was originally published on Smartplanet.com