Balancing Evolution with Revolution to Optimize Product Line Development

Fraunhofer Institute Experimental Software Engineering (IESE)Sauerwiesen 6, D-67661 KaiserslauternGermanyEmail: muthig@iese.fhg.de / schmid@iese.fhg.deSoftware development today faces several challenges. There is a critical need to reduce cost, effort, and time-to-market of software products, but, at the same time, complexity and size of products are rapidly increasing andcustomers are requesting more and more quality products tailored to their individual needs [1].These challenges especially hold for software in a military context because military software typically meanssoftware embedded in a hardware context, software that is often developed in variants customized to diverseoperational contexts, and software that must rapidly evolve to keep pace with changing needs. Nevertheless,there is a strong demand to develop and enhance these systems with a minimum of resources and to adhere tostrongest quality requirements.In this paper we explore typical situations of organizations that develop and evolve a whole family of similarsystems (i.e., a software product line) and how these situations can be improved in an effective and efficientway. Therefore, evolutionary and revolutionary approaches to product line development are introduced, as wellas possible ways for combining these approaches to optimize the development and evolution of a particularproduct line.