For companies that manufacture highly engineered products, the importance of software continues to grow. Software is critical in many ways, but two aspects in particular stand out. First, software provides an opportunity for competitive advantage. In today’s business environment, product performance alone may not be sufficient. Second, for a company who developed project management experience on projects that are primarily hardware-centric, as the software component becomes more important, managing software development is challenge to these companies. It is also the source of significant schedule risk.
Traditional software project management is based on the “waterfall” process: 1) a detailed specification is developed; 2) there is a design phase; 3) followed by software coding phase; 4) then the software is tested. Note that this is a linear process with many handoffs. In the early 1990’s a new technique known as “Scrum” gained popularity. Scrum is one of the many software development processes based on “agile” techniques as described in the “Agile Manifesto” in 2001. In Scrum, it is accepted that a complete set of requirements is impossible to describe at the outset, but rather they emerge as the software is developed and stakeholders are able to touch and see the product.
Why has Scrum become so popular? Is it a fad that will soon fade or it is here to stay? I believe it is here to stay, and for a very good reason. My project experience is that a significant software component increases the complexity of the project significantly. This increased complexity can lead to unforeseeable uncertainty, both in terms of integration with the hardware and the functionality that will satisfy the customer need. A way to manage projects with significant unforeseeable uncertainty is to use an “iterate and learn” cycle.
In this method, shown in the figure below, you accept that you have to come up with a concept, implement it, check to see if it makes sense, then respond accordingly. This is exactly what the Scrum process is all about, and why it makes so much sense as a technique to manage the highly complex software development process.
For those who have experience with Scrum, share your thoughts! Has it helped improve the overall success of projects with a significant software development component?
New Product Visions is a consulting company that helps organizations improve the effectiveness of their new product development processes. We specialize in small to mid-sized companies that manufacture highly engineered products. Contact us today about how we might help you!