Agile Processes 1 пЃ¬ Development processes that address the problem of volatile requirements: вЂ“ вЂ“ пЃ¬ requirements that change due to rapidly changing technology or market, requirements that are difficult to define in advance because of the exploratory nature of the development. They cope with change in the following ways: 1. 2. 3. they employ short iteration cycles, which permit incremental delivery and rapid feedback for project management purposes they generally have low documentation overheads they encourage an inclusive relationship with the customer, often with flexible contract arrangements Key Idea - OODA Loop 2 Exemplar Agile Processes 3 пЃ¬ Extreme Programming (XP) вЂ“ пЃ¬ Feature-Driven Development (FDD) вЂ“ пЃ¬ пЃ¬ пЃ¬ пЃ¬ based on Test-Driven Development (TDD). integrates ideas from plan-driven processes, too. SCRUM Crystal family Agile Modelling Dynamic Systems Development Method (DSDM) Classification of Agile Processes 4 пЃ¬ Agile processes possess the following main characteristics: вЂ“ вЂ“ вЂ“ вЂ“ incremental, focusing on delivering small releases; cooperative, where the customer is embedded in the team; straightforward, where the processes are easy to learn and sufficiently (and accurately) documented; adaptive, welcoming changes, even late in the lifecycle. Problems and Pitfalls/Challenges 5 пЃ¬ Wide skepticism at the moment: вЂ“ пЃ¬ The lack of process fits badly with current standards. вЂ“ пЃ¬ Though there are views that CMMI etc are to a point compatible with XP practices. Criticisms about effectiveness of project management in agile processes. вЂ“ пЃ¬ XP claimed to be вЂњsuitable for projects in the вЂ�low criticalityвЂ™ bandвЂќ, but this view is not widely shared. Hard to extract data; data is of less value as it is much more difficult to extrapolate. Unsuitable for long-lived projects. вЂ“ No documentation, reuse is difficult. Problems and Pitfalls 6 пЃ¬ Customer participation вЂ“ вЂ“ вЂ“ пЃ¬ Scaling issues вЂ“ вЂ“ пЃ¬ ThereвЂ™s no single, clear role for customers in some systems; no one customer can know everything (aerodynamics, materials, structure, propulsion ...) Also, independence may be an issue for safety Without a customer, management of the agile process will be hard. We need new means of enabling communication (or need to adapt the means we use already). How do we manage 300 people? Sub-teams of domain experts? Testing вЂ“ вЂ“ White box testing is often ignored. Also acceptance testing for some safety critical systems is usually expensive, and in some cases one-off. Problems and Pitfalls 7 пЃ¬ пЃ¬ Simple design may be incompatible with the naturally long life of many systems. Incremental development: вЂ“ вЂ“ Agile proposes deprecating low priority requirements; critical systems normally have large numbers of inflexible requirements of high priority. Can a safe but incomplete design be incrementally certified?