How do we stop the software development process from getting in the way of making productive use of IT? There is a wonderful interview with Charles Simonyi who headed up the early development of Excel and Word at Microsoft about this topic on CNET News.com today: Software to cut the digital fat.
"There is a structural, systemic problem with software," says Simonyi. "... software is the bottleneck on the digital horn of plenty."
Simonyi left Microsoft in August 2002 to set up a startup called Intentional Software, as I reported here at the time (see Simonyi continues his quest). The company aims to produce development tools that will help designers create software that more accurately reflects the original intent. Present-day development tools signally fail to do this, which is why Simonyi believes a new approach is required:
"Tools have to operate in a new relationship between subject matter experts and the programmers ... The biggest problem is that what a subject matter expert is trying to accomplish is not expressed in the code ... the intent has been lost or obscured, and once it has been lost, then the problems start. To do anything to it, the intent has to be recovered, which is what programmers do all day constantly struggle to recover the design from the code."
Intentional Software's solution to this problem is "to improve software development by making the code look like the design." Instead of having developers translating the design into software terms and then coding it, its tools let the subject matter experts create the design in a PowerPoint-like environment, and then developers work out how to represent that design as software. As CNET puts it, "Simonyi's notion of pushing programming upstream is a PowerPoint-like design tool that allows stakeholders to describe an application in their own terms and then hand it off to the programmers to write a 'generator' to produce the machine-readable code."
So really it's just creating extra layers of software automation to narrow the gap that currently exists between the expression of the original business need and the coding of the software functionality to fulfil it. That's an aspiration that is shared by many vendors operating in the services assembly and business process management sectors that we cover here on Loosely Coupled. So we'll continue to track Simonyi and Intentional the fact that he's decided to do an interview with CNET suggests that some kind of product launch or other announcement may not be far away.
Intentional's approach is however one of only several ways of addressing the problem that he cites. Here are some previous articles and postings that describe other attempts to give domain experts and process owners more direct input into the creation of process automation: