The Future of Software Development, Part I
// February 15th, 2008 // Emerging Tech
Why Software Development Is Going to Disrupt the Software Industry
Full disclosure: I am a former developer. It’s something that I feel should be stated upfront, because it provides some insight into my particular perspective when it comes to the current state of software development. And, yes, I also work for IBM.
Setting the Stage
I’ll begin with what is not news for your typical software developer, today: software developers are not being appropriately compensated for their efforts by the industry. In fact, in many ways, you could draw parallels between what developers are experiencing today and what exploited workers have experienced in the past—working conditions which served to oppress rather than encourage, wages which were out of alignment with the actual value that the worker is producing, widespread discontent in the worker ranks. These indicators, I believe, are pointing to a significant realignment of the market—and is setting up the market for a significant disruption—one which could have widespread implications for any company employing developers today.
So, why do I believe that such radical changes are brewing? There are a number of factors coming into play—converging, really—which have the potential to seriously alter the landscape: the first is the continuous pressure on software companies to reduce costs to maintain their traditionally high gross margins. Second is the advent of the Software as a Service model, as well as the potential for the evolution of marketplaces servicing those technologies (see SaaS: Still another acronym for Software?). Thirdly, we have the adoption of the collaborative development model first proposed by Grady Booch back in 2002. It doesn’t take much to see that the convergence of these three factors has the potential to provide the seeds for a marketplace disruption—not in terms of new and evolving technologies, but how technologies are leveraged by those creating the products and services which rely on them. Think of it this way: the impact of robotics on the automotive industry has reduced the raw number of automotive workers from their peak membership in the 70’s (over 700,000 strong) to the current levels today (180,000) in the US. True, there were a number of factors influencing this dramatic decrease (including offshoring), however, we’ll see that those factors may also influence software development, and in a greater context, the software industry as a whole—not by constricting or reducing the number of developers, but by changing the game, and in essence, liberating those developers. It amounts to be, in the end, a kind of revolution.
The Evolution of Open Source
So, let’s set the stage by first looking at the open source model from the perspective of software developers: why do developers participate in something that, literally, gives them no tangible monetized benefits? The answer is: most don’t. The typical evolutionary path for an OSS project goes from: initial idea -> gathering of like minded developers to realize the idea -> implementation of the idea -> market validation (or rejection) of idea -> If validation, eventual commercialization. The path, in other words, leads to some sort of monetized, commercialized, software. We’ve seen this happen with innumerable OSS projects, ranging from MySQL to TripWire to JBoss. The intent may have never been to commercialize the software, but the reality is that once these projects reach a certain critical mass, in order to sustain them, a business must be built which has the capabilities to provide that support—that in turn costs money.
“This is something the software industry, for the most part, still hasn’t figured out—and rather than leveraging these inherent talents, your typical software company simply creates a rather ugly hole, drops the developer into this chasm, and then expects the developer to happily create what amounts to be boring, isolated, and intellectually poisonous code.”
The Corporate Cube
Why am I discussing this? Because it goes to a deeper issue: software developers are creative. There’s a reason why developers talk about “elegant code”. There’s a reason why the best coders are viewed as much as artists as technologists. This is something the software industry, for the most part, still hasn’t figured out—and rather than leveraging these inherent talents, your typical software company simply creates a rather ugly hole, drops the developer into this chasm, and then expects the developer to happily create what amounts to be boring, isolated, and intellectually poisonous code. Why do you think “cube cities” are so despised by the developer? It’s a physical manifestation of what software companies do to the developer’s professional career.
“there’s been one significant barrier to OSS really disrupting the existing corporate software paradigm: it doesn’t pay. Literally and figuratively.”
OSS has succeeded to the extent that it has largely because it provides a necessary safety valve: it’s a channel by which the developer can break out of the “cube” of commercial software development, and actually exercise the skills and creativity that drove the developer to start writing code in the first place: it’s a kind of intellectual freedom. However, there’s been one significant barrier to OSS really disrupting the existing corporate software paradigm: it doesn’t pay. Literally and figuratively. Without the ability to put “food on the table”, the switching cost for a developer to move from commercial development (which he/she hates) to OSS development (which they obviously prefer given that the rewards are initially so minimal) are simply too high. It’s not just economically feasible. The time is ripe for a solution—and I honestly believe it’s an inevitability rather than a pipe dream: this change will occur, it’s just a matter of when it happens.
All of which we’ll examine in my next post...