There are three ways in which an organisation can undertake product line engineering: proactive, extractive, and reactive, says Charles Krueger (Krueger2002).
The proactive approach is the more traditional approach to SPLE, where complete domain analysis and variability management is performed in advance of any application engineering. In many small- to medium-sized enterprises the large upfront costs of this approach mean it is not viable (Buhrdorf2004).
Proactive has a bit of a Big Design Up Front feel to it.
In contrast, the reactive approach involves creating and updating the product line as and when new members of the family appear. Extensive domain analysis is avoided, and time can be saved.
“think ahead, but not too far ahead” —http://www.softwareproductlines.com/successes/salion2.html
Basically a more agile approach to product lines.
The extractive approach involves bootstrapping a product line by taking existing products as the base for the core assets. The extractive and reactive approaches can be used in conjunction.
“Being excessively proactive proved in several cases to be wasteful due to inaccurate guesses about customer demands. In contrast, by being more reactive, less time is spent implementing specific features and variants [until] they are clearly needed.” —http://www.softwareproductlines.com/successes/salion2.html
For me, the agile way to go is extractive and reactive.
- Burhdorf2004. Salion’s experience with a reactive software product line approach.
- Krueger2002. Easing the transition to software mass customization.