Q&A: Henry Ford Would 'Recoil' At SPL

Sep 24, 2010 (08:09 PM EDT)

Read the Original Article at

Charles Krueger is founder of BigLever, a pioneer in software to support the software product line approach. He recently spoke with Dr. Dobb's editor in chief Jonathan Erickson.

Dr. Dobb's: Henry Ford is given credit for the production line. What would he think of SPL?

Krueger: Henry's initial reaction would likely be negative. His great accomplishment came from engineering innovations that removed all product variation, so that the identical automobile could be reproduced over and over again, with an efficient means of production. He would likely recoil at the notion of deliberately reintroducing product variation into manufacturing--be it systems or software.

Dr. Dobb's: Where's SPL having the biggest impact?

Krueger: The markets where we see the strongest pull for SPL are automotive and aerospace and defense.

Dr. Dobb's: Can agile and SPL co-exist?

Krueger: The correlation between agile and successful SPL practice is very strong, although sometimes not explicit. The overall process for efficiently managing an entire product line must be agile in order to rapidly adapt to unpredictable requests for new products, new features, evolving feature combinations, new diversity, and changing boundaries for commonality.

Dr. Dobb's: When organizations opt for SPL, what hurdles can companies initially expect?

Krueger: The biggest hurdles we encounter are around changing people--their roles, responsibilities, job descriptions, and processes. Changing technology is easy by comparison.

Dr. Dobb's: What role does testing have in SPL?

Krueger: Testing plays a critical role in SPL. We see the most value from two SPL-specific testing techniques. The first is automated unit testing that includes variants to match all possible implementation variants of a component or subsystem. Nightly or continuous builds and unit test execution for all component variants provides good visibility into the health of the overall product line. The second is integration and system test minimization, by sharing test results from common or similar tests across different products in a product line. Knowing when duplicate testing can be avoided across multiple products is somewhat of an art, but we have seen good results in organizations that strive to put test effort into the areas of highest payoff.