“That is not our core business” has been a widespread mantra for decades. Anything deemed “non-essential” is better done “by someone else,” e.g., an outsourcing partner. The tricky part is to avoid outsourcing the wrong business areas, especially when it comes to outsourcing software.
Whether to make or buy is a crucial decision to be made at the beginning of a new project. Some of these decisions are trivial—you wouldn’t develop a new computer chip, a relational database, a cellphone, or even a new coffee machine yourself. At the other end of the scale, developing an innovative business concept, hiring essential employees, or creating unique intellectual property are better not left to other entities (i.e., “outsourcing partners”). Then there is the vast gray area between these extremes. Software development is a discipline that may be difficult to classify as either essential or non-essential. Take an example of a mobile phone company. Dealing with its crucial stakeholders, such as retail or business customers, consumes vast amounts of capital and requires complex solutions to maintain the service quality. Some examples of cellphone business activities may include contract management, billing (including literally thousands of billing options), switching from one contract type to another, and many more. Seemingly simple requests such as changing a data volume option may take a dozen business process steps, such as planning, provisioning, scheduling a future data option change, and replacing a SIM card. If every step had to be performed entirely manually, a large workforce would have to be employed. Such mobile phone service would be available to just a few wealthy individuals, as was the case in the early days of the mobile phone industry in the 1980s.
Modern cellphone companies are highly complex businesses. Their business process documentation, stacked high, would easily reach the office ceiling. Besides, they are subject to constant change. Upgrading the network to new mobile technology, such as progressing from 2G to 3G to 4G and recently 5G, can serve as one example. Dozens, sometimes more than 100 software systems, are involved. For instance, implementing a new network technology (apart from apparent differences such as new cell tower upgrades and integrating it in the global mobile networks, customer relationship management (CRM), a cornerstone of every cellphone operation), must be specified, designed, tested, and dozens of further activities must take place, such as modifying the customer scripts for the call agents, updating the electronic and paper documentation, modifying the process business definition, technical and business staff training, and so forth. As the phone companies are essentially run by their software, hundreds of software engineers are routinely involved in such significant changes. The developers need to understand all of the business aspects fully. Both the software engineers and the company’s executives must work closely as part of the involved teams. In other words: software developers and managers are part of the same family.
And yet, attempts are frequently made to declare such mission-critical software applications as not belonging to the “core business.” Once proclaimed “non-essential,” the companies often try to outsource the development of future versions of their core business to external partners or “turnkey” software vendors. Such outsourcing projects often end up in disasters. While only a few failed cellphone development projects can be publicly named (see the example HERE), I can assure you that the number of such fiascos is way higher than what is publicly known from the media. Various attempts to explain the reasons for such failures have been made (example HERE). I believe, however, that such explanations miss an essential point: cell phone companies are actually in the business of developing software, though they wouldn’t want to admit it.
Yet, from my own experience in that industry, there can be no doubt: Software is an integral part of the cell phone core business.
That example may appear as an isolated case of software/business symbiosis. After all, software development and telecommunications are entwined.
Alas, the opposite is the case. Take, as just as another example, the car industry. In a modern car, many dozens—sometimes more than 100 software systems—are integrated within the car platform. With the upcoming self-driving and other sophisticated, software-based features, the car industry is on the fast track of becoming a predominantly software-driven business. Except for the steel, aluminum, and leather, nearly everything in a car is controlled by software: driving comfort, car safety, stability systems, entertainment, braking and accelerating, steering, user interface, air conditioning, internal and external car communication systems—software is literally in charge of everything in a car.
Does Software Devour the World?
Whether we want it or not, most of us are increasingly in the business of making software. The pace at which software is conquering the world is nothing short of astonishing. It is almost as if the world is being “eaten up by software.” In 2011, Marc Andreesen, co-founder of Netscape (which was released as open-source in 1998 and is today used in the Firefox web browser), declared:
“Today, the world’s largest bookseller, Amazon, is a software company — its core capability is its amazing software engine for selling virtually everything online, no retail stores necessary. On top of that, while Borders was thrashing in the throes of impending bankruptcy, Amazon rearranged its website to promote its Kindle digital books over physical books for the first time. Now even the books themselves are software.” (see Marc Andreessen’s article here)
Software is taking over the world, but I’m convinced that it is a good thing as it seems to make the world better than it was before. The software is not your enemy—it is your friend. Software won’t “devour” our world. Rather, it will unleash new perspectives and enable us to leap forward into a fascinating future.
Today, the claim that modern carmakers are not in the software business appears absurd to me. Some legacy carmakers don’t seem to understand the real peril. However, some more progressive managers have begun realizing it, like Peter Mertens, former board member of Audi, Volkswagen, Volvo, Faurecia, and Jaguar Land Rover. He mentioned that, because of the lack of understanding of the importance of software for making cars, some of those brands might eventually not survive the “perfect software” storm.” I warmly recommend reading the “There Will be Blood” article by Alex Voigt, who explains this thought process in the context of Peter Mertens’s exclamation (LINK).
Software is Not Difficult to Grasp When You Chose to Like It
Software used to be a separate discipline, clearly distinguished from other academic fields. For example, mechanical engineering had nothing to do with software, especially before CAD (Computer-Aided Design) became widespread. Today, software is an integral part of nearly every academic discipline.
A profound understanding of software technology, including software development and design, is essential to grasp the ramification of the steadily progressing software-driven business design in practically all industries. For that, the knowledge of fundamental concepts, such as algorithms and data structures, is an essential professional skill for any “knowledge worker.” In other words, at least to a considerable extent, everyone should become a software engineer, regardless of their primary academic degree.
You might say that it is easier said than done or that I am biased since I am a computer scientist myself. Regardless, I would like to emphasize that software technology is not very hard to grasp. Unlike in molecular biology or quantum physics, understanding software technology is a pretty straightforward task. Fundamentally speaking, software is applied mathematics, extended by electronics, unless more abstract aspects of computer science are involved, such as non-deterministic algorithms or complex stochastics. Aside from such sophisticated theoretical aspects, anyone should be able to handle basic concepts such as relationships and attributes and quickly learn to understand and even develop software programs.
Again, I am talking about practical computer science—theoretical computer science can be exceedingly intimidating and should be left to academics.
The actual challenge may lay not in difficulty to learn it but in the bad press that software developers have been receiving since the inception of computer science as a profession. Other academics often recoil computer science as a kind of a fanatic, sociopathic cult. That, of course, is an embarrassing misunderstanding. Geeks are everywhere, regardless of their academic educations. If you look at this technology through the lens of Hollywood movies and biased media commentaries, you will not learn anything about the natural advantages of the progressively software-driven world around you. Learning software must be a conscious decision, and it involves an emotional attachment to it. If you like software, you will quickly learn it; if you hate it, you are out of luck – it’s as easy as that.
Don’t fear software—embrace it! Cherish it. It will reward you in many ways: professionally as well as personally. The choice is yours.
Don’t Outsource Your Soul
The experience of the mobile phone industry trying to outsource software as “not belonging to the core business” should serve as a warning – a warning, however, that often seems to be ignored. Outsourcing software appears to be in full swing.
What is even more concerning is the reason for outsourcing software development. In a study by a leading consulting company Deloitte, the main objective (70%) for outsourcing software development is to save money. The least essential goal is, surprisingly enough, agility.
In other words, companies seem not to care much about agility as a fundamental strategy.
This insight demonstrates that many industries seem to be missing the point. For legacy car manufacturers, especially for the European, particularly the German carmakers, this could mean an increased risk of getting behind the curve: saving on software as a core business means high risk and uncalculable strategy disadvantages.
The outsourcing core technology, such as software and semiconductors, may, in fact, be a key reason why catching up with Tesla, the arch-enemy of the German carmakers, poses such a big challenge. Tesla’s team develops many critical technologies in-house, including the artificial intelligence engine needed for self-driving cars and visual object recognition algorithms. Tesla has also developed “car-on-the-chip,” which appears as “science fiction” in the legacy car industry. It seems difficult to imagine the speed of the development in those areas following the traditional supplier and sub-supplier strategy of the legacy carmakers.
Industries, such as telecommunication, medical devices, aviation, logistics, and many others, increasingly depend on sophisticated software-based solutions. They are hard to effectively and efficiently develop by an off-shore vendor. The right mix of business and software expertise is crucial to achieving a cutting-edge competitive advantage at speed required in the software-driven world. Software has indeed become the “soul” of modern technology-driven businesses. Software is your core business. It is not an add-on and nice-to-have; it is your business.
“Wherever you go, go with all your heart.”, said Confucius. Do not forget that both heart and soul make a human being. Do not outsource your soul. Your heart wouldn’t buy it.