?
Software product lifecycles: What can be optimized and how?
The chapter discusses lifecycle models for software development in more detail. These include build-and-fix, waterfall, incremental, object-oriented and spiral. We present a more detailed description of the lifecycle models application for software development. We compare benefits and shortcomings of the models discussed. We confirm that there is no “silver bullet”, i.e. a universal lifecycle model equally applicable to any software product. Consequently, lifecycle model choice is dependent upon product size and scope; each project requires a unique combination of features. In crisis, we recommend to combine prototyping with the other models that we discussed in order to achieve a common understanding of the key product features and to reduce project risks. The lifecycle model choice determines project economics, time to market, product quality and overall project success. However, the product success essentially depends on human factors, which include common vision of the critical product functions, transparent communication and feedback. We analyze applicability of the lifecycle models to large-scale, mission-critical software systems, which is essential in crisis. Finally, we introduce a methodology, which includes a spiral-like lifecycle and a set of formal models and visual tools for software product development. The methodology helps to optimize the software product lifecycle, which is mission-critical in crisis. The methodology is applicable to large-scale, complex software products for heterogeneous environments.