Warning: I just re-read this post and realised that it is a bit … pretentious, maybe, as it tries to tell the world what to do. Anyway, you’ve been warned, and I still think I have a point, so I’ll let you read.
We might think that to have our brain connected to software we’d need some kind of a direct relation between the bits and the neurons. This might exist one day, but for today we can count on our good old 5 senses to interact with that software. And that’s enough to create a sort of communion between our brain and the software. We don’t necessary realise it, but when we use software we use it as an extension of our brain. We make it do things our brain can’t do, or don’t have the time to do. Wikipedia is the most obvious example. Today we use it as our memory. Well, it is even better than that, we use it as a memory which we know will contain all the things we don’t know but might want to know one day. Pretty powerful magical memory. And it’s the same with all the other pieces of software. Take Chrome, allowing you to query an infinite number of URLs and make all these results intelligible to the person interacting with it. Take CoD, helping you pretending you’re a soldier fighting another soldier on the other side of the planet. Software is incredibly powerful. It is pretty much ubiquitous. But still, it is barely useful most of the time. Actual new creations are most of time a product of lone developers with a second passion. This creates nice stories, but imagine that! A very large part of the world economy relies on people’s hobbies! That’s nice for every software revolving around hobbies, but less for software used at work. And software used for work is what makes a society work better. Better software means better everything. And there is no other way, our brain definitely cannot do without software any more. That’s it we depend on it, so let’s take it seriously now.
Any task involving our brain can be helped by software. Where our brain has its limit, software can help. Now add to that idea that software can be used as an extension of a society brain as one instance of software can interact with many brains, and you’ll begin to have an idea of what software can do. The importance of software is greater than any other human invention. Today software at every level is involved in every single domain in science, every single domain in technology, every single job, and every single product we buy and use. Investment in software is currently big, but it is tiny compared to what’s needed to create all the potentially useful software around. The investment I’m speaking about is not only money to invest in start-up, it is investment in the transformation of every job around. Making them more software aware. Today, every single job can be tremendously improved with software. We are ready for that, the infrastructure is there. Good OS exist for every imaginable hardware, wired and wireless quality networks are pretty much everywhere there are people, and the Internet provides a platform to make all that hardware reachable by any piece of software. Developers tend to naturally create software for themselves (or their hobby). It’s easier from every aspect: developers know what they want, they know how to use powerful interesting software, they know what kind of software is missing in their field. That also explains why we have so much infrastructure software. And so little end user software. For the billions of people on earth, to truly enable that brain extension for their specific needs, we need to make them software developer. Well sort of, at least. Knowing how to develop software must become as important as learning to write your mother tongue. Software development shouldn’t be only a career choice any more, it should be a skill alongside other skills for any given job.
Just to give a quick example, let’s take farming. Ask farmers and they will tell you that they simply don’t need more software. They are farmer after all, not computer people. This is simply because they have no idea what software can do for them. Thinking what software can do for you is an abstract exercise, where familiarity with the exercise helps. A non developer won’t know that software can help simulating, predicting, automating analysis or whatever might help farmers. Actually I don’t know what could help them, and that’s the point, I’m not a farmer, I’m just a developer. Same for them, they are farmers, not developers. So currently farming software will just scratch the surface of what could be done. It will correspond to what farmers asked for, mixed with what developers supposed could be useful for them. That’s not how great software is made. To make great useful software, you need a vision coming from someone who grasp all the knowledge that matters in both farming and software development. To sum up, farmers won’t have their idea machine (understand brain) churning at full speed until they feel on top of what software can do for them. And the more they know about software, the more ideas they will have. And even better, they will be able to participate actively and relevantly to the software making.
Another illustration of what I mean is Arduino. You might have heard of it, but if not, it is an open source electronic prototyping platform to embed software in anything. For example, this, or this, or that. Its (relative) success is a bit of a surprise. But it is an exact illustration of what happens when you give more people the capacity to create, even if they don’t necessarily have any software development knowledge at the beginning. Now imagine if most workers have the knowledge and the know how.
In my opinion, taking software making seriously, as an inherent part of every job, is the only way to solve structural unemployment. Software is an area where the progress to be made is massive. But even more important, software progress will trigger progress for every other technology areas. And for that, software investments must be done for everybody, in every school, for every job, in every domain.
Matthieu Scholler 07 April 2013