Scrum and Agile Framework
Scrum and Agile Framework
Development Model
Introduction to Scrum
Scrum is one of several techniques for managing product development, under the broad
category of Agile Software Development. Agile methodology is designed to
support iterative and flexiblemethods for running a product.
Among the diverse agile methodology, Scrum is well defined for the types of organizations that
develop products such as software, websites and Information Technology tools. Scrum
encourages a team to work in a focused way for limited period of time on a definite amount of
work. It also allows the team to build and improve ability to estimate how much effort it will take to
develop a new feature and the lesson learnt are documented in a system.
Scrum Origin
At the time, the most suitable approach for software development was the Waterfall Model.
Under the waterfall model, product development happens in stages- Design, Implementation,
and Release.
In the late 1990s, the electronic media and the Internet emerged. To support these, software
development organizations had to incorporate more flexibility to adapt to changing variety of
platforms with different requirements. Soon after that, the development of large software
applications that lived on desktop computers gave way to smaller, more flexible apps that were
delivered through mobile devices. An identical approach was needed for developing these.
Scrum came into picture to work together in a sustainable and productive way, instead of waiting
until the entire cycle has completed.
Scrum - The Hottest Project Methodologies
Acquiring the knowledge of a new language is one of the initial steps in acquiring a new skill and
consistent use of language is fundamental to team trying to work together. There are a few terms
defined in the Scrum to understand its meaning clearly, they are:
Agile: It is a set of software development practices designed to help developers work together
and adapt to changes quickly and easily.
Customer: Whoever has engaged the team to create a product.
Developer: A person responsible for creating and maintaining the product.
Product Backlog: A constantly evolving list of potential features or changes for a project.
Product Owner: A person who helps define the product for the team.
Scrum Master: A person responsible for maintaining the artifacts and overseeing the rituals of
scrum.
Sprint: A fixed number of days during which the team can work together to produce an agreed
upon set of changes to the product.
Story: A clear and consistent way of dividing, phrasing, and discussing work the team may need
to do on the product.
Fail Fast Technique
Scrum wants you to fail. In fact, it's known for the slogan "fail fast". No, I'm not joking. It sounds
weird, but there is a very good reason for this. Traditionally, project managers and developers
would work for months or years before seeing the results. Most of the time, around 80% in fact,
the software and projects failed. So, why, you might ask, are they signing up for more failure?
Well, really, they are not.
The trick is in focusing on the second word: Fast. Failure is okay as long as you are learning from
it, but if you have to wait too long, you are not going to learn nearly as much from it. Scrum takes
the Agile manifesto and its key principles boils them down to a very simple framework that
encourages small-scale focus and rapid learning cycles.
Traditional Approach of Development
Traditionally, Waterfall project teams face three constraints: Time, Cost, and Scope. They were
unable to change any of these things once their project started.
The problem is, during the course of a project, the business environment changes around you.
This means, by the time you are done, what you built is no longer valuable. This isn't anyone's
fault. Business needs are changing more rapidly than ever. Project requirements are shifting just
as quickly to keep up.
In the traditional approach, first the client requirements are documented in details, architecture of
the software is planned and conceptualised and then the work starts to produce the end product.
Product Owner(PO)
The PO is the business representative of the team. They're not part-time team members. They
show up every day, because they're contributing to the final product every day.
They review all the work the team completes and either accepts it or asks the team to make
changes to ensure the highest value is being delivered. Earlier, the business person was
presented through requirements documents that were rarely, if ever, updated.
On a Scrum team, the PO is always ordering the work and ensuring that the team members
clearly understand the details of the request, but that's only one part of their job. They're also
interacting on a daily basis with the stakeholders.
It's not enough for the PO to interact with the team, they must also be in tune with all the
changes that are occurring in the business context. As a result, the PO is the keeper of the
product vision. He or she defines and manages the backlog of work to be done and the
prioritization of those work items.
Scrum Master
The Scrum Master is the most visible spokesperson for the team. Scrum Masters value
transparency. They'll devise charts and boards to share the team's progress with anyone who's
curious or interested in knowing how they're doing.
They're also the first escalation point when something gets in the way for the team. The Scrum
Master will work to remove any blockers until they're out of the way and the team can continue
on. While the Product Owner keep eyes on what needs to be done, the Scrum Master focuses on
how the team does the work.
One more thing, The Scrum Master also holds the team accountable for their commitments to the
Product Owner. They show trends in team performance over time to help the team improve their
processes and practices. As you can see, each role is absolutely critical to getting the framework
to function properly. If you're lacking one of these roles, Scrum will be far less effective than if
you have them both.
Build Your Scrum Team
Scrum is all about daily collaboration and communication. You should do absolutely anything to
make that easier for your team, as this will reap big profits down the line. That's why, if it's
possible, co-locate your team members in the same room, aisle or space to make that
collaboration more effective.
In many companies that's simply not possible due to building or distance barriers. That's okay.
You can still be successful with scrum. You'll just have to work a bit harder to ensure sufficient
collaboration takes place. Some things you can try are: Video conferencing, dedicated chat
rooms and conferencing phones at all your locations. These can easily help your team stay in
touch.
Now, let's talk a bit about the team composition. Your first priority must be to ensure that you
have a dedicated team with you.
As per Scrum guidelines, the ideal team size is seven members, plus or minus two. I know
this sounds specific, but research indicates these numbers maximize people's ability to
create close relationships and collaborate most effectively.
2. Communication Channel
Most of the time it is not possible to gather the team at one place for Scrum meetings and
other work related issues. In such situations, Communication Channel plays vital role to
collect team at one place. It may be a video conferencing or audio conferencing, just to share
your current progress and discuss road blocks, if any.
If you take the time to work through these elements and help your team set the stage, success
can come quickly for them. You will be astonished at how fast your team learn to work effectively
once you have set them up for success.
First, good user stories are independent. It can be delivered separately from other stories and
have value by itself. If you only have time to do one thing, this story can stand-alone.
2. Negotiable
User Stories are also negotiable. Until the story is committed for work, it can be rewritten,
changed, or cancelled at any time. User stories must be valuable. It delivers value to the PO,
stakeholders, and customers.
3. Meaningful
4. Estimable
You must be able to estimate the size of the story in story points. That means that the story is
descriptive enough so you know what has to be done to finish it. Only then can you
understand the effort required.
A Story is a task, with all the details about the task mentioned in the story description. The story
is then assigned a time(story points), within which it must be finished. It is also given a priority,
important tasks can be marked high priority to be worked upon first.
There are many softwares available these days, for complete Scrum Planning like Jira by
Atlassian.
Writing good user stories can be challenging but if the requirements and planning is good, it gets
easier with time.
Throughout the agile lifecycle, your stories evolves. Large stories can be split to smaller stories, if
the single task is large to be implemented in a single iteration.
Multpile stories are clubbed under one Epic. When we say, at times, a big story can be
disintegrated to multiple small stories, we group all the small stories under one Epic. It is like one
big story.
1. First, the Product Owner will be provided with all the reuired information. Information
about the project is generally provided by the customer, if it is an out sourced project, and if it
is a product of the company itself then, the Product Architect designs the requirements and
provides to Product Owner.
2. Once all the requirements are clear, which in our example are:
o A Home Page with information about website
o A Profile Page
o Login/Signup Mechanism
o etc...
6. Story Points are measure of time. Mostly the Fibonacci series numbers are used for
story points. It can be 1, 2, 3, 5, 8, 13 and so on, where 1 means the task requires one
complete working day's effort.
7. Planning Poker is an activity created around the Scrum Planning to make this more
interactive. You can easily google how to play planning poker, or visit this Link
8. Hence scrum famework is nothing but what we may already be doing without knowing it.
It is one the perfect ways to plan and execute within a time frame to produce best results.
And yes, they have specific terms for everything.
Release Plans
Once you've completed this you can organize your stories around the theme timelines you've
created. This is how you create your release plan.
The release plan is the next layer of detail. It's a high level plan that's meant to connect the
roadmap to the sprints. It provides visibility to how we're going to deliver.
In Scrum you must have fully functional stories completed at the end of every Sprint. You're not,
however, required to release them to the stakeholders at the end of every sprint. This means you
can complete all the work for two or three sprints before releasing the combined results together.
You'll use your story points to help your team decide what they can do within each sprint. Once
your team has been together for a while they'll reach what's known as a stabilized velocity.
What is a Scrum Sprint?
A Sprint is a time frame, not more than one month, during which a project or sub-project is
completed. Most commonly a sprint is of 2 or 3 weeks time. After completion of one sprint, the
next sprint starts immediately.
During the Sprint planning, stories, epics are created and during an ongoing sprint, no changes
are made, that may affect the sprint goal.
Every sprint starts with a Sprint Planning Session and at the end of every spring, a Sprint
Review Meeting is condcuted where the Product Owner reviews whether the commited tasks
are completed. Also, a Retrospective Meeting can be conducted to look back at the issues
faced during the last sprint, to improve upon those in the coming sprint.
Sprint Preplanning
The main agenda of Sprint Planning is to make sprint execution more effective.
To provide right preconditions, one need to take following actions during the sprint preplanning:
Clarify the Acceptance Criteria. The criteria, that a story must qualify to be marked as
"Done".
Provide the estimate of the user stories, to help Product Owner to identify the priorities in
the backlog.
Break down high priority User Stories into chunks that will fit for a sprint.
Consider dependency on the key resources in the team and workload for each team.
Managing Dependencies
A good user story is independent, it does not have any dependency.
There are 3 types of dependencies:
Simple Dependency
External Dependency
Intertwined Dependency
Simple Dependency
Simple dependencies happen when one user story depends on another one. One way to remove
this unidirectional dependency is to combine or split the user stories differently. When this is not
possible, the alternative is to set a higher priority for the standalone user stories with the greatest
number of dependencies than their dependents.
External Dependency
External dependencies occur when a story is dependent on outside teams. In this case, the
teams need to negotiate integration and delivery dates and adjust the priorities of the stories. The
team working on the dependent story should not commit to completing the dependent story
within a Sprint until the other team delivers their user story.
Intertwined Dependency
These dependencies are when two or more user stories are co-dependent, and each cannot
complete without the other. Ideally, the team should look for ways to break all the connections or
look for ways to turn the intertwined dependencies into simple dependencies instead. Dealing
with these dependencies across Scrum Teams is a critical responsibility of the PO(Product
Owner) working with the Scrum Teams.
Product Owners and the Scrum development team need to focus their attention on the high
priority stories for the current release. That's why Sprint Preplanning is an important step for
effective Sprint planning.
Using the prioritized backlog, the PO presents the highest value stories to the team in order. The
purpose is that everyone on the team fully understands the intent of the story and specific
acceptance criteria for that story. It is also helpful to explain the definition of done for all the user
stories.
Every sprint starts with a Sprint Planning Session, which includes two sessions - the WHAT-
meetingand the HOW-meeting. In the WHAT-meeting the team picks the User stories from the
Scrum backlog, on which they will be working. And, in the HOW-meeting, the User stories picked
are further broken into small tasks with a set priority and story points.
Collaboration
Communication
Cadence
The standup includes all three. It is the foundational element of collaboration as it includes
everyone on the team: the developers, the testers, the product owner, and scrum master.
It occurs at the same time every day, so your scrum master will select a time for the standup that
works for everyone. For teams that are co-located or within a few timezones, this is pretty
straightforward. For international teams, this can be a bit more challenging. But with today's
video conferencing capabilities, this is achievable as well. The bottom line is that daily standup is
one of the non-negotiable of the scrum framework. This is the time when tasks are moved across
the board.
At the same time, your standup is not a progress report. No one should be delivering the full
explanation of his or her activities, just the overview. Stakeholders are also encouraged to
attend, but ask them to hold their questions and comments until the end of the scrum.
Daily scrum is short. It's limited to 15 minutes. It can be shorter, but it cannot be longer. The
whole team stands to keep it fast, thus the shorthand name, standup. The scrum master also
limits updates to three questions per person: What did you do yesterday?, What are you going to
do today?, and Is anything blocking your progress? As individuals go through these questions,
the whole team understands their progress as a unit and see how their work fits into the whole.
Backlogs in Scrum
In Scrum methodology, term Backlog is a prioritized list that contains short description of the
functionality required in the project.
The stakeholders want to ensure they get what they need from your project. A key aspect to
keeping the right priorities throughout the project is the on-going refinement of the product
backlog. This means that the PO is out there meeting with stakeholders to understand what's
needed. They're constantly moving the work around as the business needs and requirements
shift.
Throughout the project, your backlog is constantly changing as new features and stories are
being found and added. Other stories are being changed and maybe even removed.
As new stories are discovered, the Product Owner works out the details and acceptance criteria
for each one. But at least once per sprint, the whole team must come together to see what new
items have come up. This is usually a 30 to 60 minute Backlog Grooming Session. It usually
happens around the midpoint of the sprint. The Product Owner reads the new stories to the
team, and the team asks about any details that are missing.
The Product Owner for the scrum team is like the driver for a vehicle. For the verhicle to run
smoothly and complete its journey, the driver must work well and provide anything that the
vehicle requires, be it fuel or repair.
Daily Planning
Daily Collaboration
Focus and Done
Measurement
Daily Planning
Discuss everyday with your Scrum master and plan your day together. Take up a new fresh story
and start working on that. As the story completes, pass on the workflow to respective testing
team and plan for new task.
Daily Collaboration
Collaborate with your team and Product owner and understand the definition of done for each
story on which you are working on. Collaboration is required to get the team progress on the
current sprint.
Measurement
Measurement is another way to execute successful sprint. Track your progress on burndown
chart everyday.
As the team completes the tasks, the Scrum Master keeps track of what was done and uses the
Burndown Chart to show the team whether they're on track to complete their commitment for the
sprint.
The most commonly tracked Agile measure is Velocity. This is simply the number of points a
team completes from their backlog each sprint.
The team acknowledges their progress and keeps their eye on what's coming. This collaboration
helps the team maintain awareness of the whole project. It keeps the team focused on the big
picture while delivering a usable product in every sprint.
Missing the Target: Consistently check that the work completed matches the plan, and
you do not have any leftover features added to the product backlog at the end of the sprint.
This is known as Snow Ploughing. This is similar to the end of the first and start of the
second sprint when you are revising estimates to match team productivity. However, if this
continues to happen at the end of each sprint, you must gather the team to discuss and
understand why this is happening, and take appropriate action.
Miscommunication leads to Wrong Product: Another notable indicator of a problem is
when the team frequently produce pieces of a feature and throws them away. This could be
due to the development of features that turn out to be a low priority, are not what was
required or are incorrect, or need to be revised based on receiving new information. Often the
primary reasons for these problems relate to the business representatives not asking the
right questions to understand the business problem. Or the customer doesn't understand
what you're trying to build, or you do not have accurate information about the real business
need.
If you believe these are possibilities, then you should conduct a product review with the customer
to understand the root cause of the problem.
Based on the customer's input during this review, you should revise the product backlog
appropriately.
Another focus item to avoid trouble is to carefully watch team attendance at meetings. Are all
your core team members present and participating in daily team meetings and follow up
activities? There could be valid reasons for the occasional mental or physical absence by an
individual, but repeated absences could be signs of a problem.
The last item to think through when looking for Scrum trouble spots is, are you the fixer of all the
problems you see? Successful Scrum teams are self-organized and self-governed. So you
should have confidence and must believe in your team members, and leave some space for the
self-governing to work. This means resisting the temptation to be the fixer all the time.
Agile approaches are powerful and deliver great outcomes. Careful monitoring of the common
trouble spots can help ensure you will deliver business values successfully.