70 likes | 78 Views
Dive into the world of Agile processes, OODA Loop exemplars, and classifications while exploring solutions, pitfalls, and challenges faced in the dynamic landscape of software development.
E N D
Agile Processes • 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: • they employ short iteration cycles, which permit incremental delivery and rapid feedback for projectmanagement purposes • they generally have low documentation overheads • they encourage an inclusive relationship with the customer, often with flexible contract arrangements
Exemplar Agile Processes • Extreme Programming (XP) • based on Test-Driven Development (TDD). • Feature-Driven Development (FDD) • integrates ideas from plan-driven processes, too. • SCRUM • Crystal family • Agile Modelling • Dynamic Systems Development Method (DSDM)
Classification of Agile Processes • 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 • Wide skepticism at the moment: • XP claimed to be “suitable for projects in the ‘low criticality’ band”, but this view is not widely shared. • 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. • 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 • Customer participation • 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. • Scaling issues • 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 • 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?