Agile software development refers to software development methodologies centred around the idea of iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams.
3. Introduction
Agile is the ability to create and respond to change. Agile
development is a phrase used in software development to
describe methodologies for incremental software development
4. How did we get here ?
Traditional Software Development
Waterfall
Based on False Assumptions
◦ Requirements can be predicted up front
◦ You can perfect one phase before moving on the
next
◦ Timeframes and budgets can be predicted
upfront
◦ Feedback is not variable
Agile is the answer to the problem
◦ Frequent deliver software in increments
◦ Get detailed requirements “just in time” before
development to allow for change.
◦ Frequently gain feedback to adapt to change.
◦ Agile is about communication and collaboration
5. Agile Manifesto
We are uncovering better ways of developing software by doing it and helping others do it. Through
this work we have come to value:
There are four main values of Agile project management:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is , while there is value in the items on the right, we value the items on the left more.
6. Principles of Agile
Easy and continuous delivery
Welcome changing requirements
Deliver working software every couple of weeks to a couple of months, with a preference to the shorter timescale
Business people and developers must work together daily
Give the team the environment and support they need , and trust them to get the job done
The most efficient and effective method of communicating is face to face conversation
Working software is the primary measurement of progress
Sustainable development to maintain a constant pace indefinitely
Technical excellence and good design enhances agility
Simplicity is essential
The best architectures, requirements, and designs emerge from self-organizing teams
At regular intervals, the team reflects on how to become more effective, adjusts its behaviour accordingly.
7. Agile Methodology
Agile methodology is a project management
framework that breaks projects down into
several dynamic phases, commonly known as
sprints.
The Agile framework is an iterative
methodology. After every sprint, teams
reflect and look back to see if there was
anything that could be improved so they can
adjust their strategy for the next sprint.
8. Some Popular Agile Methods
Popular Agile frameworks include
Extreme Programming (XP)
Feature Driven Development (FDD)
Dynamic System Development Method (DSDM)
Lean Software Development
Scrum
Kanban
9. Advantages of Agile Model
Customer Satisfaction
Working Software
Measure of Progress
Late Changes are Welcome
Face to Face communication
Motivated Individuals
Technical Excellence
Simplicity
Self organizing
Regular Adoption
10. Disadvantages of Agile Model
In case of some software deliverables, especially the large ones, it is difficult to assess the
effort required at the beginning of the software development life cycle.
There is lack of emphasis on necessary designing and documentation.
The project can easily get taken off track if customer representative is not clear what outcome
that they want.
Only senior programmers are capable of taking the kind of decisions required during the
development process. Hence it has no place for newbie programmers, unless combined with
experienced resources.