"Software is Eating the World" is a quote attributed to Marc Andreessen and somewhat further explored by his business partner Ben Horowitz. Mark Andreessen gives compelling reasons to validate this quote. To some extend I have to agree with some of his reasons (but I am also a little bit biased as a software engineer). On the other hand, when I read this (and this is partly based on working in different domains on software), I wonder if software is that disruptive. If you look "under the hood" of software applications, you find that a lot of software is based on fundamental software principles that are already 20-30 years old, yet they are still frequently used (and for good reasons). That does not mean there are no new advances in software, however old and proven technologies still play an important role (like we say in mathematics, it does not become old, it becomes classic).
So maybe the reason that "Software is Eating the World" is due to the advances in hardware? Would you run modern enterprise applications in the Cloud 20 years ago? One of the challenges could certainly be the bandwidth. Was the IPhone a victory for software or hardware? A lot of the IPhone GUI was not that revolutionary IMO but the combination of hardware and software made for a potent technology disruption.
Regardless whether you think it is hardware or software that is leading the charge, it is clear that technology is changing the economics in our society as discussed by B. Condon, P. Wiseman and in a post by David Rotman on the work of E. Brynjolfsson and A. McAfee, who argue that the advances in technology are not only destroying low-skill jobs, but also mid-skill jobs. Some of the so called "winners" are jobs in software. Ironically some of these advances lead to companies putting new production plants in high wage countries , instead of expanding in low wage countries.
Still the term "Software is Eating the World" sounds kind of ominous. Using the term "suicide" to illustrate the Borders bookstore debacle in the same article, Marc Andreessen does not make it sound more positive. Instead of software eating the world, I like to think more as software being transformative and see asoftwarization of society: Developing software will become a bigger part of our professional lives.
More and more services open up their APIs and this trend will continue, not only for public services like Facebook and Twitter, but also for enterprise applications. These APIs on top of software applications will enable companies that use these applications to add value to their own products. While APIs are an added value and differentiator for the companies that license or sell particular software, the added value for companies that buy or use the software is how they can leverage these APIs to differentiate themselves from their competitors.
I believe, we all need to start thinking more and more as software engineers and have some ability to write code. This does not mean everybody should be a professional programmer, but some affinity with programming is useful. I do not expect my now 10 year old son to become a programmer, but already I learn him to think like a programmer (and I wish his school would do too), as I believe that is a skill that is useful in many different professions. More and more traditional (office) jobs require engagement with an IT specialist to retrieve and correlate data. General UIs are not always sufficient, but exposing a SQL interface to the users is not always helpful either. Sometimes data is needed from multiple sources (database, excel, flat files, etc...), and acquiring and correlating this data is not always a trivial task for many people.
The ability to structure a problem into an algorithm or data structure is a powerful communication tool for many domains. It enables a certain level of formalization and clarification when addressing a problem. The ability to actually program is becoming more valuable the more APIs and development environments are becoming available. Companies like Data Nitro offer for example a Python interface into Excel, enabling writing sophisticated programs that manipulate data. For me the permeable enterprise is not only about exposing APIs to your partners but also exposing APIs and development environments within your own company.
Exposure of these APIs and having a "software aware" workforce certainly creates new challenges on how to manage more scripts and code written by perhaps non professional programmers. Rather than closing IT systems to prevent this trend, IMO this is a great opportunity for IT departments to engage more with the business side as consultants and strengthen the some times tense relationship between IT and business. It creates a DevOps like environment were the line between "classical" IT and business blurs, yielding a very agile environment. One such an example are journalists: as more and more data becomes publicly available, journalists are discovering that this data contains stories and that through analytics or mining the data you can find newsworthy stories, and present these stories in a meaningful way.
Softwarization is further fueled by thesensorization of society. Sensors are becoming more affordable and ubiquitous, while smart phones can contain many different types of sensors: movement, location, etc... This sensorization of society is unlocking, for the first time in human history, the potential to gather in real time enormous amounts of data and details about almost everything. Through advances in networks, computing and storage, analytics is shifting towards datasets approaching N=ALL and real time processing. This shift in analytics is creating new challenges and opportunities for business and government to harness and understand these data tsunamis, and using real time decision making capabilities as feedback to better, control and optimize complex systems.
Yes there is a trend where software (and hardware) automates, and optimizes current processes (it is perhaps eating the world), but it does also provide an opportunity to elevate business to a "higher plane" where companies seek the competitive advantage through more advanced analytics and bringing software development closer to the business. However the success of this transformation hinges on a skilled software aware workforce. So coming holiday season, I will be spending time playing together with my son with his new LEGO Mindstorms, as it is one of several products which provide a unique environment to start thinking as a software developer at an early age, while it also connects to one of his (and my) favorite toys: LEGO.
* Earth image courtesy of NASA/Visible Earth
Note: the original essay from Marc Andreesen on "why software is eating the world" was published in the WSJ and cannot be directly accessed via this page without a WSJ account.