Systems and software engineering lifecycle process methodologists boost their favorite approaches, but rarely discuss which problems these methods are best suited to solve or when they might indeed represent an ill-advised choice. From more traditional waterfall lifecycles to those popularized by the agile development community, proponents describe their benefits, often with built-in bias. Some methodologies claim that they can be customized to fit large, highly critical applications as well as very simple ones. Rarely do the claims present a balanced perspective about how the method addresses the needs of a given project, or how it can be adapted to fit the problem at hand.
The overriding aim of the work that led to this paper was to explore how critical factors characterizing projects might be applied by engineers to assist in the selection of an appropriate lifecycle process for the project. This paper summarizes the common lifecycle processes advocated by systems and software engineers, identifies eight critical selection factors for characterizing lifecycles and projects, and suggests an approach for systematically matching projects to lifecycle processes for the purpose of selecting the most suitable lifecycle for a given project. The authors have also illustrated the first step of such an approach by characterizing the most popular lifecycle models in terms of these eight selection factors.