What is Agile?
Agile means the ability to move quickly and easily. In 2001, 17 software developers met
to discuss some alternate lightweight development methods which will be able to adapt
quickly to the changing requirements of a project. They published a Manifesto (known as
Agile Manifesto), which covered how they found “better ways of developing software by
doing it and helping others do it.” Any process that aligns with the concepts of this
manifesto is called an Agile process.
How is it different from Waterfall?
Any agile process is based on an incremental, iterative approach. Instead of in-depth
planning at the beginning of the project, Agile processes are open to changing
requirements over time and encourages constant feedback from the end users. The goal of
each iteration is to produce a working product.
In traditional Software development methodology like waterfall, it builds in Phase. This
type of product development delivers everything at a single Phase. This approach is
highly risky, costlier and generally less efficient than more Agile approaches. Any
issue found in Product design and code it blocks until issue is resolved.
On other hand, Agile methodology uses short development cycles called “sprints” to focus
on continuous improvement in the development of a product or service. This approach
carries far less risk than Waterfall approaches and focus on delivering fully-tested,
independent, valuable, small features. As such, this diversifies the risk – if one
feature goes wrong, it should not impact another feature. The work is planned in
iterations and at the end of each iteration a working model is released for user review
and feedback.
Over a period of time multiple methodologies were derived using Agile philosophy,
characteristics and practices. But from an implementation standpoint, each has its own
processes, terminology, and strategies.
A few popular Agile Software Development Methodologies are: Agile SCRUM, Kanban Software
Development, Extreme Programming, Feature Dirven Development
In this blog we’ll focus only on Agile SCRUM methodology.
A few terms from Agile SCRUM lexicon
- Product Owner – The Scrum Product Owner has the vision of what to
build and conveys that to the team. He or she focuses on business and market
requirements, prioritizing the work that needs to be done, managing the backlog,
providing guidance on which features to ship next, and interacting with the team and
other stakeholders to make sure everyone understands the items on the product
backlog.
- Scrum Master – Often considered the coach for the team, the Scrum
Master helps the team do their best possible work. This means organizing meetings,
dealing with roadblocks and challenges, and working with the Product Owner to ensure
the product backlog is ready for the next sprint.
- Scrum Team – The Scrum Team is comprised of five to seven members.
Unlike traditional development teams, there are not distinct roles like programmer,
designer, or tester. Everyone on the project completes the set of work together.
- Sprint – A sprint is a time boxed period (typically between one and
four weeks) repetition of a continuous development cycle. Within a Sprint, planned
amount of work has to be completed by the team and made ready for review, where a
team commits to completing a set of defined User Stories. A project is comprised of
multiple sprints.
- Sprint Planning – Before a sprint begins, it’s important that the
team is all aligned, and that we have up-to-date story points for the features. The
role of the Sprint Planning session is to go through the highest priority items in
the Product Backlog and agree which User Stories will be included within the next
Sprint.
- Sprint Backlog – A Sprint Backlog is a list of User Stories that
the team will aim to complete during a sprint. All of the User Stories will have
Story Point estimates alongside them, and this total should align with velocity
achieved in the previous sprints.
- Daily Scrum meetings – The Daily Scrum is a 15-minute stand-up
meeting that happens at the same time and place every day during the sprint. During
the meeting each team member talks about what they worked on the day before, what
they’ll work on today, and any roadblocks.
- Sprint review meeting – At the end of each sprint, the team
presents the work they have completed as a live demo rather than a presentation.
Sprint retrospective meeting: Also, at the end of each sprint, the team reflects on
how well Scrum is working for them and talks about any changes that need to be made
in the next sprint.
- Product backlog – The product backlog is not a list of things to be
completed, but rather it is a list of all the desired features for the product.
Sprint planning: Before each sprint, the Product Owner presents the top items on the
backlog in a sprint planning meeting. The team determines the work they can complete
during the sprint and moves the work from the product backlog to the sprint backlog.
- Backlog refinement/grooming – At the end of each sprint, the team
and Product Owner meet to make sure the backlog is ready for the next sprint. The
team may remove user stories that aren’t relevant, create new user stories, reassess
the priority of stories, or split user stories into smaller tasks.
In the next blog we’ll discuss more about the role of Tester in the Agile environment and
what are typical challenges a Tester faces in an environment where change in requirement
is always welcomed
Sankhadeep Chakraborty
Sankhadeep heads the engineering arm in Verinite. He has been associated with the BFSI
domain from the start of his career. He is a hardcore techie and innovation drives him.
He believes in the saying "Nothing is impossible"