3. Agile Software Development
Agile development model is also a type
of Incremental model. Software is developed in
incremental, rapid cycles. This results in small
incremental releases with each release building on
previous functionality.
4. Why Agile?
The use of the word agile in this context derives from
the agile manifesto. A small group of people got
together in 2001 to discuss their feelings that the
traditional approach to managing software
development projects was failing far too often, and
there had to be a better way.
5. Why Agile?......
They came up with the agile manifesto, which
describes 4 important values that are as relevant
today as they were then. It says, “we value:
1. Individuals and interactions over processes and
tools
2. Working software over comprehensive
documentation
3. Customer collaboration over contract negotiation
4. Responding to change over following a plan
6. Principles of Agile
1. Active user involvement is imperative
2. The team must be empowered to make decisions
3. Requirements evolve but the timescale is fixed
4. Capture requirements at a high level; lightweight &
visual
5. Develop small, incremental releases and iterate
7. Principles of Agile…….
6. Focus on frequent delivery of products
7. Complete each feature before moving on to the next
8. Apply the 80/20 rule
9. Testing is integrated throughout the project
lifecycle – test early and often
10. A collaborative & cooperative approach between
9. SCRUM
Scrum is most popular agile framework in the world,
Scrum uses iterative and incremental development
model. Scrum concentrates particularly on how to
manage tasks within a team-based development
environment. Scrum provides the simple framework
of basic tenets to solve problems and deliver good
results - more valuable software faster
11. Scrum Roles
Product Owner:
The Product Owner should be a person with vision,
authority, and availability. The Product Owner is
responsible for continuously communicating the
vision and priorities to the development team.
12. Scrum Roles
Scrum Master:
The Scrum Master is responsible for ensuring Scrum is
understood and enacted.
The Scrum Master is a servant-leader for the Scrum Team.
The Scrum Master helps those outside the Scrum team
understand which of their interactions with the Scrum team
are helpful and which aren’t.
The Scrum Master helps everyone change these
interactions to maximize the value created by the Scrum
Team.
13. Scrum Roles
Team:
According to Scrum’s founder, “the team is utterly
self managing.” The development team is responsible
for self organizing to complete work. A Scrum
development team contains about seven fully
dedicated members (officially 3-9), ideally in one
team room protected from outside distractions.
16. Extreme Programming
Extreme Programming is a type of agile software
development, it advocates frequent "releases" in
short development cycles, which is intended to
improve productivity and introduce checkpoints
where new customer requirements can be adopted.
The methodology takes its name from the idea that
the beneficial elements of traditional software
engineering practices are taken to "extreme" levels.
17. Rules of XP
Planning
1. User stories are written.
2. Release planning creates the release schedule.
3. Make frequent small releases.
4. The project is divided into iterations.
5. Iteration planning starts each iteration.
18. Rules of XP
Managing
1. Give the team a dedicated open work space.
2. Set a sustainable pace.
3. A stand up meeting starts each day.
4. The Project Velocity is measured.
5. Move people around.
6. Fix XP when it breaks.
19. Rules of XP
Designing
1. Simplicity.
2. Choose a system metaphor.
3. Use CRC cards for design sessions.
4. Create spike solutions to reduce risk.
5. No functionality is added early.
6. Refactor whenever and wherever possible.
20. Rules of XP
Coding
1. The customer is always available.
2. Code must be written to agreed standards.
3. Code the unit test first.
4. All production code is pair programmed.
5. Only one pair integrates code at a time.
6. Integrate often.
7. Set up a dedicated integration computer.
8. Use collective ownership
21. Rules of XP
Testing
1. All code must have unit tests.
2. All code must pass all unit tests before it can
be released.
3. When a bug is found tests are created.
4. Acceptance tests are run often and the score
is published.
22. TDD
Test-driven development (TDD) is a software
development process that relies on the repetition of a
very short development cycle: first the developer
writes an (initially failing) automated test case that
defines a desired improvement or new function, then
produces the least amount of code to pass that test,
and finally refractors the new code to acceptable
standards.
23. Lean
Lean is a production practice that considers the
expenditure of resources for any goal other than the
creation of value for the end customer to be wasteful,
and thus a target for elimination. Working from the
perspective of the customer who consumes a product
or service, "value" is defined as any action or process
that a customer would be willing to pay for. Lean is
centered on preserving value with less work.
24. Conclusion
Agile Framework helps teams to benefit like
Faster Time to Market.
Reduce Uncertainty & Risk.
Increase ROI by focusing on Customer Value.