Agile Methodology
Agile Methodology
Agile Methodology
Agile Methodology
Scrum
SCRUM is an agile development method which concentrates specifically on how to manage
tasks within a team-based development environment. Basically, Scrum is derived from activity
that occurs during a rugby match. Scrum believes in empowering the development team and
advocates working in small teams (say- 7 to 9 members). Agile and Scrum consist of three roles,
and their responsibilities are explained as follows:
Scrum Method
Scrum Master
Master is responsible for setting up the team, sprint meeting and removes
obstacles to progress
Product owner
The Product Owner creates product backlog, prioritizes the backlog and is
responsible for the delivery of the functionality at each iteration
Scrum Team
Team manages its own work and organizes the work to complete the sprint or
cycle
Product Backlog
This is a repository where requirements are tracked with details on the no of requirements(user
stories) to be completed for each release. It should be maintained and prioritized by Product
Owner, and it should be distributed to the scrum team. Team can also request for a new
requirement addition or modification or deletion
Scrum Practices
Practices are described in detailed:
Scrum Practices
Extreme Programming
Business requirements are gathered in terms of stories. All those stories are stored in a place
called the parking lot.
In this type of methodology, releases are based on the shorter cycles called Iterations with span
of 14 days time period. Each iteration includes phases like coding, unit testing and system testing
where at each phase some minor or major functionality will be built in the application.
Crystal Methodologies
Crystal Methodology is based on three concepts
1. Chartering: Various activities involved in this phase are creating a development team,
performing a preliminary feasibility analysis, developing an initial plan and fine-tuning
the development methodology
2. Cyclic delivery: The main development phase consists of two or more delivery cycles,
during which the
1. Team updates and refines the release plan
2. Implements a subset of the requirements through one or more program test
integrate iterations
3. Integrated product is delivered to real users
4. Review of the project plan and adopted development methodology
3. Wrap Up: The activities performed in this phase are deployment into the user
environment, post- deployment reviews and reflections are performed.
Kanban
Kanban originally emerged from Japanese word that means, a card containing all the information
needed to be done on the product at each stage along its path to completion. This framework or
method is quite adopted in software testing method especially in Agile concepts.
Scrum Vs Kanban
Scrum Kanban
In scrum technique, test must be broken down so that they
No particular item size is prescribed
can be completed within one sprint
Prescribes a prioritized product backlog Prioritization is optional
Scrum team commits to a particular amount of work for the
Commitment is optional
iteration
Burndown chart is prescribed No particular item size is prescribed
A Kanban board is persistent. It limit
Between each sprint, a scrum board is reset
of items in workflow state
It cannot add items to ongoing iteration It can add items whenever capacity is
WIP limited indirectly WIP limited directly
Timeboxed iterations prescribed Timeboxed iterations optional
Agile metrics:
Metrics that can be collected for effective usage of Agile is:
Drag Factor
Effort in hours which do not contribute to sprint goal
Drag factor can be improved by reducing number of shared resources, reducing
the amount of non-contributing work
New estimates can be increased by percentage of drag factor -New estimate =
(Old estimate+drag factor)
Velocity
Amount of backlog(user stories) converted to shippable functionality of sprint
No of Unit Tests added
Time interval taken to complete daily build
Bugs detected in an iteration or in previous iterations
Production defect leakage
========================
What is Agile?
The major principles of Agile are detailed in the Agile manifesto. Created in early 2001,
the Agile manifesto details the different values and principles that embody the process.
The manifesto states:
Individuals and Interactions OVER Process and Tools
Agile Model
The meaning of Agile is swift or versatile."Agile process model" refers to a software
development approach based on iterative development. Agile methods break tasks into
smaller iterations, or parts do not directly involve long term planning. The project scope
and requirements are laid down at the beginning of the development process. Plans
regarding the number of iterations, the duration and the scope of each iteration are
clearly defined in advance.
Each iteration is considered as a short time "frame" in the Agile process model, which
typically lasts from one to four weeks. The division of the entire project into smaller
parts helps to minimize the project risk and to reduce the overall project delivery time
requirements. Each iteration involves a team working through a full software
development life cycle including planning, requirements analysis, design, coding, and
testing before a working product is demonstrated to the client.