Software product line is layout of interconnected systems that address a specific business need. It allows companies to realize improvements in time to market, reduce costs, achieve large scale productivity gains, improve company reputation for quality, increase agility to expand into new markets, and provide a capability for mass customization.

Companies like Motorola, Ericsson, Nokia Microsoft etc ... have developed proprietary technical, managerial, and acquisition product line practices. "Product line approach to software involves three vital activities: development of core assets, development of products, and management of the product line operation at both technical and enterprise levels."

A company that begins by developing the core assets is taking a proactive approach to define the scope for designing the product line architecture, components, and other assets. This means anticipating problems and designing strategies to resolve them before they occur. The advantage of this approach is that products come to market very quickly with a minimum of code writing. And the disadvantage is that it requires a significant up-front investment to produce the architecture and components that are reliable across the entire product space; and vast up-front predictive knowledge, which is lacking in most cases.

References:

1. McGover, J., Ambler, S. W., Stevens, M. E. Linn, J., Sharan, V. and Elias, J. K. (2004).  A Practical Guide to Enterprise Architecture. Prentice Hall Upper Saddle River.

2. Current Best Practices in Software Architecture
http://www.it.iitb.ac.in/ClementSeminarSeries/Seminar6SoftwareProductLines.pdf

3. http://www.sei.cmu.edu/publications/documents/02.reports/02tr038/02tr038chap03.html

4. http://www.jot.fm/issues/issue_2004_03/column6.pdf