Agile

software development

Problems

with traditional software development

Traditional

  • Phased development
  • Anticipated result
  • Up-front design
waterfall

Waterfall model software development

When to use the waterfall model

  • Requirements are known
  • Technology is understood
  • Resources are available
  • The project is short

Users don't know what they want

Customers don't know what their requirements

Developers don't know future difficulties designing a new software product

Requirements change

changes get more and more expensive

customers don't get what they want

Project Takes Too Long

32% of projects delivered successfully

Long duration defers revenue

No Time for Testing

Quality assurance gets crunched

Late integration means late failures

Time Wasted on Junk

52% of requirements implemented

64% of functionality rarely used

Problems of Waterfall Model

  • End-users don't know what they want
  • Customers don't know what their requirements
  • Developers don't know future difficulties designing a new software product

Agile software development

Agile is not a :

  • methodology
  • specific way of development software
  • framework or process

Agile is a set of values and principles

The Agile Manifesto

is only 68 words

Individuals and interactions





Processes and tools

Working software





Comprehensive documentation

Customer collaboration





Contract negotiation

Responding to change





Following a plan

12 Agile Principles

1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software

2. Welcome changing requirements, even late in development

3. Deliver working software frequently, from a couple of weeks to a couple of months

4. Business people and developers must work together daily throughout the project

5. Build projects around motivated individuals

6. The most efficient and effective method of conveying information to and within a development team is face-to-face conversation

7. Working software is the primary measure of progress

8. Agile processes promote sustainable development

9. Continuous attention to technical excellence and good design enhances agility

10. Simplicity - the art of maximizing the amount of work not done - is essential

Product Backlog

11. The best architectures, requirements, and designs emerge from self-organizing teams

12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly

Thanks