Is software development obsolete?
October 3, 2009
A friend of mine is a civil engineer. He writes his own computer programs. In the early days of computers, I suspect that that approach was the norm. Computers were not for trivial uses, the users were highly intelligent and motivated and they were taught how to program to solve their own problems. They already understood the business and what they wanted.
The era of the professional programmer—one who does not know the business—has been brief, basically from the 1950s. Much of that time was spent on coaxing computers to do established manual operations: accounting, inventory, records management where cutting new design was not a major aspect of the project, we already had a design that worked. But two charactersitics: these are well understood processing domains and the man-machine interfaces to them were clerical in nature.
Nowadays those back office systems have already been written. It doesn’t make sense to write your own.
It also seems that the kinds of systems needed now are those that would help knowledge workers, not clerical workers. And both the domain and the interfaces are less well understood, are highly evolved and still evolving rapidly. Where does this put the average application programmer? Typically they know java, and other programming languages, but not the business. Is knowing java sufficient? It means that someone has to explain the business to them. And if the business is knowledge, can—or should—someone be expected to impart that wealth of knowledge?
Do we need simpler programming languages so that the users again do the programming? Such that the emphasis is not learning programming but getting on with the design and knowledge implementation? Object-oriented programming was first promoted because the program objects could—should—model real world ‘objects’. The implementation seems to be something different. But the original impulse seems right.