As Marc Andreessen so eloquently wrote in his Wall street Journal OpEd, software is eating the world. In virtually every industry, ranging from banking to retail and from mobile phones to self-driving cars, the companies that are winning are the ones who are best at software. Many, however, wonder what it means to be best, or at least good, at software. Based on 25 years of research and industrial experience and having worked with dozens of small and large companies across industries ranging from pure software to those building systems with complex mechanical and electronic components, my conclusion is that it comes down to three focus areas: speed, data and ecosystems.
Speed is concerned with how fast you are able to convert an identified customer need into a new product or a new feature in an existing product. This is not concerned just with the engineering effort, but the entire chain from customer insight to delivery and release. This means agile practices, continuous integration and continuous deployment. Although this has traditionally been the purview of Web 2.0 and SaaS companies, this also applies to systems engineering as software plays a bigger and bigger part in these industries and, surprisingly, because agile practices and continuous integration can be applied to mechanics and electronics as well.
Data is important as our research shows that in many cases half of the functionality in systems is hardly if ever used. This means that all the effort that we put into specifying, building, verifying and delivering the functionality is wasted. Even worse, unused functionality in systems puts a tax on the use and evolution of the system as users will have to deal with unnecessarily complex interfaces and system behaviour and engineering needs to consider this functionality when adding new functionality to the system. Even though we live in the era of “Big Data”, I still see very limited use of the data coming back from the field for improving the effectiveness of R&D investments.
Ecosystems represent another area where many companies are quite ad-hoc or tactical in their approach. Again, our research shows that companies spend 80-90% of all their R&D resources on commodity functionality. That means that very few resources available for innovative and differentiating functionality and R&D departments are often buckling under the pressure to deliver. Strategic use of the partners in the ecosystems around the company can, on the one hand, help to share the cost and risk of innovation through open innovation. And on the other hand, companies can offload responsibility for commodity functionality to their ecosystem partners so that their own R&D resources can focus on innovation and differentiation.
Although many recognize the importance of these three focus areas, companies struggle with putting together a systematic and structure change and transformation agenda and plan.
Software is central to the success of virtually any company. In order to get better at it, your focus should be on speed, data and ecosystems and you need a systematic and structured approach to improve.
Author: Jan Bosch, Director Software Center, Professor of Software Engineering, Chalmers University of Technology, Sweden