Click here to view the complete list of archived articles

This article was originally published in the Fall 2006 issue of Methods & Tools


Introduction to the Emerging Practice of Software Product Line Development - Part 4

Charles W. Krueger, http://www.biglever.com/

Software product line techniques can significantly increase the productivity of software engineers, seen as a reduction in the effort andcost required to develop, deploy, and maintain a collection of similar softwareproducts. Typical productivity improvements reported in case studies rangebetween a factor of 2 to 3, though higher factors are not uncommon. Because thelabor costs often dominate the cost of building software systems, productivity and cost benefits go hand-in-hand with software product lines.

The following graph illustrates the effort – and thus cost – required to develop, deploy, and maintain a collection of similar softwareproducts. The greater the total number of products, the greater the total effortand cost. The red line represents a conventional productivity line. The blueline represents a productivity line of the pioneering efforts in softwareproduct lines, where a significant up-front effort was typically required (seenas the high Y-axis intercept) to launch a software product line and to achievethe 3-to-1 productivity improvements (seen as the more gradual slope). The greenline represents the new generation of software product line methods that can achieve 3-to-1 or better productivity gains with much less up-front effort.

The productivity and cost benefits of software product lines can be directly attributed to the very effective reuse of software –capitalizing on the commonality and efficiently managing the variation among products in the product line.

While productivity improves the bottom line in a company's finances, there are also strategic top line benefits. Forexample, productivity benefits can simultaneously lower the prices and increasethe profit margins for products, which provides significant strategiccompetitive advantage. Furthermore, the large increases in productivity cancounteract the pressures to export software development jobs to offshore development locations.

Scalability Benefits of Software Product Lines

A company that takes a software product line approach needs to scale, without constraints, to whatever number of products are optimal forthe business. Looking more carefully at the productivity graph from the previoussection, both conventional and software product line approaches do have limitsto the number of products that can be effectively developed and maintained. Asshown in the graph below, a steep rise in effort is encountered when an approachreaches its complexity limit. The benefit of software product line approaches isthat they can often scale to orders-of-magnitude more products than conventional software engineering techniques.

There are strategic competitive advantages to being able to scale to larger numbers of products. For example,

The complexity limit typically manifests itself as an overwhelming increase in errors and defects. The results is that engineers spendall of their time finding and fixing defects in existing products rather thandeveloping the next product. The errors and complexity can be attributed tolimitations in (1) how effectively commonality leveraged across products and (2)how effectively variation is managed among products. The more effectively these two things are done, the greater the scalability of the approach.

Conclusions and How to Learn More

The emerging practice of software product line development offers significant tactical software engineering improvements as well asstrategic business advantages. In much the same way that manufacturers advancedfrom manual labor to mass production to mass customization, software productline development allow software development organizations to advance from labor intensive to highly efficient and automated portfolio development methods.

To learn more about these methods and successes stories, see the Software Product Line Development community web site: www.SoftwareProductLines.com

Page 3   Back to the archive list