Pavlos (pavlos) wrote,

Pavlos on Software: Computer programs, an 80's distraction

If you've learned about computers in the 70's and 80's you tend to think that they are programmable machines, and they run lots of wonderful, if sometimes annoying, computer programs. Maybe you can, or you were once able to, write such programs yourself.

The thing is, "computer program" is such an outdated and distracting concept. There's nothing about Word, Skype, or World of Warcraft that brings forth the notion of "program", and even the more modern "software" is a very weak and one-sided description of these things. Computers and the applications we use on them are not, in any practical everyday sense, programmable agents. They are information handling devices.

A program is a precise plan for going through a list of actions, or responding to certain events. Of course information handling devices are woven out of these things, but only at a very low and detached from the user experience level. Calling something like Office "software" is a bit like calling the British Museum "brickwork". True, but hardly pertinent.

What is salient about things like Office, Firefox, or CounterStrike is that they handle information. They are distinguished by what information they handle, whether they store your information, let you navigate a body of available information, let you interact with others in a particular context, etc. They're liked or disliked based on whether they handle the information in a quick and reassuring way, their aesthetics, and whether other people have invested their time and information in the same things. None of these attributes have anything to do with "program", or even "software".

When you start a Mac it says "I'm an information handling product for your calendar, music, mail, web, and video". The early Palm handhelds were similarly blessed with information handling-ness. By contrast a Windows machine says "I'm a platform for running Windows software, and of course I can do internet and music too, look, look!". Not as focused, but still a good information handling product. With Office, Microsoft has made a fortune selling, essentially a digital typewriter. They only good things that Word does are "undo" and printing - but that's what users want of an information appliance for writing. Geeks tend to be the laggards in designing information handling products, except when some strongly-led initiative like Gnome or Mozilla manages to take the focus away from programming and onto designing an information product with a purpose, some aesthetics, and the like.

If you work in a software house, you probably see a large number of software engineers making software. That's moderately productive, but it's a bit like hiring a bunch of civil engineers to solve a city's transportation problems - you'll get a network of new roads and some car parks, possibly very efficient and well designed. What if the city actually needs alternative car use schemes, more places to have lunch, or a more flexible work schedule? By analogy, the amount of software engineering that software houses do is probably too much, and maybe the user needs better aesthetics, a better thought-out product, or an information handling service. If you look at the credits list of a good computer game, you'll find maybe 5-20% of the staff are programmers. That's probably right.

If you're training, "programming", and even "software engineering" is in some ways the wrong subject. Viewing something as software, or a program, will leave you struggling with the concepts of user interface, web delivery, security, or interaction with other information handling systems. You might be able to find an esoteric field like, I don't know, cryptography or computer graphics where programming is extremely important, but even so your product is going to succeed on its good information handling characteristics. There's some evidence that trainers are adapting to this: The university where I studied has joined Computer Science and several other miss-named departments into a School of Informatics.

Next time you work on an information handling product, see if you can improve its information handling behaviour rather than its code. And we do need a better name for the damn things.
  • Post a new comment


    default userpic

    Your reply will be screened

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.