Scrum
Scrum
Scrum
As
an agile framework, Scrum provides just enough structure for people and teams to
integrate into how they work, while adding the right practices to optimize for their specific
needs. Scrum is where the team comes together to move the product forward.
Agile is governed by the four values and twelve principles as provided in the Manifesto for Agile
software development
Sprint – The timeboxed iteration in which deliverables are produced by the development team.
Sprints happen in a sequence.
Cross functional – Refers to the diversity of skill sets present in a development team, ranging from
developers, architects, testers, analysts etc.
Definition of Done ( DoD) – This is a generic checklist of conditions agreed upon between the
customer and teams on what can be considered done.
Vision statement:
User stories- tend to bridge the gap between business language and technical language.
The INVEST principles coined by Bill Wake can be used for writing good user stories and reviewing
them. User stories are written and groomed throughout the project.
What is prioritization?
Prioritization helps Product owners
identify what is valuable at that point
in time so that value driven
development can happen. This is
inline with the principle “Simplicity
the art of maximizing the amount of
work not done is essential”
sprint duration?
The sprint duration has to be apt to deliver increments as expected by the customer. In general, the
sprint duration is usually fixed between 2 to 4 weeks.
What is velocity?
The number of story points that the team can complete in one sprint is called velocity. Velocity of a
team represents the speed at which teams are moving forward with agility. It is an important metric
which is measured in Agile software development.
Release date?
Step 1: Divide the total story points for the product backlog by the velocity to get the number of
sprints
Step 2:Multiply the number of sprints by the sprint duration (in weeks)
Step 3:Add Buffer-
• Towards Uncertainty (for example: 15%)
• For Improvement and rework (for example: 10%)
Step 4:One Pre-release sprint (to go from potentially shippable to actually “shipped”)
The release Burndown Chart is useful to the product owner and provides an idea of the
progress
• The other option for the product owner is to extend the release date to ensure the completion
of all the items.
Team enablement
This step is important because teams need to understand the philosophy of Scrum. This will also
remove unnecessary apprehensions (my job role will go away, my work will get exposed etc..) that
the might have while moving to scrum.
The tooling and infra required (testing environments, communication etc..) need to be decided here.
This becomes even more important when the teams are distributed.
Quick Recap
• Sprint 0 and Initiation phase does the just enough planning required for the project
• This phase can span about 2-3 weeks and it involves the following-
o Communication of vision statement and team onboarding
o User Story writing
o Prioritization
o Story Point estimation
o Computing the sprint duration, velocity and release date
o Team enablement
o Base Architecture, design and infrastructure set up
We have completed the release planning for the Project. Now let us see how to execute the
sprints (1 to N).
Sprint planning?
It involves micro level planning for the user stories that would be developed during the sprint based on the
prioritized order. Planning in small pieces for what is in sight contributes to value driven development.
The sprint planning is done during every sprint and is an integral part of it. The Scrum master
facilitates the planning with the entire development team. The Product owner needs to be available
to clarify questions on user stories picked for that sprint.
The Scrum guideline says, half a day for a two-week sprint. This can be pro-rated as per sprint
duration.
Calculate capacity of the following team in hours, for the upcoming 2 week sprint:
• The Company has a 5 day week and 8 working hours per day
• The team has 8 members
• 1 member is on vacation for a week
• 2 team members are in training for 2.5 days each
• 1 team member is being shared by another project so he is available for only 50% of the time
• 25% of the day time to respond to emails and meetings etc for all the team members
Produces Working Software
This represents the produce phase of the sprint. The development team need to execute the tasks
committed in the sprint backlog to produce working increments of software.
The development team produces the working software during the sprint as per the capacity
calculated. The Scrum master facilitates this activity by ensuring impediments are removed and the
user story clarifications are resolved with Product owner.
This spans as per the actual capacity calculated, typically 7.5-8 days for a two week sprint
The entire development team participates in the daily standup which happens every day for 15
minutes. It is facilitated by the Scrum master.
If development teams start on "what" stories to pick up during sprint planning, they would not be
able to complete the same in the stipulated period. Hence the need to groom stories one sprint
ahead. This is also called sprinting ahead sessions / product backlog grooming.
This is done for about half a day for a two-week sprint and is done every sprint. The entire
development team participates and is facilitated by the Scrum master. The PO needs to be available
for clarification of queries.
The development team grooms i.e. writes acceptance criteria or understands the stories better.
Three things may happen in the grooming –
1. PO can revisit the priorities of the user stories, teams may revisit estimates for the user
stories
2. PO can add new user stories, however the timelines may have to be revisited
3. Understanding of user stories for next sprint
Review
During review, the Product owner inspects the increment based on DOD and acceptance criteria.
During retrospection, the team looks at ways of improving the process. This is the fourth ceremony
carried out in a sprint. In order to produce and deliver valuable software frequently to customers,
early feedback by the product owner is essential.
This is done towards the end of the sprint for half a day. The PO, stakeholders participate the review.
The development team demonstrates the working increment produced
1. The PO reviews the working increment against the acceptance criteria and definition of done.
2. The PO declares “doneness” of items and provides feedback on what is not done
3. The PO might provide changes. They are measured and then a call is taken to add it as a new
item to the product backlog
4. The stakeholders review the working increment and provide feedback to PO
Retrospection
In order to bring about improvements and innovations in the working of the team and the process,
retrospection is done
This is facilitated by the scrum master and the development team participates
Let us revisit the principles once again. Every time the code is written the increment should:
What is refactoring?
The process of changing a software system in such a way that it does not alter the external behavior
of the code, yet improves its internal structure
Modern day IDE's have features that help programmers to refactor code. There are many refactoring
patterns that need to be understood by developers and with the help of tools, use it in code.
Practical tips
• Buffer time for refactoring every sprint
• Do not refactor very close to release
• You may refactor code that is being newly developed rather than already existing code
(legacy code)
• Sensitize customers on the need for time to be allocated for refactoring
What is TDD?
Is a software engineering approach that involves short development iterations consists of writing
failing test case(s) first covering a new functionality and then implementing the necessary code to
pass the tests and finally refactor the code without changing external behavior.
XUnit frameworks help in writing automated unit tests. Thus TDD includes both test automation and
refactoring.
The developers(ex. Dev1 and 2 shown in figure) commit code to a source code repository. Post this
the build phase activities of static code analysis, unit testing, code coverage by the unit tests and
building the executable file are automated through tools and these steps are called in sequence by
the continuous integration server. The executable file is placed in the artifact repository for further
testing and release. The continuous integration server is configured to orchestrate frequently to
ensure continuous integration of code.
Tools
Jenkins, Bamboo and TFS are examples of continuous integration tools that orchestrate the build
and deployment activities which are in turn automated using respective tools
What is pair programming?
Two programmers coding together on a single machine is called pair programming. One of the
programmer plays the role of a driver who writes clean code, compiles and execute the code. The
other plays the role of navigator who strategizes on design, tests, reviews and refactors code. These
pairs self-organize and switch partners and roles during the day
The following table summarizes how the twelve principles of agility can be met-