ABSTRACT
The increasingly rapid pace of change in technology, competition, and IT demand have made evolutionary development an attractive alternative to traditional software and systems engineering (SSE) processes. There are several forms of evolutionary development, and there is no one-size-fits-all SSE approach that is best for all situations. For rapid-fielding situations, an easiest-first, get something working, evolutionary SSE approach is best. But for enduring systems, an easiest-first evolutionary SSE approach is likely to produce an unscalable system whose architecture is incompatible with achieving high levels of safety and security. Also, evolutionary development requires much higher sustained levels of systems engineering (SE) effort, earlier and continuous integration and test, pro-active approaches to address sources of system change, greater levels of concurrent engineering, and achievement reviews based on evidence of feasibility vs. evidence of plans, activity, and system descriptions. Many traditional acquisition practices are incompatible with effective SE of evolutionary development. These include assumptions that full-capability requirements can be specified up front along with associated full-capability plans, budgets, schedules, work breakdown structures, and earned-value management targets; that most systems engineers can be dismissed after PDR; and that all forms of requirements change or "creep" should be discouraged. The study also found that other inhibitors to effective SE need to be addressed, such as underbudgeting (SE is the first victim of inadequate budgets); contracting provisions emphasizing functional definition before addressal of key performance parameters; and management temptations to show rapid progress on easy initial increments while deferring the hard parts until later increments.
Index Terms
- Software and systems engineering process implications of evolutionary development (Keynote Abstract)
Recommendations
Ubiquitous process: an opportunity or temptation? (Keynote Abstract)
ICSSP '11: Proceedings of the 2011 International Conference on Software and Systems ProcessThis talk reflects on different types of research into process carried out within the software and systems engineering community in recent years. For example, work in the domains of business process, medical systems, electrical systems and software ...
A multi-case study of agile requirements engineering and the use of test cases as requirements
ContextIt is an enigma that agile projects can succeed 'without requirements' when weak requirements engineering is a known cause for project failures. While agile development projects often manage well without extensive requirements test cases are ...
Optimizing cost and quality by integrating inspection and test processes
ICSSP '11: Proceedings of the 2011 International Conference on Software and Systems ProcessInspections and testing are two of the most commonly performed software quality assurance processes today. Typically, these processes are applied in isolation, which, however, fails to exploit the benefits of systematically combining and integrating ...
Comments