150 likes | 426 Views
Agile Process: Overview. Agile software engineering represents a reasonable compromise to conventional software engineering for certain classes of software Agile development processes can deliver successful systems quickly
E N D
Agile Process: Overview • Agile software engineering represents a reasonable compromise to conventional software engineering for certain classes of software • Agile development processes can deliver successful systems quickly • Agile development stresses continuous communication and collaboration among developers and customers
Manifesto for Agile Software Development • Better to value: • Individuals and interactions over processes and tools • Working software over comprehensive documentation • Customer collaboration over contract negotiation • Responding to change over following a plan • While the items on the right are still important the items on the left are more valuable under this philosophy
What is “Agility”? • Rapid and adaptive response to change • Effective communication among all stakeholders • Drawing the customer onto the team • Organizing a team so that it is in control of the work performed Yielding … • Rapid, incremental delivery of software
Agile Teams • are responsive to changes during project development • recognize that project plans must be flexible • eliminates the separation between customers and developers
Agility • encourages team structures that make communication among developers and customers easier • emphasizes importance of rapid delivery of operational software and de-emphasizes importance of intermediate work products • can be applied to any software process as long as the project team is allowed to streamline tasks and conduct planning in way that eliminate non-essential work products
An Agile Process • Is driven by customer descriptions of what is required (scenarios) • Recognizes that plans are short-lived • Develops software iteratively with a heavy emphasis on implementation • Delivers multiple ‘software increments’ • Adapts as changes occur
Human Factors • Traits that need to exist in members of agile development teams: • Competence • Common focus • Collaboration • Decision-making ability • Fuzzy-problem solving ability • Mutual trust and respect • Self-organization
Agile Process Models • Extreme Programming (XP) • Adaptive Software Development (ASD) • Dynamic Systems Development Method (DSDM) • Scrum • Crystal • Feature Driven Development (FDD) • Agile Modeling (AM)