In the last few years many companies have adopted the change in terminology “Project” to “Product” rapidly. This article highlights the key difference between a software and non software product. The understanding of the nature of the software is important while deciding the approach to build and deliver.
Developing software is relatively new compared to manufacturing, shipping, aerospace, automobile, oil or electronics industries (Software engineering is about 50 years old whereas other industries have experience of more than 100 years). The Software Industry (nowadays called as a digital, tech etc) is unique compared to other industries primarily because it is used by other industries as an enabler and there are very few but powerful companies that are built primarily on software that have evolved in the last few decades (starting with Microsoft).
Software is very unique in many aspects that brings many opportunities as well new challenges in terms of managing the whole development process. Unfortunately, most of the software development methods are influenced by the manufacturing industry (specifically automotive, Ford production line, Toyota Production System).
Across the industry there is a trend to move from projects to products in that context it is important to understand the uniqueness of the software itself.
There are some differences between Software Product (ex. Navigation System) and a Non-Software Product (ex. Car or Toaster). Most products these days have large amounts of software that makes them “smart” products, like Smart TV, Smart Watch, Smartphone which have a good amount of software embedded in the product (ex. iPhone, Tesla). To understand the complexity, it is important to look at the distinction between the software products and non-software products
Built or engineered and not manufactured
The software product is built or engineered and there is no manufacturing involved; basically it is designed, developed, and released whereas non software products involve design, development, manufacturing, and release. In addition, they will have after sales support and warranty. The absence of manufacturing time enables the software to be released continuously and implement DevOps.
Wear and Tear
Theoretically Software Products will not have any wear and tear, whereas non-software products will have natural wear and tear as well as periodic maintenance and repairs. As the products become older the maintenance and repair cost increase. Ideally throughout the life cycle about 5-10% per annum is spent on maintenance. The maintenance cost increases over a period of time and the product is retired /withdrawn with the release of a newer product.
Due to this difference non software products have a separate after sales and support teams.
Ideally there should not be any maintenance cost but in reality there is significant cost due to field defects (errors that escaped during the development phase. The ability to modify software even after release made it possible to add new features while fixing existing defects. This lead to a continuous development and delivery approach to meet business needs. That is the foundation of DevOps where both development teams and operations (maintenance) teams together handle the product development and delivery cycles.
Economics, scale and society
Software is becoming a central part of many products and it is also creating new challenges in societal behaviours and sustainability. While advanced manufacturing techniques and automation have given rise to an unprecedented scale in developing hardware. They are also creating new issues around electronic waste, consumerism and so on.
Per unit cost of a non software product (just the hardware in a smart product) decreases as the volumes increase, whereas for software no such cost reaction exists. The cost of hardware in some scenarios is almost negligible.
Scaling a software product is a design challenge whereas scaling a hardware component is also a manufacturing challenge. Any mistakes in manufacturing are very costly creating a huge pile of e-waste.
In order to get more profit the companies are making the hardware obsolete (especially with smartphones) faster and adding few enhanced features and releasing the new product in a short cycle. It is fueling the consumerism mindset.
With IoT more and more appliances are getting smart, definitely they add value but at a certain cost to the society.
Conclusion
Overall it is not just enough to change the titles and nomenclature and even mindset to “from project to products” a broader analysis of the overall impact and good understanding of software and it’s characteristics helps organizations to address the challenges holistically.
Acknowledgments
Project to Product: How to Survive and Thrive in the Age of Digital Disruption with the Flow Framework Book by Mik Kersten for ideas and inspiration.
Software Engineering: A Practitioner’s Approach (IRWIN COMPUTER SCIENCE) Hardcover – 16 Mar. 2014 by Roger S. Press — My favourite textbook during my graduate school and giving me the solid foundation of Software Engineering
Raghavendra (Raghav/Ragz) Mithare
The views/opinions expressed in this article are the author’s own; they do not represent any of the organizations he is associated with. Author will not take responsibility for any inaccuracies, mistakes in this article. No permission required to share, copy and redistribute. Please share if you have any comments view in the comments below or write to mithare@gmail.com