Simonyi tells programmers to leave the Dark Ages
CAMBRIDGE, Mass.--Charles Simonyi--legendary Microsoft programmer, good friend of Martha Stewart and space tourist--doesn't have many good things to say about the current state of his own profession, software engineering.
He says businesses are stuck in a "poverty economy," using only the cheap and crude tools available to write programs. And he calls software development "the bottleneck on the high-tech horn of plenty."
Simonyi spoke at EmTech, the Emerging Technologies Conference at the Massachusetts Institute of Technology here Wednesday, where he described his solution to the programming problem.
Professionally, Simonyi is well-known for his role in heading up Microsoft's PC applications in group in the 1980s. He is also known for his personal relationship with Martha Stewart and the trip he took to space earlier this year.

Charles Simonyi, Intentional Software.
(Credit: Martin LaMonica/CNET Networks)Traditional software development is hampered by communication barriers. Businesspeople who are "domain experts" in how their companies operate tell technical people--programmers--what they need software to do to solve their business problems.
This transfer of requirements from businesspeople to programmers is problematic because the parties speak different languages and companies' needs change.
Intentional's technology is designed to enable businesspeople to express their requirements in a way that doesn't demand that they learn computer languages. It is also designed to help software engineers generate code based on businesspeople's requirement descriptions.
"Businesspeople lack the means of expressing themselves. Our proposition is to fully integrate domain experts into software development," Simonyi said.
During his talk, Simonyi said existing technologies for modeling business applications or domain-specific languages--used by software development powerhouses like his former employer, Microsoft, and IBM--are not complete or flexible enough.
"The reason (Intentional's software) will work is because the applicability is vastly greater," he said.
People can continue to use those technologies from more established providers. They can stay on the "edge of the renaissance and not enter the Industrial Age."
"I want to take the bigger step, and I think it's important for someone to make the investment in the technology," he said.
During his talk, Simonyi described a positive experience of an Intentional Software customer, consulting firm Capgemini's financial-services group in the Netherlands.
Previous programming techniques resulted in an expensive and brittle process, he said. The Intentional software enabled the Capgemini team to reduce the number of handoffs between different parties in the application development process.
"This system is equally applicable in other domains," he said.
Martin LaMonica is a senior writer for CNET's Green Tech blog. He started at CNET News in 2002, covering IT and Web development. Before that, he was executive editor at IT publication InfoWorld. E-mail Martin.
- Topics:
-
Science,
-
Enterprise software
- Bookmark:
- Digg
- Del.icio.us





Though this is a different world of software engineering than business software, getting a comprehensive set of requirements is just as hard. This is in spite of the fact that the requirements makers pretty much speak a language I understand directly. With few exceptions, there is never enough time and thought put into creating a comprehensive set of requirements and test criteria for the final product. And then there is the issue of providing estimates for the work. Again, with a few exceptions, my plea for enough time to complete the work is ignored and original estimate make on a cocktail napkin by the sales guy is used since that's all the money we got for the work in the first place.
So, I am left with thinking that perhaps the technology this company has created might fall into the category of "rapid application development" (buzz word I have not heard in a while). This does not address the inability to translate business problems into code, but I suppose it might enable developers to more quickly change software (i.e., re-write and re-write until it is correct). Is this really an improvement? Are programmers unable to find ways of meeting requirements and developing code properly the first time? They should. Perhaps companies are not willing to hire/retain the right talent?
But, let's say that many cannot, just to go along with his idea. I'm very curious to see what this technology is. My big fear is that it is yet more "web browser-based" software. I hate browser-based software. I have seen many companies moving to browser-based software, pleased at how they have reduced development costs, yet completely ignoring the fact that they have introduced productivity losses company-wide. Now, that's not true in all cases, but when a sophisticated application is employed via a web browser, far too often I have seen users have to navigate a lot and every move is a slow and painful step. Even simple software that is accessed with some frequency kills productivity as it requires the user to start a browser, navigate to the right location, log in, etc., before work can begin.
Anyway, I hope this is not a browser-based technology. Any clues?
Did he really say that "businesspeople lack the means of expressing themselves"? I bet some might just take exception to that.
If you can state what you want to do logically, I'm quite sure you could write some software to solve your problem. The trouble with businesspeople is that they can't usually state things in logical terms, but instead often use woolly management phrases to represent their business problems (or are they "challenges"?).
I'm fairly sure that if they can't state the things that they require in more defined or logical terms, then a computer (running Intentional Software) is going to do no better at working out what on earth they want than a person is.
If they are forced to be more logical and defined in order to use the Intentional Software, so they have a steep learning curve to be able to use the software, i.e. they are forced to be more defined in their wishes, a software engineer would probably still do a better job of creating a system to meet their needs.
More likely, they will not want to be forced to be definite about what they want as, for one thing, they are then culpable when they get what they asked for but it wasn't what they wanted.
So with Intentional Software, they?ll just hire an interpreter to do the job of getting the program to make for them what they (thought they) asked for.
That?ll be very similar to the situation we already have.
I have been in software design, development, maintenance, and coverage, for 18 years in a zero tolerance, high transaction (600K transactions per minute) environment. I have witnessed the design/development of many projects that cost a lot of money to buy/build, and in the end, only cost a lot more money to use. This has lead to a few truths of my own.
1. Most software isn't written to correctly solve a business problem such that the average human user can be successful with it. It may be coded exaclty to the requirments, and the requirements were technically correct, but the overall process does not improve or solve the intended business problems. This is a failure of requirements gathering, design, development, and (all too often) management will. In fact, the people directly involved often know early on that the project will not address the need, but continue on with their mission for countless untold reasons.
2. Business people seldom foot the full cost for the correct software solution to fit their needs. The original design might have been sound, but the end result is most often crippled out of the box. The software may collect, house, or process as specified, but fail to support a user in accomplishing these tasks in a real world situation.
In my world, this has lead to a slew of applications that not only collectively miss the target of solving any business problem, they actually take up more human cycles of work to service them. Smart people work around these systems that the company spent so much money on, leading to the same level of process failure, only with a higher price tag.
I applaud efforts to produce a better environment for business and software design to work together in, but I too am skeptical that there is a magic bullet. Well... actually there probably is one, but no business would ever survive the price of the ammo. Still improvement is worth pursuing.
NOW LOOKING BACK, THEY WERE WRONG. THEY SHOULD HAVE LET US CONTINUE AND THE WORLD WOULD HAVE BEEN A DIFFERENT PLACE, INSTEAD OF PLAYING GAME SIMULATIONS WE COULD HAVE BEEN DOING THE REAL THING.