Sunday, February 22, 2004
Following up from yesterday’s post, former Microsoft executive Charles Simonyi has clearly had his publicist working overtime. Not only did he get his picture in Business Week but an interview with him appears at News.Com (via Loosely Coupled). All this noise about his new company Intentional Software Inc. but apparently no product ready for another 2 years. Hmmm.
Simonyi claims that programming is the bottleneck (Ah ha! constraint language) and that this [bottleneck] needs to be eliminated through automation. The details here are somewhat nebulous but Simonyi appears to be talking about the notion of domain specific languages. Martin Fowler had something to say on this topic and how the OMG’s MDA might enable it.
The crux of this ties closely to the notion that the design is the information in an information system. The code is merely a translation or representation of that information. In Lean terminology coding is “muda” (waste), if only the design could be directly implemented. If you can have the domain or subject matter experts express their design in their own language then why not automate it from there? No need for human intervention. No signal to noise attenuation. No implementation level bugs - just design or domain bugs. Simonyi claims that 7 sigma would be possible with such a technique. Hmmm (again).
It’s a new paradigm! A new approach to software systems. It will require a new way of managing the lifecycle. From the wisdom of Eli Schragenheim writing in the Foreword of my book, “Once the limitation is vastly reduced, people should replace the old rules with new ones that take full advantage of the removal of the limitation. If this does not happen, then there is no added value…”. A new paradigm would require a new way of managing, a new way of working - perhaps even a new workforce.
I remain skeptical of purely technology based solutions. My recent experience has taught me that it doesn’t take a huge improvement in programming productivity to move the constraint somewhere else in the information systems value chain. At the point where the constraint moves, further improvement in the previous constraint has little overall effect - though it may reduce costs and improve ROI, it does not further improve throughput or shorten lead time.
[I’ll write more about how and where the constraint moves tomorrow.]