An old friend and former client — let's call him "Paul L." — sent me an email question the other day, asking “Is incremental design the wave of the future, or just a flash in the pan?”
When I finished my response, I thought that it might be of interest to a wider audience. Here is the exchange.
My wife teaches computer science at Menlo College. She has been teaching software engineering based upon the traditional cycle of specification, design, development, testing.
I have seen some Research Channel TV shows that talk about Incremental design. Google and Inuit are two companies that seem to be having some success with ID.
My wife and I have been talking about ID as compared to the traditional methods. During the discussion I thought about my friend, the Design Guru. I am wondering if you have any thoughts on ID. Is it the wave of the future or just another flash in the pan?
As agile methods take over the programming world (and they will), EVERYONE else will adjust accordingly. The old paradigm of everyone hunkering down and protecting their turf from everyone else is what gave rise to the "traditional cycle" (which is, by the way, uniquely ill-suited to software construction and design). The new (agile) paradigm isn't at all defined yet, but it characteristically includes a) Generation Y programmers; b) a refreshing belief in the potential for change; c) the understanding that satisfying human users requires special efforts and probably special skills; d) a belief that software should be built in continuous increments; e) a corresponding belief that everything else in the world relating to software would benefit from such continuous increments; f) that building software is a team endeavor; and g) that nobody has solved these problems before. It's very reminiscent of the way I felt in 1976. At that time, all computers were multi-million-dollar affairs, residing in specialized corporate bunkers, owned only by large corporations, and used to perform operational business functions. I, on the other hand, had just purchased my first computer. It was a 1MHz, 8-bit microcomputer with 8" floppy drives and 64K of memory. All of the then-current assumptions about software development, creation and use were marked for death as we Boomer Generation programmers began to invert the dominant paradigm. Within 15 years, we had utterly changed every aspect of software and computing, and today's agile, Web 2.0, open source, Gen Y programmers will do the same, only faster. Interestingly, the changes we wrought were almost all bottom-up. The only influence large corporations had on the great microcomputer software revolution were to obfuscate and delay it. And, of course, the reason why we study history is so that we can chuckle at the irony of its inevitable repetition. Today's changes are also coming up from the bottom, and big companies are doing little to help and much to hinder.