By Stewart Sims
The Oracle lawsuit against Google for infringement of various software patents has sparked huge debate about software based litigation and indeed prompted many to question the overall nature of the software industry in relation to the context of the world in which we live.
At the crux of all major issues relating to the advancement of technology, which today is synonymous with software, is the chasm between those that know the business of software, those that understand development of software and everyone else. The more specialised and complex technologies become, the fewer people there will be that really understand them. Very soon there could come a point where it is absolutely pointless trying to legislate on anything to do with software, because no-one who invents laws, enforces them and legally represents people regarding the laws will understand what it is they’re trying to preside over.
This divide not only presents legal issues. The direction and effectiveness of future technologies are driven by people who work in the software industry – for better or for worse. Governments cannot hope to control their own systems if they do not employ people who have experience of the software industry. If they do not do this, then they run the risk of spending vast sums of money on systems that they have no idea will actually do what they want, if indeed they know what they want in the first place. Needless spending could become astronomical, and security flaws would become inevitable.
To my knowledge, it is said by Buddhists that if only a small number of beings exist on Earth who are currently enlightened then the world will be kept from destruction. The prevailing feeling is that there may come a time when this theory is to be tested in the sense that if only a handful of people in the world really understand software, the world may continue to prosper for a while, but if the number diminishes even slightly, it will instead crumble.
There is however an alternative to this future which can be seen. If computing and software are demystified by a more thorough focus on it in the education systems than currently exists, then perhaps the future generations will have a deeper understanding of software. The lawyers of the future need to understand software, the business people of the future need to understand software, governments of the future need to to understand software, and it would be of benefit to many more individuals around the world to better understand software. For this to happen the world needs to recognise that software development is not something that can only be learnt by attending lectures in computer science, years of software business experience, or by sitting in front of a computer for unhealthy amounts of time every day. Of course all those things help to becoming a good software developer, but to gain at least some understanding doesn’t require such dedication. In fact software development can be viewed as a mixture of problem solving skills (systems analysis and software engineering) and practical skills (programming). Software engineering and programming itself is something one can learn much about through simple practice. Theory of course helps one to gain a very deep understanding of the subject matter, but it is not essential.
Its no longer advisable for people to separate themselves from trying to understand software by claiming that it doesn’t involve them. Most people use software every day, and are in some capacity part of the software development process whether they realise it or not; their expectations and goals drive development. Project managers oversee software development, business users decide what they want out of software and end-users report bugs in software. But very rarely do these categories of people ever think about really what it is the software does, where it comes from and the platform on which it runs. At best some can outline the general principle of the software, usually by recognising the end result they get out of it. This leads to the kind of pseudo-technical speak that you hear described in marketing pitches for software and software patents. Unfortunately this type of talk obscures the real underlying technologies.
Think how restricting a world it would be if every profession were a black-box, just as software is to many people today. Imagine if we had no idea what it was a plumber did, could never figure out how a car works, and could not prepare a meal unless we were a chef. Think how much power each ‘professional’ would have over everyone else. Perhaps this will give a taste of how liberating it might be just to know that little bit about how software works.
I suppose the real challenge to tackle is the fact that software is dealing with the ‘virtual’ – telling a computer how to do stuff, often things that as intelligent sentient beings we may take for granted. The only advantage of computing power over human effort is that, if we can figure out how to tell them to do something, they can do it for us. As software is not a tangible physical thing, asking someone to try to understand it might to some seem as difficult as asking them to understand how a persons brain might work. But this is making more out of what it really is. Just like building something physical, software is made of nuts and bolts and tools can be used to put it all together. There’s no magic in it, and that’s the simple belief that allows some people to become accomplished programmers. Its just a little hurdle to overcome, which if everyone progresses beyond we may just find will stop software from drifting away from everything else.