We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 11
Agile
Software Development Unit 2 – Lecture 10 What is Agile / Agility??? Agile software engineering combines a philosophy and a set of development guidelines.
The philosophy encourages customer
satisfaction and early incremental delivery of software ; small, highly motivated project teams; informal methods; minimal software engineering work products; and overall development simplicity. The development guidelines stress delivery over analysis and design, and active and continuous communication between developers and customers.
Software engineers and other project
stakeholders(managers, customers, end- users)work together on an agile team – a team that is self organizing and in control of its own destiny.
An agile team encourages communication
and collaboration among all who serve on it. Agile software engineering represents a reasonable alternative to conventional software engineering for certain classes of software and certain types of software projects.
It has been established to deliver successful
systems quickly.
The basic framework activities of Agile
development are - customer communication, planning, modeling, construction, delivery and evaluation. Agility Agility describes the modern software process.
An agile team is a lively team able to
appropriately respond to changes.
Changes are – change in the software being
built, changes to the team members, changes because of new technology, changes of all kinds that may have impact on the product they build. It empathizes rapid delivery of operational software and de- emphasizes the importance of intermediate work products; it adopts the customer as part of the development team and works to eliminate the “us and them” attitude that continues to pass through many software projects; it recognizes that planning in an uncertain world has its limits and that a project plan must be flexible. An agile team recognizes that software is developed by individuals working in teams and that the skills of these people, their ability to collaborate is at the core for the success of the project.
Agility can be applied to any software
process. What is an Agile Process? Any agile software process is characterized in a manner that addresses three key assumptions about the majority of software projects.
1. It is difficult to predict in advance which
software requirements will persist and which will change as a project proceeds. 2. For many types of software, design and construction are interleaved. i.e. both activities should be performed in tandem so that design models are proven as they are created. It is difficult to predict how much design is necessary before construction is used to prove the design.
3. Analysis, design, construction, and
testing are not as predictable (from planning point of view)as we might like. Process Models under Agile Development Adaptive software development Agile modeling Agile unified process Disciplined agile delivery Dynamic systems development method (DSDM) Extreme programming (XP) Feature-driven development Lean software development Lean startup Kanban Rapid application development (RAD) Scrum Scrumban Scaled Agile Framework - SAFe