I've been following the work of Charles Simonyi since his early days (Xerox Parc), Microsoft days (Word and Excel) and now Intentional Software days. In fact, I've been waiting for some news that Intentional, where Simonyi is President and CEO, has come up with the breakthrough technology to transform the act of programming.
Reuters reports that the Microsoft billionaire has put up $20 million to become the world's fifth 'space tourist' riding aboard a Russian space ship to spend several days at the International Space Station. According to Forbes, Simonyi spends six months a year on his 233-foot yacht, and he is often seen about with Martha Stewart. Of course, his agile mind is free to work anywhere on the breakthrough, which he described in an interview I did with him in early 2004.
For the sake of argument, assume that we would ask the subject matter experts to write a nice PowerPoint presentation and give it to programmers so they can write the software. That would be a very modest improvement over current practices, which insist that the contributions of subject matter experts are organized in a decent way.
Our proposal goes further. We don't ask the programmers just to read the presentation and write a program. We'll ask the programmer to write a program that reads the presentation and writes the program! We are making a little twist to our request to the programmer: Don't convert the design into a program by hand, write a generator to write the program. We will be actively supporting the process by giving the subject matter experts a CAD (computer-aided design)-like program that the generator can read its input from and process it easily and without loss of information.
Another way to think about it is that the programmers you would have employed anyway to solve your problem are now creating a domain-specific language for your problem. Programmers will admit that every big program is a language of its own. Microsoft Word is written in C++, for example, but if you want to work on it, your colleagues won't just ask if you know C++. Knowing C++ will get you 1 percent of the way toward learning about how Microsoft Word works. The other 99 percent is to learn all about Word's procedures, services and data structures, which all have names, relationships, internal logic and a kind of syntax.
The programmers are subject matter experts in how to turn designs that are not computer specific into a software program. Value semantics, variables, states or decision tables, sequential and parallel logic--all of those computer science ideas are part of their expertise. The design has to be expressed in those ideas to run on a computer.