Users > “drivers” of software

I’ve finally had a chance to sit down and comment on John Naughton’s article in the Guardian and it’s manifesto addressed to the education secretary The Rt Hon Michael Gove MP on computer education in the UK. This joins an avalanche of recognition that programming – or “coding” – is suddenly a Good Thing for People To Know.

It is wonderful to read a major media publication pouring scorn on the old idea that “computers are like cars”, “users are drivers” which has dogged perceptions of computers for years. There is a new philosophy here focusing on hacking, in the original sense – an algorithmic literacy of processes which now mediate every aspect of our lives. This is seen as good as a general life skill, and of course good for the economy for encouraging the kind of independent thinking needed for successful startup companies.

This avalanche has to be credited to some extent to game designer David Braben and his Raspberry Pi project, and an extensive PR campaign tweaking people’s memories (including an increasing number of politicians in their 30′s and 40′s) who remember school computers like the BBC micro, and their later influence on what these same politicians like to call the “creative industries”. This of course all seems instinctively good sense for those of us who have been closely watching the boom in popularity of arduino, processing and free software methodologies in hacklabs and fablabs.

However, an approach organised on this scale is unlikely to support such generalist and creative philosophies we are used to. A few days prior to this article we had an announcement of £575m for kitting out schools with computing infrastructure from familiar public sector contractors including Serco and Capita, and a bit more detail on Staffordshire county council who are spending £28m on “Apple products under the iOS lot including iMacs, Mac Books, iPods, iPads, Mac Minis and Lion Server.”

The problem here is that a rejection of “users as drivers” is a rejection of iOS (and to a lesser extent Android) and the app store philosophy. App stores are extremely successful at promoting the idea of phones as appliances (never computers in their own right) and software as small digestible “apps” encapsulated in locked down environments generally marketed as a kind of protection for users. If these models of computing are to grow as expected – they are completely at odds with an accessible understanding we need for this change in education approach, and the creative literacy of algorithms which would follow.

When I’ve interviewed graduates for creative programming jobs the thing which is really most valuable (much more so than knowing the relevant programming language) is exactly the thing that having an “edit source code” button on every app would encourage (as included on OLPC’s sugar, another older example of an education targeted effort). What is needed is a creative lack of respect for software, a cheerful abandonment of the fear that “breaking something” will be your fault rather than that of the system.

8 thoughts on “Users > “drivers” of software

  1. It wod be lovely to see a mainstream vendor like apple add an edit source button. I think there are two pressures on them not doing that: most people don’t yet want it is a big one, but also, to a great extent, I don’t think we are very good at building software that is tinker ready.

    I think this is a form of openness, and one that I hope will be embraced. The way most software is built isn’t tinker ready. The languages aren’t, the tools aren’t, the organisation of data… most of these things are not built like an old school synth you can open up and rewire, and understand by quite simple observation and experiments, they are built like cars with inscrutable black boxes. Getting to a mind set of openable software (hey, just thought of that, I like it) needs us softies to do some work too, not just for apple et al to add bare screw holes to apps and hand out the key.

  2. I think the main problem is that it leads to a situation that breaks the business model surrounding app stores (loosening the grip on distribution) – but you’re right, there is a huge and more interesting challenge to us to make “openable software”. I personally think that livecoding could set the stage for some of this to happen.

    Another problem of course, is as programmers, it’s in our interests to maintain the black box approach. To emphasise software as “magic stuff” that no mere mortals should mess with – I think this is quite a difficult internal battle we face.

  3. I think in the main people are very happy to be “drivers”, but as programmers I’m not sure we can live up to our own promises. Perhaps we have reached the stage where the way forward is to soften the distinction between producer and consumer of software, in education and in general life.

  4. Cars is an interesting metaphor… Cars used to be something that people tinker/hack with. Before cars became computerised (Im thinking the 50′s – 80′s ) people would soup them up and modify them, and this was good for the industry – it created a form of ‘user generated content’, which is where the car industry is failing today – they are too opaque.

    Not that you want to hack the braking system in your car … but open is great marketing. Even Microsoft have seen this with kinect.

    To some people cars will always be something to drive, just because they arent interested in it. But opacity is a problem, you have to have a great product to keep it opaque. Whereas an ‘average’ (different) product that people can hack to customise for their own use (like souping up an old mustang) can created a connection and trust that so many companies are trying to do purely with marketing.

  5. I very much agree that live coding should be a good bed for exploring what openable software would need – also, I think such tools would be great in some parts of business, even though they might be rejected initially.

    What you say about business models is very true, but made me wonder I this is a new problem? Within capitalism, if you are selling expertise, and not manufactured things, it is not in your interest to solve the meta problem and make your expertise redundant (I’d love to hear a rejection of that with examples).

    Cars are a nice analogy, and a business can get an edge from being modifiable, but they provide well defined limits to this, don’t they. You can script, and work with the API, but you can’t see inside.

    So, I think there is a big software challenge, but I also think society has a challenge here that capitalism doesn’t seem to fit well with putting know how out there to be taken for free and probably without citation.

    Again – very interested to hear an argument against this because making capitalism go away sounds hard :-)

  6. Dave, along the “view the source” initiative we are developping Meemoo, to make easy to people hack their own web apps: http://meemoo.org.

    Some of developers we already know learn to hack using the “view page source” on web browsers. Maybe we need a “hack the source” button now.

  7. I wouldn’t think this will be a problem for capitalism, more a problem with business practices that feed from a certain kind of ignorance in “users”. If the limits of this are starting to become clearer, I would hope new business ideas can take advantage of this and move beyond the limits.

    For example, great products can be taken well outside of the imagination of their original inventors, and products that can be recombined, modified and taken apart easily are more likely to achieve this.

    Cars do one thing, software is in everything (including cars) and now has a role in everything we do, so we can either make programming illegal and restricted to select government officials in order to keep it controlled safely (!) or we make it transparent and understood – to some degree – by everyone.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>