Do you like strategic articles and you don't want to miss anything? Then subscribe to our newsletter.
Sensor Fusion > How software sourcing can leverage your competitive advantage — if you pay enough attention
In my recent article, I have shown why due to the complexity-productivity-gap and the maintenance-burden more than 25% of additional software developers will be required each year to keep up in the current race for automated driving. In combination with the lack of software talents, this puts massive pressure on automotive companies. Today, I will discuss how a carefully designed software sourcing strategy can bring significant and sustainable relief.
Every software company needs to decide which parts of its software shall be developed in-house (“make”) and which parts shall be sourced from outside the company (“buy”). It is widely recommended to take this decision based on questions such as:
- Do I have a competitive advantage in developing this particular piece of software myself? Can I do it better, faster, with less resources or in higher quality than my competitors? Is it part of my core competencies?
- Is this particular piece of software strategically relevant; that is, does it contribute to my unique selling proposition? Does it help me to differentiate my products and services from those of my competitors?
If the overall architecture is well-defined, a make-or-buy-decision can be taken for every software component. The sum of all these make-or-buy-decisions then is the sourcing strategy. Or wait, is it? Can it really suffice to choose from just two options to derive a sourcing strategy? I think not. I believe that instead of asking if to make or buy a piece of software, the more important question is how to make or buy it. Let us have a closer look at the most relevant software sourcing options and their pros and cons.
1. In-house development ensures exclusivity
The first option is to develop the complete software component in-house, covering all the steps from requirements engineering and specification to implementation, integration, testing, and maintenance. This approach provides full and exclusive rights on the developed software as well as a maximum level of confidentiality. The result can be fully tailored to your needs and all the relevant know-how will be available inside your company.
At the same time, this approach requires sufficient software developers and — an even scarcer resource — time; not only for the development phase, but also for maintenance and support. In fact, the decision to develop a piece of software in-house is also a decision to maintain this software as long as it will be used. Both the amount of required resources for development and for maintenance are frequently underestimated —an IEEE survey concluded that the average cost overrun in software projects is 89%.
In-house development is typically associated with independence. While this is true from an intellectual property (IP) rights perspective, there is a dependency on personnel though. In most teams, expertise is not uniformly distributed and a few key developers leaving the project might pose a substantial risk. Also, in-house development restricts your freedom to put your developers to their most valuable use, as with every software component developed, more developers will be needed for maintenance.
2. External contract development provides flexibility
The second frequent option is to delegate software development to an external contractor. In terms of exclusivity and IP rights, this is comparable to in-house development. An advantage of this approach is that less internal developers are required. However, requirements engineering, supplier management, integration and system-level testing still need to be done in your company. From a time and cost perspective, the overall effort is comparable to an in-house development. Cost savings might result from lower hourly rates if the contractor is located in regions with lower salaries (“offshoring”/”nearshoring”).
The main benefit of this sourcing strategy is that contracts can be terminated quickly and easily in case the plans are changing, providing more flexibility. For large companies, it may sometimes be easier to contract an external company than to get access to internal resources. Also, a contract with an external company can more efficiently be enforced than an agreement with another department in the same organization.
On the drawback side, you have less control on the development process and the quality of the contractor’s team. Contracting (and particularly offshoring) typically requires thorough quality and supplier management processes. In addition, the growing dependency from the contractor is diminishing negotiation power. The most critical factor her, however, is maintenance. As the software will not have been fully developed inside your company, it will be hard and expensive to maintain it yourself. Having the contractor fix an issue after delivery may also be a hard task, as the team who has delivered the software may have changed substantially over time.
3. Software-component licensing cuts costs and time
If the required software component is available on the market, purchasing a license (that is, a right to use) is an option. The advantage is that development time and resources can be drastically reduced as the component is already there and does not need to be developed in the first place.
The key benefit of software is that after having developed it once, it can be duplicated and used by a practically arbitrary number of users. A licensing business model shares the development costs (to be fair: the costs plus the supplier’s margin) among the customers, yielding a drastic cost advantage compared to an in-house or contract development. For the same reasons, maintenance and support usually require drastically lower costs.
An additional advantage is that the software has already been tested by other users, which reduces the risk of faults and (depending on the availability of evidence for such tests) might reduce your testing efforts significantly. In functional safety, this is called a proven-in-use argument.
The drawback of this option is that you do not own the IP rights exclusively, so your competitors can use them as well. On the other hand, if there is such a software on the market, your competitors can use it regardless of your decision to develop it in-house. Another restriction in sourcing software is that not all suppliers are offering a white-box approach (that is, full access to the complete source code) which is necessary to build up internal know-how. The main question for this strategy, however, is if the software component that you need is actually available on the market.
- In-house and external contract development are two sides of the same medal. In fact, I consider contract development less a software sourcing strategy, but rather a developer sourcing strategy: Shall I hire developers myself or contract a software development company which is hiring them?
- As software is an intangible asset, sharing investments by licensing is the key factor for cutting costs. Thus, a company who is developing a software component in-house (or by contracting) will always be more expensive than a competitor who is purchasing a non-exclusive license. This price premium needs to be justified by a higher willingness to pay from the customers.
There is a fourth option which is, in my opinion, often unjustifiably overlooked. Let me explain how this alternative can help you combine the strategic advantage of your own software with the cost advantage of a licensing business model.
4. How in-depth sourcing can give you the best from both worlds
Quite often, a software component with a required functionality is not directly available on the market. In such a case, many executives conclude that this component needs to be developed in-house. However, it may sometimes be helpful to increase the magnification level of the architecture.
While a software component with a defined functionality may not be available on the market, very often such a component consists of commercially available sub-components, routines, or functionalities. Even if a software component is strategically relevant, very rarely all of its sub-components are. More often than not, the competitive advantage stems rather from an intelligent combination of existing technology than from complete re-inventions. Using commercially available libraries or software development kits (SDKs) can be a way to develop such a competitive advantage by combining in-house development and software licensing. In many domains, such libraries are available and widely used. Examples include TensorFlow for Deep Learning, OpenCV for classical image processing, or BASELABS Create Embedded for embedded and safe sensor data fusion.
For the re-used sub-components, all advantages of the software licensing strategy apply: They are directly available at a fraction of the development costs, tested, and share the maintenance burden among all its users. As such lower-level functionality can be more generically applied, the number of users sharing development and maintenance costs is usually higher than for specialized functionality.
At the same time, combining functions of a library or elements of an SDK allows you to develop exclusive foreground IP rights on the resulting software component and ensure confidentiality. In addition, the relevant know-how will be available in your company and the result can be tailored to your needs. The drawback of this strategy is the increased effort in identifying suitable libraries or SDKs and checking their compliance with the requirements. This requires developing a sourcing strategy with a finer granularity and more technical expertise in sourcing executive roles. On the other hand, such efforts can leverage the scarce internal development resources significantly.
Let us go back to the overview figure presented above: Comparing the different options visualizes their pros and cons: Component licensing is clearly advantageous if available, whereas developing the software yourself can be a targeted supplement. Library licensing, however, can combine advantages of both worlds.
Conclusion: Having a closer look on sourcing is worth the effort
The results of your sourcing strategy will depend on the applied level of detail. A high-level analysis leaves you with limited and often unsatisfactory options. Spending a more detailed look on sourcing opens a new strategic level which allows you to develop a clear competitive advantage while cutting costs, time to market, and the amount of required internal developers. Sourcing is a powerful lever — the choice how to use it is yours.