Agile Methodology-1
Agile Methodology-1
Agile Methodology-1
AGILE methodology is a practice that promotes continuous iteration of development and testing
throughout the software development lifecycle of the project. Both development and testing
activities are concurrent unlike the Waterfall model
Agile is a software development methodology to build a software incrementally using short
iterations of 1 to 4 weeks so that the development process is aligned with the changing business
needs. Instead of a single-pass development of 6 to 18 months where all the requirements and
risks are predicted upfront, Agile adopts a process of frequent feedback where a workable
product is delivered after 1 to 4 week iteration.
Agile and Waterfall model are two different methods for software development process. Though
they are different in their approach, both methods are useful at times, depending on the
requirement and the type of the project.
Agile methods
Agile methods support a broad range of the software development life cycle.Some focus on the
practices (e.g., XP, pragmatic programming, agile modeling), while some focus on managing the
flow of work (e.g., Scrum, Kanban). Some support activities for requirements specification and
development (e.g., FDD), while some seek to cover the full development life cycle (e.g., DSDM,
RUP).
Popular agile software development frameworks include (but are not limited to):
Terminologies:
1. Scrum Team
Scrum team is a team comprising of 7 with + or – two members. These members are a mixture of
competencies and comprise of developers, testers, data base people, support people etc. along
with the product owner and a scrum master. All these members work together in close
collaboration for a recursive and definite interval, to develop and implement the said features.
2. Sprint
Sprint is a predefined interval or the time frame in which the work has to be completed and make
it ready for review or ready for production deployment. This time box usually lies between 2
weeks to 1 month. In our day to day life when we say that we follow 1 month Sprint cycle, it
simply means that we work for one month on the tasks and make it ready for review by the end
of that month.
3. Product Owner
Product owner is the key stakeholder or the lead user of the application to be developed.
Product owner is the person who represents the customer side. He / she have the final authority
and should always be available for the team. He / she should be reachable in case any one has
any doubts that need clarification. It is important for the product owner to understand and not to
assign any new requirement in the middle of the sprint or when the sprint has already started.
4. Scrum Master
Scrum Master is the facilitator of the scrum team. He / she make sure that the scrum team is
productive and progressive. In case of any impediments, scrum master follows up and resolves
them for the team.
5. User Story
User stories are nothing but the requirements or feature which has to be implemented. In scrum,
we don’t have those huge requirements documents, rather the requirements are defined in a
single paragraph, typically having the format as:
As a <User / type of user>
I want to <Some achievable goal / target>
To achieve <some result or reason of doing the thing>
For example:
As an Admin I want to have a password lock in case user enters incorrect password for
consecutive 3 times to restrict unauthorized access.
There are some characteristics of user stories which should be adhered. The user stories should
be short, realistic, could be estimated, complete, negotiable and testable.
Every user story has an acceptance criterion which should be well defined and understood by the
team. Acceptance criteria details down the user story, provides the supported documents. It helps
to further refine the user story. Anybody from the team can write down the acceptance criteria.
Testing team base their test cases / conditions on these acceptance criteria.
6. Epics
Epics are equivocal user stories or we can say these are the user stories which are not defined and
are kept for future sprints. Just try to relate it with life, imagine you are going for a vacation.
Since you are going next week, you have everything in place like your hotel bookings,
sightseeing, travelers check etc. But what about your vacation plan for next year? You have only
a vague idea that you may go to XYZ place, but you have no detailed plan.
An Epic is just like you next year’s vacation plan, where you just know that you may want to go ,
but where, when, with whom, all these details you have no idea at this point of time.
In a similar way there are features which required to be implemented in future whose details are
not yet known. Mostly feature begins with an Epic and then broken down to stories which could
be implemented.
7. Product Backlog
Product backlog is a kind of bucket or source where all the user stories are kept. This is
maintained by Product owner. Product backlog can be imagined as a wish list of the product
owner who prioritizes it as per business needs. During planning meeting (see next section), one
user story is taken from the product backlog, team does the brainstorming, understands it and
refine it and collectively decides which user stories to take, with the intervention of the product
owner.
8. Sprint Backlog
Based on the priority, user stories are taken from the Product Backlog one at a time. The Scrum
team brainstorms on it, determines the feasibility and decides on the stories to work on a
particular sprint. The collective list of all the user stories which the scrum team works on a
particular sprint is called s Sprint backlog.
9. Story Points:
Story points are quantitative indication of the complexity of a user story. Based on the story
point, estimation and efforts for a story is determined. Story point is relative and is not absolute.
To make sure that our estimate and efforts are correct, it’s important to check that the user stories
are not big. Precise and smaller is the user story, accurate will be the estimation.
Each and every user story is assigned a story point based on the Fibonacci series (1, 2, 3, 5, 8,
13&21). Higher is the number, complex is the story.
To be precise
If you give 1 / 2 / 3 story point it means the story is small and of low complexity.
If you give points as 5 / 8, it is a medium complex and
13 and 21 are highly complex.
Here complexity consists of both development plus testing effort
To decide a story point, brainstorming happens with in the scrum team and the team collectively
decides a story point. It may happen that development team gives a story point of 3 to a
particular story, because for them it may be 3 lines of code change, but testing team gives 8 story
point because they feel this code change will affect larger modules so testing effort would be
larger. Whatever story point you are giving, you have to justify it. So in this situation,
brainstorming happens and the team collectively agrees to one story point.
Whenever you are deciding on a story point, keep the below factors in mind:
It is a tracking mechanism by which for a particular sprint; day to day tasks are tracked to check
whether the stories are progressing towards the completion of the committed story points or not.
I have assumed:
2 weeks Sprint ( 10 days)
2 resources actual working on the sprint.
“Story”-> Column shows the user stories taken for the sprint.
“Task” -> Column shows the list of task associated to the user story.
“Effort” -> Column shows the effort. Now; this measure is the total effort to complete the task. It
does not depict the effort put in by any specific individual.
“Day 1 – Day 10” -> – Column(s) shows the hours which are left to complete the story. Please
see that the hour is NOT the hour which is already done BUT the hours which are still left.
“Estimated Effort” -> is the total of the effort. For the “Start” it is simply the sum of the entire
individual task: SUM (C5: C15)
Total number of effort that has to be completed in 1 day is 70 / 10 = 7. So at the end of day 1, the
effort should reduce to 70 – 7 = 63. In a similar way it is calculated for all the days till day 10,
when estimated effort should be 0 (Row 16)
------------
“Actual Effort Left” -> as the name suggests, is the effort actually left to complete the story. It
may also happen that the actual efforts increases or decreases than the estimated one.
You can use the in build functions and Chart in Excel to create this burn down chart.
11. Velocity
Total number of story point which a scrum team archives in a sprint, is called Velocity. The
Scrum team is judged or referenced by its velocity. Having said that, it should be kept in mind
that the objective here is NOT achieving the maximum story points, but to have quality
deliverable, respecting scrum team’s comfort level.
For example: For a particular sprint: total number of user stories are 8 having story points as
Feature
An improvement done to a product or capability of value to stakeholder which can be developed
in a release.
Iteration
A theme-based work item that can be completed within a time box and accepted within the
release of a product. Iteration work is defined during iteration planning and it finishes with
demo and review meeting. It is also termed as Sprint.
Increment
An increment is the changing state of a product as it undergoes gradual development. It is
normally represented by milestones or number of fixed iterations.
Product Backlog
Set of functional and non-functional product requirements.
Task
It is a unit of work that contributes towards the completion of a user story within an iteration.
User stories are decomposed into multiple tasks and each task can be divided between team
members marking them as owner of the tasks. Team members can take responsibility of each
task, update estimates, log work done or to-do as desired.
User Story
A listed acceptance criteria to fulfil certain requirements of a user. It is normally written from
the perspective of an end-user.
Velocity
A measure to weight the accepted work in an iteration or timebox. Normally it is the sum of
story points accepted in an iteration.
Many a time planning meeting is preceded by a “Pre-Planning meeting”. It’s just like a home
work which the scrum team does before they sit for the formal planning meet. Team tries to write
down the dependencies or other factors which they would like to discuss in the planning meet.
Step #5: On 5th of June the entire Scrum team meets for the “Planning Meeting”.
Final verdict of the user story from the product backlog is done and the story is moved to
the Sprint back log.
For each story, each team member declares their identified tasks, if required can have a
discussion on those tasks, can size or resize it (remember the Fibonacci series!!).
The Scrum master or the team enter their individual tasks along with their hours for each
story in a tool.
After all the stories are completed, Scrum master notes the initial Velocity and formally
starts the Sprint.
Step #6: Once the Sprint has started, based on the tasks assigned, each team member starts
working on those tasks.
Step #7: The team meets daily for 15 minutes and discusses 3 things:
What did they do yesterday?
What they plan to do today
Any impediments (roadblocks)?
Step #8: The scrum master tracks the progress on daily basis with the help of “Burn down chart”
Step #9: In case of any impediments, the Scrum master follows up to resolve those.
Step #10: On 4th July, the team meets again for the review meeting. A member demonstrates the
implemented user story to the product owner.
Step #11: On 5th July, Team meets again for the Retrospective, where they discuss
What went well?
What did not went well
Action Items.
Step #12: On 6th July, Team again meets for the pre-planning meeting for the next sprint and the
cycle continues.
Jira
XPlanner
VersionOne
Sprintometer
ScrumNinja