Professional Documents
Culture Documents
3.3 Key Agile Concepts
3.3 Key Agile Concepts
3 Key Concepts of Agile: There are some key concepts that you need to
understand, the terms used in the agile methodologies are:
User stories are one of the core components of an agile program. They help
provide a user-focused framework for daily work which drives collaboration,
creativity, and a better product overall.
A user story is the smallest unit of work in an agile framework. It’s an end goal,
not a feature, expressed from the software user’s perspective.
The purpose of a user story is to articulate how a piece of work will deliver a
particular value back to the customer. Note that "customers" don't have to be
external end users in the traditional sense, they can also be internal customers
or colleagues within your organization who depend on your team.
User stories are a few sentences in simple language that outline the desired
outcome. They don't go into detail. Requirements are added later, once agreed
upon by the team.
Stories fit neatly into agile frameworks like scrum and kanban.
In scrum, user stories are added to sprints and “burned down” over the
duration of the sprint.
Kanban teams pull user stories into their backlog and run them through their
workflow.
It’s this work on user stories that help scrum teams get better
at estimation and sprint planning, leading to more accurate forecasting and
greater agility.
User stories are also the building blocks of larger agile frameworks like epics
and initiatives.
Epics are large work items broken down into a set of stories, and multiple
epics comprise an initiative.
These larger structures ensure that the day to day work of the development
team (on stores) contributes to the organizational goals built into epics and
initiatives.
Stories keep the focus on the user. A To Do list keeps the team focused on
tasks that need checked off, but a collection of stories keeps the team focused
on solving problems for real users.
Stories enable collaboration. With the end goal defined, the team can work
together to decide how best to serve the user and meet that goal.
Stories drive creative solutions. Stories encourage the team to think critically
and creatively about how to best solve for an end goal.
Stories create momentum. With each passing story the development team
enjoys a small challenges and a small win, driving momentum.
Working with user stories
Once a story has been written, it’s time to integrate it into your workflow.
Generally a story is written by the product owner, product manager, or
program manager and submitted for review.
During a sprint or iteration planning meeting, the team decides what stories
they’ll tackle that sprint. Teams now discuss the requirements and
functionality that each user story requires. This is an opportunity to get
technical and creative in the team’s implementation of the story. Once agreed
upon, these requirements are added to the story.
Another common step in this meeting is to score the stories based on their
complexity or time to completion. Teams use t-shirt sizes, the Fibonacci
sequence, or planning poker to make proper estimations. A story should be
sized to complete in one sprint, so as the team specs each story, they make
sure to break up stories that will go over that completion horizon.
"As a [persona]": Who are we building this for? We’re not just after a job title,
we’re after the persona of the person. Max. Our team should have a shared
understanding of who Max is. We’ve hopefully interviewed plenty of Max’s.
We understand how that person works, how they think and what they feel. We
have empathy for Max.
“Wants to”: Here we’re describing their intent — not the features they use.
What is it they’re actually trying to achieve? This statement should be
implementation free — if you’re describing any part of the UI and not what the
user goal is you're missing the point.
“So that”: how does their immediate desire to do something this fit into their
bigger picture? What’s the overall benefit they’re trying to achieve? What is
the big problem that needs solving?
For example, user stories might look like:
User stories describe the why and the what behind the day-to-day work of
development team members, often expressed as persona + need + purpose.
Understanding their role as the source of truth for what your team is
delivering, but also why, is key to a smooth process.
Start by evaluating the next, or most pressing, large project (e.g. an epic).
Break it down into smaller user stories, and work with the development team
for refinement. Once your stories are out in the wild where the whole team
can see them, you’re ready to get to work.
2. Story Points:
Story points are a relative unit of measure which tells us that the story is
big or small. You can use different scales to measure the story, for
example 1, 3, 5, 8, 13 (Fibonacci series), which defines the complexity
level of the story.
User stories are key to Agile, helping define product functions and managing
requirements; to estimate these stories, we use story points.
If you’ve ever been to Beirut (or Cairo for that matter), you know that the time
it takes to get anywhere in the city is subject to so many factors other than
distance. Traffic could be extreme, or not; the rain could flood the city, or not;
construction, road blockage, time of day, random threat somewhere, overall
feeling of the population, and so on, are all variables you’d have to consider.
To put it this way, the Fibonacci sequence is used when we're looking for a
better estimate of the complexity of a project.
But keep in mind that you can still use a linear scale if you’d rather that; many
do.
The Fibonacci sequence is a series of numbers with each number being the
sum of the two previous numbers: 0, 1, 1, 2, 3, 5, 8, 13, 21 and so on.
During the sprint planning meeting, each developer receives a set of cards
depicting the Fibonacci sequence.
The backlog item is then brought to the table to be discussed and clarified.
Each developer and tester privately gets to select the card they feel reflects
best their estimation for that item.
The estimators reveal their cards at the same time and once consensus is
reached amongst the whole team, then we move on to the next backlog item.
It’s useful to set a maximum limit beyond which tasks can be split into smaller
items. Also, if a task is smaller than 1 or 0.5, it can be incorporated into
another task.
By the end of priority planning poker, the matrix should be filled and tasks
divided into rows based on their story points.
How to convert story points into hours?
It helps ensure the team is working on the most important and valuable
features, fixing the most important bugs, or doing other important work
critical to product development.
Many think of this backlog as a to-do list, and define it in exactly this
way, as a list of things you must do to deliver your product to market.
Why?
When we think about the backlog as a wish list, we invite flexibility and
change.
In doing so, we enable true agility and give the organization a power
that’s necessary to win in the marketplace today: the power to change
its mind.
In this context, the purpose of the backlog can be reduced to three simple
goals.
Develop a common ground to align stakeholders and teams, so that
teams implement the most valuable user stories.
Provide flexibility to adapt to new needs and realities.
Improve the accuracy of product release forecasts by creating a
common denominator across many teams collaborating on one
product.
This backlog is often fed by a strategic roadmap, then divided into themes,
epics, sprints, and user stories. Most include items that would be completed
within the next quarter or fiscal year.
Content, granularity, and immediacy are three key differences between the
product backlogs and sprint backlogs.
5. Defects : Defects are the failure of the product requirements that usually
occur after testing the product requirement mismatch. A bug or defect is
stored in the Product Backlog for sequencing and scheduling.
6. Velocity : A number of story points that are to be delivered at the end of the
sprint are called Velocity in agile.
The story points define the capacity of the team to deliver stories in the sprint.
8. Minimum Viable Product (MVP) : A minimal product that meets the client’s
expectations, the MVP can help the product team receive user feedback as
quickly as possible to iterate and improve the product.
Agile follows an iterative process where projects are divided into sprints of
the shorter span. Unlike the traditional approach, less time is spent on
upfront planning and prioritization as agile is more flexible in terms of
changes and developments in the specification.
Traditional v/s Agile project methodology
The table down below shows the major differences between the traditional
and agile project methodology.
Organizational
Iterative Linear
structure
Involvement of
High Low
clients
Development
Evolutionary delivery Life cycle
model
Reviews and Reviews are done after each Excessive reviews and
approvals iteration approvals by leaders
Selection of the correct approach
Below down are some factors you can take into consideration while
choosing the right methodology for your project.
DSDM is a,
1. Pre-Project
2. Feasibility Study
3. Business Study
4. Functional Model Iteration
5. Design & Build Iteration
6. Implementation
7. Post-Project
1. Time boxing: Traditional Project Management uses milestones where as DSDM uses
timeboxing technique. Is an interval, usually no longer than 2,4 or 6 weeks, where a given set
of tasks should be achieved.
Timebox
2. MoSCoW Rules: DSDM projects are concerned to be in time and on budget and
users are heavily involved in the development process. So it is mandatory to keep on watch
on what users need the most.
The DSDM techniques to weight the importance of requirements are the MosCow rules. And
the rules are as follows,
Frequent Delivery
Incremental development
Implements critical functionality first so can discover difficulties early in the development
process and allow having early deliverable to get user feedback.
The necessary feedback-loop is provided by a workshop which is the last important technique
in a DSDM project.
We need to define what a value is before dwelling into how to go about value
driven delivery in the agile software development. The value could be defined
in terms of monetary benefit, compliance adherence, an answer to the
competition in the market etc. The term value can differ for each client based on
what the client is expecting the product/software to accomplish. The end
product of a project is a value to the customer.
In the agile way of project management, always the requirements are prioritized
based on what adds more value to customer delivery. For projects with
monetary benefits, value is commonly calculated using methods such as return
on investment (ROI), internal rate of return (IRR), and net present value (NPV).
The value-driven delivery beats the plan drive delivery in many ways: