Has Software Development Become a Commodity?
The software industry is very innovative. By it's very nature, it tends to attract very intelligent people, who are used to thinking creatively. Over the past few decades, these people have come up with some very interesting rules that make the process of software development more effective
For instance, think about a programming language. It provides an interface between what a mound of metal and silicon can understand and what a mound of flesh and bones can. The syntax people understand is represented by a rich set of symbols that have attached meaning. The computer thinks in a much simpler way. Compilers and interpreters serve to make communication possible by providing for translation.
Usually, if a programmer proves to be good at writing in one language, they will often prove to be very good at writing code in another similar language. For instance, for the technically inclined, C++ programmers often make good Java programmers. Both languages are object oriented, and both include similar constructs such as flow control and class libraries.
Learning a new programming language is really not that hard... for the right kind of person. The kind of person that relishes tiny details... or the kind of person who thrives on creation. When the right kind of person sits in front of a machine, he will be able to write a section of code more quickly and fundamentally better than another person with many more years of education or experience.
This phenomenon is in part because of standardization in the industry. Smart engineers, who were building the tools of software development, the languages and the platforms, realized that by creating a basic set of predictable building blocks, the users of the tools could create tools much larger than the tool engineers themselves could imagine.
These tool engineers came up with networking protocols like TCP/IP. These tool engineers created systematic ways of developing new programming languages. They developed the concept of application programming interfaces (APIs), whereby predictable functionality could be harvested quite simply.
Being a futurist, and a businessman, and someone who was once in the trenches as a software engineer, I tend to have a unique perspective on where this is all leading. This is a perspective, shared in part by Robert Reich, in his book The Work of Nations.
I find that the work produced by software engineers will eventually become a commodity. It will eventually become drone work, that some are capable of doing very well. These people who can do it well, are interchangeable. When one person tires, another one can take over.
This prediction, is based on the idea that the tools of software development are in fact, relatively simple to learn. Upon learning these tools, the objective can be reached, with clear direction, in many different ways.
The current trend towards globalization will only hasten this process. There are more and more engineers being graduated every single year across the world. They have all learned these basics of language. They are all capable of speaking this language of engineering.
related stories, by category: