arrow_back Search

HOUSE_OVERSIGHT_015927

House Oversight Committee
insert_drive_file IMAGES-003-HOUSE_OVERSIGHT_015927.txt description DOCUMENT text_fields 463 words · 2.7k chars

Software 237

Microsoft and Philip Kahn of Borland, along with intuitive applications such as the spreadsheet invented by Dan Bricklin and Bob Frankston and made popular by Lotus Corporation. Today all computers have elegant WYSIWYG, “What You See Is What You Get’ interfaces, where you drag and drop elements into place on the screen. Over the last 25 years writing software has sped up and stopped being tedious — becoming almost a joy!

In No Silver Bullet, Brooks explains that writing software can't be accelerated any further because all the tedious mechanical tasks have already been removed. Remember his analogy: Writing software is like building a house, but with some important differences. With a house, an architect handles the design and then turns over construction to a building company. Construction takes an appreciable time, more time than the design and quite a bit more effort. But in software the construction is totally automated. When we complete the design for a piece of software we press compile on the computer and the software is built and tested automatically in a matter of seconds. Speeding this process up any further would make only a tiny improvement in the overall software creation time, since the process is already 99% design and 1% building. For the most part, the creative process of writing software cannot be improved through mechanical means.

This is not always the case. I recently upgraded the machines for some developers I work with. We added solid state hard drives. Compiling a program now takes only 10 seconds, compared with 6 minutes before. Because programmers nowadays tend to compile their programs very regularly we estimate this saves them as much as an hour a day. This is the only real innovation I have seen in the build phase of software in the last 5 years, and it’s arguably not an innovation at all. We just forgot to keep on top of the build time and allowed it to get out of hand.

You might argue some counter examples. Modern software design suites let you drag and drop things on the screen to make applications or build a website. Two hundred million people have managed to put together WordPress websites using this technique. These are mechanical procedures for solving a programming task and seem to contradict my argument. They allow us to lay out graphics, press a button and turn the design into software. But they perform very simple tasks. The computer simply notes the coordinates of each box on the screen and places those numbers into a file. The process is entirely mechanical and could be performed by a clerk with no programming knowledge following a set of rules. The computer just does it faster. I did the clever work; I had the

HOUSE_OVERSIGHT_015927