There is a wide-spread myth in semiconductor industry that software is free, as in no-cost. The presumption is that semiconductor companies sell chips, and software is only a byproduct that enables sales. These two notions combined often lead to devaluation of software. In this article, I will argue that software is not free, as in no-cost, and successful companies cannot afford to treated software as byproducts. I will go further and highlight software’s role in the value chain, and describe ways semiconductor companies can monetize software and leverage it as a competitive advantage.
Free is not “free”
The word, “free” is usually subliminally associated with “cheap”. But anyone who has ever developed production quality software knows that it is anything but cheap. Software development is not unlike hardware development, it involves highly skilled resources writing good specification, creating well-architected designs, authoring structured code, and conducting rigorous tests. Also like hardware development, significant investment in the infrastructure is required, for things like compilers, debuggers, emulators, static analysis tools, modeling tools, version control, issue tracking, document management system, test equipment, and servers to host these tools and facilitate the work flow. All of this costs money.
Unfortunately, the “free” notion has dual meanings. Often the “free” in free software means freedom, not necessarily free-of-cost. But the later is often the main attraction. While free software brings huge value to the consumers, some licensing terms require full disclosure of source code, and therefore can discourage companies from adding competitive features. Companies that abide by free software licenses must spend time and resources to sort out what element of their own software can and cannot be combined with the free software. The use of free software in commercial products does not release the companies from liability. Maintenance and support of free software also have to come from the companies. Companies that use leading-edge free software often have to maintain a pool of programmers to actively engage with and contribute to the free software community. While these are not necessarily bad business models, the notion that free software costs nothing requires more thoughtful considerations.
Solutions, not Chips
In recent years, semiconductor companies have learned that customers are more interested in solutions, less about the chips. While finding the right chips is part of the solution process, if companies can develop attractive solutions, customers will listen. Central to many solutions is the application software. Good application software embodies the essential application that delivers the solution. Better software showcases any unique hardware features that will enhance the solution’s overall performance. Best software adds on top new feature and performance enhancements to give the solution a competitive edge.
Writing high-performance, high-value software applications require strong domain expertise. For example, software implementing advanced battery gauging algorithms will require expert knowledge in battery electrochemistry. Touch screen software will require interdisciplinary understanding in analog circuits, digital signal processing, firmware engineering, and gesture recognition. The companies that can offer software that embodies top-notch domain expertise will have an edge over the competition.
The per-unit value of software deeply embedded in a device (usually micro-controller plus software), can be hard to quantify. One way to assess the value is to compare the cost-of-build (COB) of the device’s micro-controller with comparable ones in the market. The average market price of these micro-controler forms the base value of the device without software. The difference between the device’s market price and the COB is the margin created by the software. A second way to estimate software value is by comparing solution costs. Start with the cost of an equivalent solution as the baseline, back out all hardware component cost, the remaining difference becomes the software’s per-unit value. A third way to estimate software value is looking at the solution cost over the entire product life cycles. Any cost saving attributable to software should be considered. Finally, software value can be extracted by asking, if the software alone is made available to the market, who would license it and how much would they value it? How would the software increase the licensee’s revenue? There are many ways to assign value to software, it’s up to companies that created the software to recognize and realize its value.
Put Money where the Value Is
If you learn that an investment opportunity returns 10-folds, would you invest more money into that opportunity? If you recognized that software is why your product sells, would you invest more money into it? Even though answers to these rhetorical questions are clearly “yes”, companies often do exactly the opposite by underfunding the software development that makes their products competitive.
When software is underfunded, the first thing that goes is usually testing, because testing is the last part of the development process. Under schedule pressure and budget constraints, it is very enticing to skip testing. But if software is released without thorough testing, bugs will happen, and devices with buggy software will lead to punishing financial consequences for both the customers and the company. The cost of rework, especially for high-volume consumer products, can be astronomical. The later they are found, the costlier the consequence, not to mention tarnished reputation, which may proved to be the greatest loss. Software testing should not be bypassed and belittled. Software testing should be treated as a standard part of the business process.
A second thing that goes when underfunding software is inadequate head count. Why is software head count important? Usually for every programmable device, several product variants can be created by customizing software. Software customization makes the product attractive to greater customer base, but it will require additional head counts. If companies stop investing in these additional head counts, it shuts the door on these new opportunities. It is important for companies to assess the revenue potential of these opportunities and invest properly. Often customers are willing to pay a reasonable fee on top of the product cost.
Software value goes beyond dollars and cents, it can be positioned as a business advantage. Places where software can create additional values include, but not limited to: reduced test time on customer production line, reduced test time on company factory floor, simplified field services and customization, more rapid field return defect investigation effort, improved solution yield, enable customer and third-party to inject new intellectual property contents, improved performance. If software can be programmed at customer sites, the customer’s hardware inventory can be re-targeted for different product with different software load. Finally, well-designed software will reduce development cycle time, enabling faster time-to-market.
The Elevator Summary
How do you explain all this to your boss when you are finally able to get some face time in the elevator? Here is the short version:
- Free software is not necessarily free-of-cost
- Software value can be quantified
- Customers wants solutions, not chips
- Software embodies the domain knowledge
- Sustained reaping of software value require investment
- Software can differentiate products in a variety ways
Share your thoughts on software value.
(The above article is solely the expressed opinion of the author and does not necessarily reflect the position of his current and past employers)
2 thoughts on “Creating Values in Software”
Its a good article. We can learn from here how we can create a value for Software 🙂
Kuber – Thank you for your comment. I am glad you enjoyed the article.