The title of this blog post is my paraphrasing of a “law” from the tongue-in-cheek but nevertheless somewhat serious book “Systemantics” by John Gall. I tracked it down through Grady Booch’s original OOAD book and it had been pointed out to me by Ralph Johnson.
What’s so special about this quote? Well, it frames an inconvenient truth rather nicely: That you can’t create a complex system from scratch. Rather you have to evolve it step-by-step from a simpler system. This clearly runs counter to the intuition of many top-level IT or R&D managers. Thus, the unabated stream of expensive software project failures.
Open source and wikis are great examples of this proverb because of their (typically initially at least) volunteer nature. If they don’t work, they’ll get deserted quickly. If they get deserted, they are dead, and you don’t want that, if you are working on the project. Hence, this mechanism keeps you focused on the value the project or wiki provides to its users.
Evolving from a simpler system is no guarantee of success either. The number of extinct species greatly outnumbers the number of surviving ones; the Chrysler Comprehensive Compensation project was eventually canceled and the software discarded (in a sense, an expensive project failure); many Wikis prosper for a while and then die.
It’s just that *not* evolving from a simple working system guarantees *failure*.
…although the IBM 1401 Fortran compiler did work despite its authors taking more than a year from the project start to getting something running.
Yep, most projects (startups!) fail. I don’t think the proverb is a hard and fast choice, but I do think it helps to think of it as a necessary condition for success.
You can increase chances of success of a complex project by simulating the evolution process. Have teams compete and build on each others’ ideas.
@Ben Sounds interesting. Any proof or reference for that suggestion?