Professional Documents
Culture Documents
How to Manage
Complex
Software
Projects across
Distributed
Teams Using
Agile Methods.
EXCELLENCE
F
R
E
E
E
X
C
E
R
P
T
SCALING EXCELLENCE
How to Manage Complex Software Projects across Distributed Teams Using Agile Methods
Tony Raehalme
tony@scalingexcellence.com
www.scalingexcellence.com
FREE EXCERPT
version 0.1
10.10.2011
What is This Book About?
The Background Story
Getting Out of the Pit
How This Book is Built
The Excellence Pyramid
GLOSSARY
CHAPTER 1:
Adapting to Change 1
No Piece of Sofware Is a Clone ....................1
Long Live Questoning and Challenging ........2
Maximize Visualising ....................................3
Visualise Company Flow ........................4
Transparency and Open Communicaton,
Trust and Honesty ........................................5
Working in a Mult-Cultural Environment.....6
Collaboraton across All Departments ..........7
Conficts Are Good ........................................8
Constant Learning and Improving ................8
Track Record and Progress............................9
CHAPTER 2:
Organizing the Work 13
Delegate Proactvity ...................................14
Avoid Thrashing ..........................................15
Quality above All ........................................16
Never Rely on Overtme ......................17
Relatve Estmatng .....................................18
Scope Management ...................................19
Diferent Types of Backlogs ........................20
Project Portolio Management ...................23
What is a Project? ...............................23
Thrash tll You Drop ..........................24
Project Life Cycle .................................26
Workfow .............................................27
Risks for the Business ..........................29
CHAPTER 3:
Scrum and Beyond 31
Determinaton through Chaos ..........32
The Usual Pitalls ........................................33
Roles ................................................................... 36
Role of Managers ............................................... 42
Stop Demotvatng ....................................... 43
Short Cycles ........................................................ 44
Daily Synchronizaton ......................................... 44
Plan, Execute, Review and Refect ...................... 47
Company Sprints and Releases ........................... 48
To Release or Not to Release? ..................... 51
Big Bang or Incremental? ......................... 52
Agile Project Management ................................. 54
The Tool to Track the Whole ........................ 54
Roll-Outng Tools and Processes .................. 55
Roll-Outng through Resistance ................ 56
Inital Planning ............................................. 58
Tracking Progress ......................................... 59
Release Forecastng ..................................... 59
Decumulate Uncertainty Incrementally ...... 61
Gathering Task Hours .................................. 62
Making Team Data More Comparable ......... 63
CHAPTER 4:
Vertical Slice Development 65
A Perfect Product ............................................... 65
Short Feedback Loop .......................................... 66
Launch It Already ......................................... 68
Follow the Business Value of Features ............... 69
Product Ownership across All Layers and Tiers .. 70
Early Integraton between Teams ....................... 71
CHAPTER 5:
Organizing Teams 77
Team Room ......................................................... 77
Inappropriate Behaviour in The Team Room
78
Collaboratve Designing ...................................... 79
Practces for a Geographically Dispersed Team .. 80
Two Cases of Dispersed Teams ................. 82
Efortless, Spontaneous Communicaton .... 83
Virtual Teams and Group Forums ......................84
Architectural Governance Group ................84
Virtual Test Team ........................................85
Product Owner Group ................................85
ScrumMaster Group ...................................86
Innovaton Forum .......................................86
Preparing for Dependencies between Teams ....87
Working with Shared Resources ........................87
When It Makes Sense to Have a
Specialist Team ........................................88
CHAPTER 6:
Growing Teams 91
Theres No I in Teamwork? ................................91
Building Motvaton ...........................................92
When Charity Doesnt Work as a Common
Cause .......................................................93
Dealing with Negatvity ..............................94
I Hate Our Product! ..............................95
Ask What Motvates People .......................96
Dont Touch My Code! ..........................98
Team Building ..................................................100
Team Responsibility and Behaviour Rules .......102
Rotatng People ...............................................103
Rude Awakenings ..................................104
Overcoming Mediocrity ...................................106
Avoiding Burnout.............................................107
Great Team Focuses on the Big Picture .108
Measuring Excellence ......................................110
CHAPTER 7:
Scrum in Action 115
Teach Teams to Pull .........................................115
Building the Backlog ........................................116
Keeping the Backlog in Shape ..................117
12 Person Project Team to the Rescue ..118
Invest in Good User Stories ......................120
Estmatng Work Complexity ........... 121
Reusable and Distributable
Stories ........................................... 122
Defniton of a Ready User Story ..... 124
Company Defniton of Done .................. 125
Preparing for the Sprint .......................... 126
Task Breakdown ............................... 128
Deliberate Over-Commitng......... 129
Getng Commitment from Teams ... 130
Scrum Wall ............................................. 133
Operatonal Tasks ............................ 135
Burndown Charts............................. 135
But It Makes Me Look Bad! ....... 136
Daily Stand-Up ................................. 139
Sprint Review (Demo) ............................. 140
Preparing for the Demo ................... 141
Demo Structure ............................... 142
Importance of Proper Demos ....... 143
When Is Sprint a Failure? ........................ 144
Constant Improvement through
Retrospectves ........................................ 146
Example of Retrospectve Notes ... 148
Project Retrospectves .................. 151
Team Satsfacton............................. 152
CHAPTER 8:
Software Craftsmanship 155
Risk-Based Testng .................................. 155
Blame It All on the Tester ............. 156
Coding Practces ..................................... 159
Dealing with Legacy Code ....................... 163
CHAPTER 9:
Non-Development Teams 167
Operatonal and Support Teams ............. 168
Marketng and Sales Teams .................... 169
Last Words
About the Author
Dear reader,
Thanks for downloading the free version of my e-book. For
a bit over a year now Ive been working on this. Its not quite
done yet but I decided to put it out in the public already. I
could have easily fine-tuned it until forever (the anti-lean
startup), but I decided to release it already and maybe even
get some feedback.
This book is mostly based on experience. I have over five
years of daily experience working with agile methods which
includes 130 person projects, managing bottleneck teams,
driving organizational change and so on. This book is a story
about one mammoth project that didnt go quite as planned.
If you feel like supporting me you can buy the full version
from my website. You will receive all updates automatically.
Feedback is also welcomed.
Happy reading !
Cheers,
Tony Raehalme
10.10.2011
Helsinki, Finland
www.scalingexcellence.com
tony@scalingexcellence.com
If you handle Finnish check out my article Vallankumouksen
toteuttaminen kettersti in Projektitoiminta Magazine 2/2011:
www.scalingexcellence.com/publication
http://www.scalingexcellence.com/book
CLARIFY VISION
Courage for transparency and
open communication
SCHEDULE PRIORITIES
Focus on prevention and long-term investments
MANAGE DAY-TO-DAY WORK
Daily collaboration and commitment to goals
DEFINE THE PRODUCT AND OWNERSHIP
Early integration and short feedback cycle
ESTABLISH WORKING PRACTICES
Iterative and incremental releasing
ORGANIZE AND BUILD TEAMS
Proactivity, responsibility and efficacy
ix
http://www.scalingexcellence.com/book
F
R
E
E
E
X
C
E
R
P
T
What is excellence and how do you achieve it? Moreover how do
you scale it throughout multiple teams, departments and entire
organization? Excellence is exceptional quality that surpasses
ordinary standards. It can be anything from stunning, exquisite
skills to outstanding performance. How do you first of all achieve
outstanding performance in an organization and then make sure
it stays that way? There are no shortcuts. Excellence is what you
can achieve with continuous, disciplined daily effort when you
are striving towards a clear vision using high-efficiency methods
despite your current skill levels. It is a habit of sustainable pace
with continuous improvements. It is a long-term investment
that starts bringing results already in a short time, but if you get
impatient and violate that pace productivity degrades immediately
and you run into quality problems. Sustainable pace contributes to
stress-free environment, work enjoyment and enables possibilities
for innovation. It is a realistic way to reach remarkable results in a
systematic approach. Expect high results but in a sustainable pace.
Habits are learned and undesirable habits can be unlearned. All
it take is determination and discipline. Come up with habits that
strive towards excellence.
Scrum is a framework for agile software development and based
on industry-accepted best practices. Its proven to be a tool for
achieving that outstanding performance in software teams.
1
It
is a tool for digging out organisational dysfunctions and like a
minimum collection of best practices that get you started on the
right direction.
Honestly, it is a piece of cake to scale hi-speed Scrum teams if
there is little co-operation and dependencies between the teams,
and if they are all working on their own little islands on their own
1 [Schwaber, K., & Sutherland, J. (2010). Scrum Guide]
What is This Book About?
Excellence is an art won by training and habituation. We do not act
rightly because we have virtue or excellence, but we rather have those
because we have acted rightly. We are what we repeatedly do. Excellence,
then, is not an act but a habit.
-Aristotle
x
http://www.scalingexcellence.com/book
If you find
this material
worthwhile,
please support
me and buy the
full e-book for
a special price
(before the
official release)!
Cheers,
products. Scaling across independent teams is not even an issue
worthwhile discussing. Things get more complicated when teams
are working on the same product flooded with dependencies.
Things get even more complicated when those teams are
distributed across multiple locations. Great thing about Scrum is
that it comes with day-to-day duties. It provides that habituation
you can utilise. If you stubbornly stick with those routines it will
build a solid foundation for improving productivity constantly. Only
thing left will be to pinpoint the areas that produce the maximum
value in your business.
When it comes to the software development industry people
(especially more technically oriented) often have the stubborn
habit of making even the simplest things overly complicated.
Techies love coming up with highly complicated technical solutions
even for simple people problems. Truthfully it can be a lot of fun
creating technical solutions, and therefore its very tempting to
start working on a nice solution and forget about the problem
since you dont have to spend any time on actually defining the
problem. Just go straight to the silver bullet that solves everything
imaginable. For example you might over-engineer a solution for a
web-shop where at checkout you list all kinds of recommendations
what to buy, offers of the day, most sold items of the day and thus
insidiously end up making checkout a heavyweight process when
the customer really just wanted a smooth and quick possibility to
pay for the items with minimum effort. It might be nice to develop
additional features, but those extra features add to complexity and
end up costing time and money since chances are they prolong the
project. Not to mention how incredibly wasteful those are if they
werent even needed in the first place.
When is the fault ever in technology that causes projects to fail? On
the other hand even if things are simple it doesnt mean they are
easy. It requires a lot of determination to keep things simple when
there constantly emerge complicating factors from stakeholders.
Complicating factors do not necessarily have anything to do with
technology, but just with how software is preferred to be used or if
people change their minds: How customers and stakeholders are
accustomed to using software and how it supports their working
processes. Keep technical issues completely separate from people
issues and focus on delivering what is needed right now and nothing
more. Foremost that means digging out what exactly is needed and
more importantly why. Then making sure those needs are still valid
xi
http://www.scalingexcellence.com/book
F
R
E
E
E
X
C
E
R
P
T
after weeks or months as the solution is developed. If the needs
change then the solution is changed as well.
Biggest obstacle for achieving excellence is disruption in developing
those excellence-striving habits. Its a common sin to neglect
routine, recurrent events (overriding the agreed processes)
such as having planning, review and retrospective sessions in the
excuse of urgent and surprisingly frequent one time exceptions.
Maintaining automated test and build environments gets down-
prioritized and maybe even forgotten as the rush kicks in. Priorities
change too often, people leave and take their knowledge with them
(unmaintained documentation). Defects are not fixed as they pop
up, just hidden under the rug while the quality debt keeps piling up.
Quality is ignored until you hit big enough of a rock and it becomes
self-evident there is something wrong with the product. Then you
have fire after another and eventually supporting eats all resources.
One thing leads to another and so the whole project collapses like
dominoes. In software development you can make the same thing in
countless ways and technologies, and its so easy to loose focus, get
dazzled by the latest tech trend or get lost in details. Predictability
is everything. You can only have predictability if you are aware of
your history and velocity. You need to have a backbone and be able
to trace your steps where you were six months, one year, two years
ago, and where you are heading at: Short-term plans and long-term
guesses (product vision). Its very difficult to estimate the total
amount of work you are going to do even for six months because
there are so many influential factors. Thats why you have to chop
the work into smaller chunks for near future and adjust the plan as
you know more. But the velocity is always incorrect if at the same
time you are developing quality debt.
Imagine a software development department consisting of 15
distributed teams with around 130 persons. All teams have
unstandardized working practices and environments. Suddenly
those teams are all part of one big common project and responsible
for developing a joint product. How do you get a firm grip out of
those teams that are not only distributed but also have their own
working methods? How to avoid complete chaos when you start
a project across teams in a multi-cultural environment? You need
a systematic approach to tackle the situation to first of all get
everyone on the same boat with a common goal and set easily
measurable targets and milestones to follow progress. First of
xii
http://www.scalingexcellence.com/book
If you find
this material
worthwhile,
please support
me and buy the
full e-book for
a special price
(before the
official release)!
Cheers,
all train the people that manage the teams and give them all the
support you can. Delegate proactivity and show ways for each team
to contribute to the goal. Synchronize and standardize the working
methods and tools as well as environments (continuous integration,
coding standards and such) for all teams. Set common ground rules
for everyone and define a shared acceptance criteria.
Seems simple enough and even quite straightforward on paper.
In fact so simple that theres a big chance of failing. If all it takes
is really that easy then why do there still exist multi-team agile
projects that fail? It has little to do with the actual technology or
product at hand but a whole lot with people issues.
This book is all about the day-to-day work. This book is not about
architecture nor any other technical detail for that matter. Neither
is this about managing budgets or developing heavyweight project
management processes. This is about daily routines in working with
people from different cultures and kicking your teams to the path of
excellence in concrete steps. This is about building a collaborative
working environment that is rapid in accommodating challenging
situations. Expect the unexpected by building an organisational
culture that isnt fragile when change occurs.
The Background Story
You might wonder where is this all based on? It is easy to come
up with fancy processes and project management practises but if
those are not based on actual hands-on experience then they are
quite useless. In 2009 at a Finnish charity organization building a
gaming website there was introduced a business-critical mammoth
project to heavily refactor the current platform. This project
involved all product development teams who were not accustomed
to working together in such intense manner. To complicate things
product development department is geographically scattered in five
locations in two time zones and its a multi-cultural environment
with about 20 nationalities. Product development department
consists of over 15 teams and 130 people. Whole company has
around 400 employees.
Rationalities behind the project were to first of all get rid of a
bunch of legacy code, make the system easier to maintain and
faster in releasing new features. If you change something in one
component you shouldnt have to touch all the other components
xiii
http://www.scalingexcellence.com/book
F
R
E
E
E
X
C
E
R
P
T
as well. System stability already was there but development was
rather cumbersome. Another reason for the project was to roll-out
new commercial Content Management System (CMS) tool, which
actually was changed to another one during the project.
Most of the teams were already using Scrum framework, some
more sophistically than others. Agile methods were scaled in this
organization around a year before the project started and the
processes werent perfect or that fluent but manageable and drastic
improvements were ongoing continuously. Scrum was initially
introduced in this organization by two teams in 2006. I started in
the organization in 2005 and was one of the Scrum experimenters.
The project was definitely no picnic and didnt go quite as planned.
In the end the original half a year plan (as set by management) ended
up taking three times longer. Initial deadline was far from realistic
but nevertheless everyone did their best to meet it (apart from
overtime). When first deadline wasnt met another one was set and
yet another one until the project was actually released. Refactoring
projects are hardly ever any fun and this was no exception. It wasnt
very motivating experience since we were working on building
1:1 copy of the current site, which gave pretty strict limitations for
innovation. Honestly the project was boring as hell. But that doesnt
mean that working on it was boring. On the contrary we had a lot
of fun collaborating and learning together, and made the best out
of a non-ideal situation. Thats why its so important to build a
collaborative environment. Even if people dont exactly agree with
the goals they will give their best shot for working together.
In a way this book is a case study how a distributed organization
utilizes agile methods and manages joint projects. There are
standardised processes for managing portfolios, projects, releases,
environments and yet having enough flexibility to continuously
improve the organisational workflow. Even though in this case the
product is a gaming website these set of practices can be applied to
building any software product.
My duties during the project included ScrumMastering four teams,
mentoring one team, roll-outing an agile project management
tool with work processes for the organization, and additionally
following the overall project progress.
xiv
http://www.scalingexcellence.com/book
If you find
this material
worthwhile,
please support
me and buy the
full e-book for
a special price
(before the
official release)!
Cheers,
Getng Out of the Pit
Changing the CMS tool in the middle of the project and thus dropping
a part of the original plan is an interesting story itself. Amusingly
enough already in the beginning of the project it was crystal clear
for technical people in product development that the commercial
tool was a bad choice, not least because in-house competence in the
tool and technology was close to zero. But key persons in the project
saw it differently. If you stare at the selling points long enough then
of course any tool will seem like a solution to all your problems
(even for those you dont have). But you need to understand how
that tool will be integrated into the working environment and how
it fits the development processes and team working practices. It
clearly didnt fit into the sophisticated automation process that
product development had developed through the years, and it took
a year to convince the management.
But it is too easy to always blame the management even if there
exists lack of trust. There was fault also in product development
department for not driving the cause thoroughly enough and
making management truly understand the concerns. For quite
some time we were overly optimistic that somehow we will be able
to make it work even when there were countless of uncertainties.
There was fault in all of us but there is no point in blaming anyone.
The point is always to learn from mistakes, improve and move on
without bitterness, resentment or any other silly emotion.
To be fair the tool was chosen during ongoing process of
codetermination negotiations, layoffs and complete organisational
restructure, so at that time the spirit was quite low anyway. Some
little CMS tool or even the whole project was definitely the last thing
on everyones minds. When the dust started to settle some months
later the project had already been initiated and decisions made.
At that point it was tough trying to convince anyone to change any
plans and so it seemed like it was already too late. Even after failing
with the tool for half a year consultants did their best to convince
everyone that it will work and tragicomically most people bought it
and thought it is already too late to back down.
Eventually management did decide to drop the commercial tool and
go with a Plan B to further develop an open-source tool where in-
house competence was already high. By doing this the organization
basically flushed one million Euro (1 000 000 ) investment
xv
http://www.scalingexcellence.com/book
F
R
E
E
E
X
C
E
R
P
T
down the toilet in license and consultancy fees as well as in-house
development effort. It was definitely a tough call especially as it
came in such late phase of the project. It takes a lot of courage to
throw away your earlier work and start fresh. Theres always that
nagging voice that keeps taunting about the effort invested so far.
Somehow you need to realize that you are in a swamp or bottomless
pit and things are not going to get better simply by pushing harder.
The saying Quitters never win and winners never quit doesnt apply
in creative work. When you are in a dead-end, no-win situation
it makes no sense to keep going, repeating the same pattern and
banging your head to a wall. Winners are wise enough to quit, stop
wasting energy and start looking for new opportunities. As Seth
Godin writes in the Dip
2
: Quit the wrong stuff. Stick with the right
stuff. Have the guts to do one or the other.
This decision showed great leadership. Finally. Project termination
is always an option but in this case it wouldnt have made any
sense since the refactoring part of the project was nearly done.
Only thing left was to put a proper CMS tool in place to the process.
Plan B was executed very rapidly and after relentless verification
and rehearsing rounds the release took place in January 2011.
This release was by far the biggest, most complicated and riskiest
release in the history of the organization and yet by far the most
stable and predictable one.
For sure the project was an immense learning experience for all
included participants and it exponentially increased the maturity
level of the organization. Live and learn.
How This Book is Built
If I had more time, I would have written less.
-Mark Twain
This book was written applying many of the methods described in
this book. First you get the big picture straight: Start with a general
idea, maybe even a title and come up with a scope to narrow down
the subject as much as possible. Create a table of contents and try
to estimate how big of an effort the totality is. Write down anything
2 [Godin, S. (2007). The Dip: A Little Book That Teaches You When to Quit (and
When to Stick). Portfolio Hardcover]
xvi
http://www.scalingexcellence.com/book
If you find
this material
worthwhile,
please support
me and buy the
full e-book for
a special price
(before the
official release)!
Cheers,
that comes to your mind but constantly keep in mind the chapters
and structure. Dont get fixated on the details or fine-tuning too early
and writing perfect sentences. Focus on the big picture, add and
remove content as you go. You can write the details closer to your
deadline. Write all chapters and headings to one paper to visualise
the big picture. Come up with milestones. Follow your progress
to get a sense of accomplishment and not to get too overwhelmed
by the amount of work. Summarize and try to say more with less
words.
Ask people to review your work (also outside your field) to see
if everything is written as clearly as it is in your mind or are you
maybe missing something. Explain your book concept to outsiders.
Do they think youre on to something or just simply wasting your
time? Even when the feedback is negative dont get discouraged.
Have the courage to give your work for ruthless criticism. If people
fail to understand you its your job to make yourself understood.
You cannot really blame the receiver if the message isnt clear
enough. Analyse the feedback, dont get defensive but instead try
to see your work from other peoples perspectives and then revise
furiously.
Use some version control system so that you can press delete for
non-value adding text without a blink of an eye and yet still be able
to revert back to previous versions. If possible start working with
the lay-out to see how the end-result will look like and see what
kind of pictures you need, in which size and do you maybe need
to rearrange the chapters. Integrate different parts (plain text,
pictures, lay-out, covers, design) as early as possible. Is everything
clear for people who are not as familiar with the context as you are?
Print drafts to see how it might look like in the physical world. Come
up with realistic deadlines for fine-tuning each chapter. Finally read
the book from cover to cover to see if it delivers what you expected.
Well, actually it didnt go quite as smoothly for me. I kept pushing
the deadline a little since new ideas started popping up and I
repeatedly underestimated the amount of work. But on the other
hand I didnt work too intensively at all. I just wrote whenever there
was some extra time, usually after work or even during a carefree
work day. Hardest part about writing a book isnt actually producing
the text, but having determination in arranging it all into concise
chapters that actually make sense. A lot of times you feel like calling
it quits and moving on to something new. Motivation is always a
xvii
http://www.scalingexcellence.com/book
F
R
E
E
E
X
C
E
R
P
T
Chapt er 1:
08ll l0 0080
Chapt er 2:
0f8lIl l00 N0fk
Chapt er 3:
$0f0M 80 8000
Chapt er 4:
0fll08l $ll00 0090l0M0l
Chapt er 5:
0f8lIl 108M8
Chapt er 6:
6f0Nl 108M8
Chapt er 7:
$0f0M l 0ll0
Chapt er 8:
$0llN8f0 0f8ll8M880l
Chapt er 9:
800090l0M0l 108M8
challenge and like with everything else you need a systematic way
to take care of the unpleasant stuff.
The Excellence Pyramid
This book is built like a pyramid in the sense that the first chapter
is the vertex like a tip of the iceberg and last one the basis. There
are nine chapters in six levels. In the beginning focus is on the big
picture and each chapter dwells into more details. Nevertheless
chapters are quite loosely tied and can be read in any chosen order.
First level is where top management plays a crucial part. Vision has to be
crystal-clear for the whole company and organisatonal culture is built on
trust and honesty, transparency and open communicaton. This requires
tremendous amount of courage but sets the journey to the right path.
Whole company is focused on striving for collaboraton and establishes
opportunites for innovaton to reign.
When the vision is clear its tme to set priorites straight and get those
in the schedule. All work is visible and there is a structured process for
managing backlogs and projects. There are no death marches, projects
dont appear from nowhere and priorites are not changed every week.
There resides enough patence to see the outcome of experimentaton
and focus is on long-term investments. Issues are not merely fxed but
prevented.
Working practces are disciplined which increases predictability and
adaptability. Change is not simply adapted but initated. Third chapter
goes into the Scrum working practces how whole organizaton focuses on
iteratve and incremental approach: What it takes to scale agile methods
and what are the usual pitalls. Products are shipped monthly following a
disciplined release process. Projects are followed with litle efort and it is
possible to come up with realistc release dates early on the line. Plan is
constantly adjusted to changing circumstances and not vice versa. Plans
do not defne the future.
Vision is not clarifed only for the company but for each product that is
being developed. Defne the product and give the team full ownership so
that they are made responsible for the fnal result. Fourth chapter deals
with coming up with ways to defne value and creatng short feedback
cycle. Deliverables from all teams are integrated early by providing the
tools and environments for teams to utlize. If its not integrated then its
not done and if its not done then it has no value.
CLARIFY VISION
Courage for transparency and
open communication
SCHEDULE PRIORITIES
Focus on prevention and long-term investments
MANAGE DAY-TO-DAY WORK
Daily collaboration and commitment to goals
DEFINE THE PRODUCT AND OWNERSHIP
Early integration and short feedback cycle
ESTABLISH WORKING PRACTICES
Iterative and incremental releasing
ORGANIZE AND BUILD TEAMS
Proactivity, responsibility and efficacy
The last three chapters are what form the basis. Everything comes
from the day-to-day work. Excellence is a habit. Its not that big
of a deal doing great sometimes, but its another thing achieving
greatness every single day.
Even though aim of this book was to have an objective view it is still
very much subjective. After all there is no absolute truth and most
things are up for interpretation. Anything stated in this book does
not represent the views of any organization or person apart from
the authors own unless otherwise stated.
If you are in a rush just browse through the key points to get a
glimpse.
Everything comes down to teamwork. In a company with hundreds
of employees its easy to get on each others way or step on
somebodys toes. Chapters fve and six deal with organising and
building the teams, and making teamwork something that everyone
regards as the core value. Responsibility is shared, common efcacy
is acknowledged and motvaton isnt defned by perks or rewards.
How to motvate people when the actual work is boring. What it
takes to make a decent team an excellent one.
Day-to-day work is consistent and represents the long-term goals.
Seventh chapter dwells into the daily work in the Scrum world. When
the project with milestone goals is clear its tme to chop that scope
into features and then user stories so that team can start the actual
work. Teams are taught to pull for work, demonstrate achievements
and given tools to improve infnitely. Sofware crafsmanship with
testng arrangements, coding practces and legacy issues are dealt
in the eight chapter: How to guarantee you are not unconsciously
increasing debt and each team is developing long-term solutons.
Chapter nine concentrates on non-development teams and how
teams that have no product arrange their work. Teams outside the
product development department also need standardised processes
to atain focus and accommodate the compelling future.
CLARIFY VISION
Courage for transparency and
open communication
SCHEDULE PRIORITIES
Focus on prevention and long-term investments
MANAGE DAY-TO-DAY WORK
Daily collaboration and commitment to goals
DEFINE THE PRODUCT AND OWNERSHIP
Early integration and short feedback cycle
ESTABLISH WORKING PRACTICES
Iterative and incremental releasing
ORGANIZE AND BUILD TEAMS
Proactivity, responsibility and efficacy
http://www.scalingexcellence.com/book
CLARIFY
VISION
Courage for transparency
and open communication
1
http://www.scalingexcellence.com/book
F
R
E
E
E
X
C
E
R
P
T
CHAPTER 1:
Only thing certain is uncertainty. Change is simply inevitable.
Whatever the current state is it wont last forever. World is
constantly changing and only thing constant is the cycle of those
changes. Change can be hard and even painful, but if you are not
willing to change how you can ever improve and adapt to the
changing market? When the market changes are you going to
stick with your old perception of the market and drive business
accordingly? Are you sure that the perception you have today will
hold tomorrow? Embrace uncertainty. Acquaint adaption to change
into the organisational culture without artificial enforcing. After
all you cannot really change culture as its something that evolves
during time. But you can still direct its course and its a lot about
dealing with mindsets.
People resist change and uncertainty if they are too stuck on their
comfort zone when everything new feels like a threat. But change
can also be an opportunity for something better. To minimize that
resist its better to avoid big leaps and go in small steps instead.
Its very demotivating yet unfortunately oh so common that
organizations set unrealistically high goals (without necessarily
the means to achieve those goals), take on drastic changes and then
half a year later wonder why those goals werent met.
No Piece of Sofware Is a Clone
Why is building software so different from building a house or
compiling a car? What makes it so unpredictable? Every piece
of software is different and there are no clones. Even with same
the technology and tools you can still build the same product in
countless of different ways.
Biggest problems in software development have nothing to do with
technology itself. All you need to do is just always build the features
Adapting to Change
It is not the strongest of the species that survives, nor the most
intelligent that survives. It is the one that is the most adaptable to
change.
-Charles Darwin
2
http://www.scalingexcellence.com/book
If you find
this material
worthwhile,
please support
me and buy the
full e-book for
a special price
(before the
official release)!
Cheers,
CLARI FY VI SI ON
that bring most value with the least amount of effort. Many of the
problems lay in people issues. Misunderstandings and assumptions,
miscommunication and distrust. These are just few of the many
popular plagues that ravage and pollute the industry.
Long Live Questoning and Challenging
What is a problem? Problem is the difference between desired and
actual state. Before coming up with solution to a problem you need
to be aware of what the real problem is and more importantly what
makes it a problem. Defining a problem comes before solving it.
Root cause analyses can be done using the Five Whys
1
and Fish-
bone diagrams
2
, but these only get you so far. You also need to
understand what is the desired state. Any defined process can
hardly ever be taken into use as such. Understand the problem
before introducing any hottest state-of-the-art solution. Solutions
are context dependent. There exists no one-single-truth or silver-
bullet solution to everything. That is why you always have to inspect
and adapt. Be open to all options for as long as possible instead of
chaining yourself to one and thereby painting yourself to a corner.
By questioning you can find new paths. It has to be allowed to
question priorities and everything surrounding the business,
but prerequisite for that questioning is a non-judgemental
approach. Quite often when people are questioned they interpret
it as criticism and judgement. Its no wonder why people who go
around asking why and questioning everything all the time are
often considered as nerve-wrecking and difficult. Who would like
continuous judgement? Thats why you have to make it extra clear
that questioning is done not to criticize but to understand and
clarify. If people do criticize then they are also expected to come up
with a realistic improvement suggestion.
Constructive criticism is still criticism. It is bound to have a
destructive and limiting effect. Criticism is a very effective way
to shoot down innovation. Instead focus on giving productive
feedback that doesnt feel threatening. This type of behaviour is
1 [Ohno, T. (1988). Toyota Production System: Beyond Large-Scale Production.
Portland, Or: Productivity Press]
2 [Ishikawa, K. (1990). Introduction to Quality Control. Productivity Press]
3
http://www.scalingexcellence.com/book
F
R
E
E
E
X
C
E
R
P
T
Chapt er 1: Adapt i ng t o Change
really healthy and can save companies from bad business decisions.
It should be encouraged by the top management.
During time software architectures and configurations in integrated
systems tend to become so complex and vast that no one thoroughly
understands the whole system on a singular detailed level. Long
gone are the days when every system had a responsible person who
knew every single little detail there existed. Therefore do yourself
a favour and acknowledge your limited knowledge and start asking
questions. It takes courage to admit that you dont know when in
doubt but doing that builds integrity and credibility. Admit you
dont know the answer and it needs to be found out. Assumption
is the enemy. Assuming is the worst thing you can do. Challenge
yourself every day and dont regard anything as a dogma. Dont get
too fixated on processes or take anything for granted. If it works
then go with it and come up with ways to improve gradually, but
always have patience to see the outcome of those improvements.
Coming up with processes is easy but roll-outing and making sure
people follow those processes is another thing. People will not
respect and follow processes if there exists merely some arbitrary
meaning. Processes have to be open to criticism and altered when
needed. If an old process seems futile or leads to bureaucracy and
unnecessary handovers then change it. Just because something has
existed for a long time doesnt make it worthwhile. What waste lies
in your processes? Have courage to challenge everything.
Allow questoning and welcome productve feedback.
Maximize Visualising
Clarity is everything. Company priorities, goals and strategies
have to be known by every single employee in the company so that
people have a chance to contribute. Which project has the highest
priority? What are the targets and the ways to achieve those
targets? Visualize in company Wiki or intranet and preferably on
physical walls at each office so that it is impossible for passer-bys
to miss. Visualize all important information so that it just screams
for attention.
Scrum produces good amount of data. Gather and publish the
appropriate data. Make defects and impediments visible for the
whole company with assigned teams. While it might seem scary
4
http://www.scalingexcellence.com/book
If you find
this material
worthwhile,
please support
me and buy the
full e-book for
a special price
(before the
official release)!
Cheers,
CLARI FY VI SI ON
to display for everyone who is responsible for each defect in the
system or impediment slowing down development it will for damn
sure boost motivation for teams to fix their defects and managers to
solve their departmental impediments.
If you have a habit of sending lengthy e-mails chances are that
people wont even bother reading your text. If you send links
theres a chance people wont see those if it takes even a second
too long to load. An image tells more than thousand words. But if
you go to the other extreme and send flamboyant e-mails with tens
of images, different colours and fonts it will become an annoyance
and the point gets missed anew. Summarize, simplify and visualize
the key points in prioritized order and leave out the details. Those
who are interested in details can ask for the details but you should
concentrate on the majority, not the minority few. Use everything
feasible to get the point across. Come up with creative ways to
visualise data and focus on physical tangible objects.
In todays age of information overflow people are drowning on
information but the problem isnt actually the amount of data. The
problem is in the filtering of that data. The challenge is to first of all
find the appropriate information from the massive amounts of data
and secondly rephrase that key data into easily understandable
manner. Make it easy even for outsiders and people who dont know
the details to understand the point. Acknowledge that nowadays
quite few things in reality are self-evident.
Eliminate ambiguity and assumptons, and leave no room for
individual interpretaton.
Visualise Company Flow
How does information flow from one department to another?
When an idea is born how long does it take for that idea to produce
value or benefit for the customer? Visualise flow in the company to
identify the bottlenecks that prohibit efficiency and productivity. In
order to improve you must first identify the problems and best way
to grasp something is to visualise it for example on a white board.
Use Value stream mapping
3
to get an overall picture of all processes
3 [Rother, M. & Shook J. (1999). Learning to See: Value Stream Mapping to Add
Value and Eliminate MUDA. Lean Enterprise Institute]
5
http://www.scalingexcellence.com/book
F
R
E
E
E
X
C
E
R
P
T
Chapt er 1: Adapt i ng t o Change
in the company: both value-adding and non-value adding (waste)
processes. Then you have a baseline for improvements.
Transparency and Open Communicaton, Trust
and Honesty
Might seem like a noble headline but this is what truly effective
management comes down to, and nobility has nothing to do with
it. By using agile software development methods the management
gets transparency over product development but it has to go both
ways. There has to be visibility over management as well: What
are the goals and the means to achieve those goals. What is top
management spending their time on: Sipping cappuccinos all day
long or trying to find out new business opportunities? Concrete
actions with schedules are visible so that people are also publicly
made responsible for completion of those actions.
Rather give too much information than too little. It is surprisingly
usual how top management assumes lower management will
automatically represent information down to their departments,
and eventually the lower you go in the organisational ladder the
less information there exists. People just assume information flows
automatically. Give concise information regularly, keep it short
and simple, and make sure there is no room for misinterpretation.
There should be full transparency in all work unless you are
working on some super secret tasks that require confidentiality.
Just like work in a sprint is transparent and everyone is welcomed
to the review session to see whether the sprint goal was met or not.
Visibility builds trust. Without trust there can be no true teamwork.
If you love secrecy then forget about building a great, trustworthy
collaboration. Just stay in your ivory tower and pray your world
never changes.
Rumours and gossip can have a tremendously damaging and
poisoning effect in the working environment. With transparency
and keeping communication open you limit the amount of gossip.
If management encourages and practises transparency employees
feel confident enough to question the truthfulness of awkward
rumours instead of contributing to the propagation.
By default people are trusted and given certain boundaries of
freedom but with that trust comes responsibility. People are not
6
http://www.scalingexcellence.com/book
If you find
this material
worthwhile,
please support
me and buy the
full e-book for
a special price
(before the
official release)!
Cheers,
CLARI FY VI SI ON
going to give valuable input or be committed and motivated if they
feel they are not trusted. If they feel like they are not being listened
to or are afraid of judgment then they stop giving input. If people do
something to break that trust then stop trusting them. If someone
deliberately misuses that freedom then throw them to the wolves.
But it is definitely a screwed-up approach if first thing people have
to do is to prove their trustworthiness and everything they do is
audited. Trust people and let them do their work at peace instead
of bullying with constant supervision. Trust that people actually
want to do a good job. Trust people to make good and responsible
decisions and empower them to decide how to do their job. Clarify
the goals, milestones and timelines then meet regularly to see things
are progressing accordingly. If you dont clarify the expectations on
both sides then how can you hold anyone accountable for whatever
happens? Make sure the receiver understands your expectations
and vice versa; you are aware what kind of support the person in
question expects from you in return.
This is not to say you trust anyone blindly or live in some nave
bubble and let yourself be treated like garbage. Not at all! It is just
that by giving benefit of a doubt you make people accountable for
their actions and get better commitment for meeting their goals.
You agree the expectations from both sides together. Of course you
could try the opposite and make people accountable for every single
hour of the day, but when has that ever increased productivity?
By default people are trusted and respected.
Working in a Mult-Cultural Environment
For people with different backgrounds and cultures you need
to set common ground rules that are easy to comprehend and
adapt by all. What might be considered as humour in one culture
might be insulting in another. Terminology is the first thing to
be standardized. Like in the gaming organization with over 20
nationalities and English the main communication language, it takes
quite a bit of effort to fully understand each other since its not most
peoples native language. Even understanding each others accents
is sometimes burdensome.
Do not assume that you automatically perceive behaviour of different
cultures or draw any conclusions. Trust that people are honest and
avoid generalizations. Have the patience to understand the working
7
http://www.scalingexcellence.com/book
F
R
E
E
E
X
C
E
R
P
T
Chapt er 1: Adapt i ng t o Change
habits of different cultures without judgement or prejudice. Key is
empathetic listening. Truly listen to people without interrupting to
hear and reflect their concerns and consequently improve mutual
respect. During a discussion you really listen to what the other
person is saying instead of passively waiting for your turn and
thinking how you will reply. You dont anyway need to come up with
clear-cut answers (probably better that you dont) as long as you
show that you care and try to help. In communication the words
you say have 10% significance, 30% is how you say those words
(tone of voice) and 60% body language. If you are not sincere, it will
show. Integrity builds trust.
In Finnish culture it is common to separate your work life
completely from your personal life whereas in some other cultures
doing this is considered as rude. This is something you should be
wary about and encourage people to give more but without any
forcing or pressure. People will never do this if they dont feel safe
and comfortable in the working environment. Show the ways to
bestow but dont expect everyone always to take on it.
It is common that employees come and go. Nowadays its more
of a rarity that employees have exclusive, strong loyalty for one
employer for decades. Therefore it has to be easy and quick for new
employees to join in, understand the practices, get into the company
flow and eventually contribute. Build an environment that is easy
and inviting to join.
Lay common ground rules and standardize terminology.
Collaboraton across All Departments
It might not always be so obvious to identify teams that are not
stated in the organisational chart. Therefore you need to identify
your non-transparent teams. Top management is a team that
defines the company vision and business direction. Different
departmental heads are a team. They are in charge of making sure
their departments meet the company targets in line with other
departments. ScrumMasters form a single team. They rely on each
other for help to be able to work better for their teams and improve
quality of their teams work and organisational workflow. Product
Owners are a team that together look into most profitable products
that bring biggest value.
8
http://www.scalingexcellence.com/book
If you find
this material
worthwhile,
please support
me and buy the
full e-book for
a special price
(before the
official release)!
Cheers,
CLARI FY VI SI ON
Enforce collaboration not only in teams but also across departments.
There is no us and them, only we as in the whole company.
Conficts Are Good
Silent consensus is not a desired state. Its the last thing needed
if it means there are no counter arguments. Why on earth would
you want only people who always agree with you? Dont you have
the courage to stand behind your opinions and decisions, explain
your actions and views if questioned? Persons who give productive
feedback and have a different view or approach are more valuable.
Innovation isnt born when everyone just nods. Courage to challenge
each other is vital for exceptional success.
Diversity is good. Diverse groups breed diverse ideas. Innovation
comes out of different visions and perspectives. To come up with
exceptionally outstanding ideas you need synergy and many types
of different ideas to choose from. Not to mention it would be pretty
boring world if everyone just agreed on everything all the time. If
two people argue about a solution it doesnt necessarily mean one
is right and the other one is wrong. Its always relative. It might
be that both are right but with a different view or perspective,
and it just as well might be that still neither one is feasible for the
company looking yet from another perspective. Quite rare things in
todays world have one single undisputable truth. Dont get fixated
on trying to always be right.
Be open for all ideas despite the source and whether or not
you like the person presentng the idea.
Constant Learning and Improving
Constant learning and chances for experimentation are built into
the day-to-day work. If people continuously have a chance to
develop their current skills and learn new ones they are less likely
to get bored and quit. Quite contrary people are more likely to
innovate and prosper, get true satisfaction and meaning out of their
work. Even if the project is boring it doesnt mean the work has to
be. Embrace learning and improving amongst peers. That doesnt
mean you send employees to a different course every week, but
people are just given time to look into new technologies and limited
9
http://www.scalingexcellence.com/book
F
R
E
E
E
X
C
E
R
P
T
Chapt er 1: Adapt i ng t o Change
freedom to try out those technologies in practise. Leave time aside
the work for some personal development. A typical cynic might ask
what if you train the employees and they leave? Well, would you
rather not train them, prohibit their learning and let them stay?
If people are not valued they wont feel inspired and motivated
by their work. There is no purpose for the work and eventually it
turns into resentment. There is no commitment for the employer
nor there should be in that case. Dont treat people as disposable.
People are more than just resources.
Invest in people and empower the risk takers. Failure is expectable
in experimenting and learning new things, but fear of failure is
paralysing. You fear taking risks and making a fool out of yourself
so much that you never leave your comfort zone. In the Finnish
culture it is more embarrassing to fail after trying than not trying
at all. This is just simply mad! People with courage continuously
striving to improve are more valuable than passive people content
with the status quo. Failure is not embarrassing. People who have
never failed have never tried anything new. Always improve and
have stamina to see things through even if things seem bad. It just
might be that success is right around the corner.
Track Record and Progress
Those who fail to learn from history are doomed to repeat it.
-Winston Churchill
Besides the history of the world you should be aware of your own
personal history. Where were you two months, six months or a year
ago? How have you improved in the last two years? You are never
perfect. You are never quite there yet. You always have to improve.
Every single day for the rest of your life. World keeps changing and
you adapt or initiate the change and pioneer the way.
Scrum is rigorously about continuous improvement, which might
feel a little demotivating and backbreaking if you dont constantly
keep track of your progress. Sometimes it might feel there are just
too many things to improve and you are not doing very well if you
dont acknowledge what has already been achieved so far. Its not
about the destination; its about the journey. Thats why you need
10
http://www.scalingexcellence.com/book
If you find
this material
worthwhile,
please support
me and buy the
full e-book for
a special price
(before the
official release)!
Cheers,
CLARI FY VI SI ON
a track record that clearly shows you how each team, department
and whole organization has improved and what are the next steps
to keep on improving.
How have you improved in the last six months?
11
http://www.scalingexcellence.com/book
F
R
E
E
E
X
C
E
R
P
T
Chapt er 1: Adapt i ng t o Change
http://www.scalingexcellence.com/book
SCHEDULE
PRIORITIES
Focus on prevention and
long-term investments
13
http://www.scalingexcellence.com/book
F
R
E
E
E
X
C
E
R
P
T
CHAPTER 2:
It is not enough to simply prioritize your to-do list. You also need
to sort those priorities by urgency and come up with preventive
measures to avert the same items from popping up repeatedly. It
is vital to recognize which part of that list is truly important and
on which part you could work with preventive actions. If teams
constantly spend a lot of time on support then how could it be
prevented and time saved for more productive work? Save the
productive hours for productive work and focus on prevention. If
youre always too busy to sit down and have proper planning then
consider your priorities and measure with severe criticism what
part of your day is waste. No, its not lunch, coffee breaks or going to
the toilet. Its the non-value adding tasks that you could avoid and
repetitive tasks you could do maybe once a week instead of every
day. If someone is always asking your help for doing the same thing
then train them how to do it instead of doing it for them. Look at the
big picture and longer periods than just a few days or weeks.
You also need to chop your to-do list into manageable chunks. It is
exhausting to work on a mile-long list. You constantly need to be
Organizing the Work
Dont prioritize your schedule. Schedule your priorities.
- Stephen Convey
URGENT NOT URGENT
IMPORTANT
1. DO NOW
production issues
release support
2. PLAN TO DO
improve build and test
automation
preventive measures
regression testing
NOT
IMPORTANT
3. REJECT
interruptions from
colleagues
repetitive tasks
4. RESIST AND CEASE
pointless routines
14
http://www.scalingexcellence.com/book
If you find
this material
worthwhile,
please support
me and buy the
full e-book for
a special price
(before the
official release)!
Cheers,
SCHEDULE PRI ORI TI ES
aware of and visualise your progress to get a sense of achievement
every once in a while. Otherwise that list might seem like a never-
ending gigantic list and it is more tempting to call it quits than
continue. It is easy to work on the fun stuff, but you need a way to
tackle also those unpleasant duties.
Its pointless to make day-by-day schedules, because usually there
pops up unexpected issues during the day and if you havent left
enough slack then your plan for the day goes out of the window.
When your to-do list is made for a week leave slack for those
unplanned issues. Usually in software development you dont
exactly know what you will work on each morning you go to work.
Thats why iteration plans are made for a minimum of one week
instead of one day. Its a useful way to stop and apprehend what is
urgent and important, and what is not.
Delegate Proactvity
Successful delegation is one of the key elements that contribute to
the success of a project. Product Owner tells the team the end result
and value, what is needed and why, not how it is achieved. Goals and
user stories are delegated, not daily tasks. Sure way for a project
manager to loose sanity is to personally supervise completion of
each task and telling contributors how to do their job. Thats just
mad way of managing people! Making people accountable for
every working hour doesnt allow them to be very innovative at
their work, and on the other side its not very fun to supervise how
employees spend each hour of the day. Micromanaging people just
isnt fun. Hold people accountable for the actions and results, not the
working hours. Give them advices rather than orders, tools rather
than detailed instructions. By telling people how to do their job you
cripple them, make them dependent on you and limit chances for
innovation. Rather teach people how to take control and matters in
their own hands. Equip people with the proper tools and step aside.
Align company objectives with team objectives, which are then
again aligned with individual goals and ways to contribute to
those goals. Establish chances for individual improvements and
continuous personal development. It doesnt matter how you do it
as long as people have a chance to influence, improve and grow as
workers. Value long-term results and let people self-evaluate their
15
http://www.scalingexcellence.com/book
F
R
E
E
E
X
C
E
R
P
T
Chapt er 2: Or gani zi ng t he Wor k
own performance. The opposite approach is that people do exactly
and only what they are told to do. Nothing more. Imagine how that
is going to work in a project with hundreds of people.
Delegate responsibility for results along with commitment, not
tasks: what, not how.
Avoid Thrashing
Everything should be made as simple as possible, but not one bit
simpler.
-Albert Einstein
Lean Software Development
1
integrates software development
with Lean manufacturing practises which are based on preserving
value with less work and eliminating waste. Everything is either
contributing or not contributing to value. Think everything from
the perspective of value for your business. What is waste and does
not produce any value for the business? For example testing has no
business value. Testing doesnt produce anything but of course it
doesnt mean you should drop it. What it means is that you should
test sooner rather than later and avoid heavyweight testing phases
where you freeze all code for months.
Same principle applies for growth. Growth is not good if it means
that costs run up to the roof. Measure cost per income: For every
100 you earn how much do you spend?
Educate people even in the grass level to think their work from
value perspective. How can each employee in his or her daily actions
directly influence for better value or even increased income? Every
employer should feel like they have a true impact on the company
and therefore care about the business. Care as much an owner.
Employees start caring like an owner only when they feel like their
voice is being listened to. Fastest way to stop this from happening is
to maximise control and minimize initiativeness.
What part of the work brings business value (and more
importantly what does not)?
1 [Poppendieck, M., & Poppendieck, T. (2003). Lean Software Development: An
Agile Toolkit. Addison-Wesley Professional]
16
http://www.scalingexcellence.com/book
If you find
this material
worthwhile,
please support
me and buy the
full e-book for
a special price
(before the
official release)!
Cheers,
SCHEDULE PRI ORI TI ES
Quality above All
Quality is everyones responsibility.
-W. Edwards Deming
Time, quality (scope) and money. Traditionally managing projects
and meeting project goals has been a lot about balancing between
these three. But, you should never jeopardize quality in any grounds.
Then again it is rare that project would have limitless amount of
time and money in its use so you have to cut from somewhere. It
is better to descope content and cut down amount of features than
deliver more with questionable quality. Prioritize features and cut
down the ones with lower priority: Deliver less with guaranteed
quality. Start by delivering those immediate features that produce
maximum value. On the other hand even if you had all the time
and resources in the world it doesnt guarantee you quality. Thats
why quality comes first and high quality is the absolute minimum
requirement that you start with. If you suffer from quality problems
then slow down development and get your act together.
What is a defect or bug? Its the difference between expected and
actual result by the customer or end user. That means if developer
considers something as expected while customer doesnt then you
have a problem. Instead of taunting the customer, Its a feature, not
a bug, and teaching people how to use your software the right way
maybe you should reconsider your approach and make products
that can be used by intuition. Training is waste unless its part of
your business model and you charge heavily for it.
Same quality requirement stands for people as well. Its the quality
of working hours what matters, not quantity. Workaholics and
adrenaline-junkies are the worst workers. They destroy productivity
by being highly error prone and disorganized in their work, not
to mention they make others feel guilty for not working 12 hour
days. Adrenaline junkies go from one rush to another switching
context constantly in the end achieving very little. Constant context
switching is very exhausting for the mind. In order to be productive
work has to be organized and prioritized. The key to efficient,
productive time management is to organize, prioritize and prevent.
Then complete tasks in prioritized order and focus on completing
rather than starting. Even if you do work 12 hour days its totally
useless if you are not working on the right things at the right time
in the right order. It doesnt make any sense if you start working on
17
http://www.scalingexcellence.com/book
F
R
E
E
E
X
C
E
R
P
T
Chapt er 2: Or gani zi ng t he Wor k
details before the big picture is clear.
Programming is not manual labour. It is not like digging ditches in
the yard or compiling mobile phones in a factory. The amount of
time spent simply does not equal the amount of completed work.
You cannot lock ten monkeys in a dungeon for two weeks and expect
them to deliver a working piece of software. Programming is intense
mental activity and most of which is done away from a keyboard.
It requires well-rested brains and productive mind capable of
coming up with creative solutions. Defects and design failures are
commonly caused by human errors: Simply lack of concentration
and focus. Stressed out developers who are constantly pushed to
their limits and working on the edge 24/7 are the key for a sheer
catastrophe. It just creates software hardly even worth writing.
In software development you can always refactor and work more on
quality. You simply cannot have too big test coverage or emphasize
quality too much as long as you release frequently. If teams are idle
do not come up with nonsense, artificial tasks just for the sake of
it. It is more destructive doing the wrong thing than doing nothing.
Realising that you have spent the last couple of weeks on building
something that has absolutely no use causes resentment towards
the person who assigned the task, and quite rightly so. Teams can
always improve quality assurance, destroy technical debt or even
take some time for personal development and training if they run
out of work. On the long run it is cheaper to keep teams idle than
building wrong things.
Slack is good as long as its not all the time. As Tom DeMarco puts it,
slack is necessary for an organization to work effectively and grow.
2
Value keeping work prioritzed and organized over keeping
people busy.
Never Rely on Overtme
It goes without saying that sustainable pace and overtime dont
sit very well together. If there is a need for continuous overtime
then clearly there is something wrong. The day you start asking
for constant overtime commitment is the day you start asking for
2 [DeMarco, T. (2002). Slack: Getting Past Burnout, Busywork, and the Myth of
Total Efficiency. Broadway]
18
http://www.scalingexcellence.com/book
If you find
this material
worthwhile,
please support
me and buy the
full e-book for
a special price
(before the
official release)!
Cheers,
SCHEDULE PRI ORI TI ES
trouble. Overtime can be an effective method to tackle a short-term
issue for example a critical production problem. But it is always a
very short-sighted situation and never do it by forcing. You wont
get your project back on track by overtime. You might get a little
ahead but on the cost of quality, which then again prolongs the
project.
It might be a good learning experience for a team to work overtime
to save their sprint from failing. But if it is pushed outside the team
then the consequences are not good. There is nothing wrong with it
if teams want to work overtime as long as it is not a habit. Otherwise
you start loosing some of the benefits you actually gained by using
iterative development methods of not over-committing. People
wont have enough time to deal their days work before the next
day. People wear out, start making stupid mistakes and thus lower
quality and technical debt is simply inevitable. Handful of lovely
production defects are waiting you behind the corner possibly
already in the next release. Usually these issues could have been
easily avoided. A well rested mind is a sharp mind. When you push
for overtime you are actually alluring defects to your project.
Lack of resources is no excuse for doubling anyones workload.
Less resources equals less productive hours. There is no way going
around it. In any case you only get maximum of six productive hours
per day per person no matter how hard you use your whip. After
that you only get mindless zombies who are highly error prone
even in the simplest tasks, and thats no good even for repetitive
work, not to mention creative work.
Relatve Estmatng
I would rather be vaguely right than precisely wrong.
-John Maynard Keynes
Estimating is never precise. In fact it is more like a guessing game.
The longer periods and bigger entities you estimate the bigger
your error margin will be. The trick is to estimate small chunks
and concise periods so that you minimize the error margin. Even
after countless of sprints when teams are highly experienced with
estimating changes for their product there still exists an error
margin. There will always exist an error margin. Estimations are
never ever 100% accurate! Thats something you cannot escape
from. Therefore planning for too long period is simply thrashing
19
http://www.scalingexcellence.com/book
F
R
E
E
E
X
C
E
R
P
T
Chapt er 2: Or gani zi ng t he Wor k
unless you happen to have a reliable crystal ball.
Humans are not good at estimating time simply because the human
factor is usually neglected. People tend to make up schedules
according to best-case-scenarios for super productive days without
a single interruption and without considering how much time in
reality it takes for humans to recover from hectic periods and from
each interruption. Even worse is that as soon as those estimations
are given people actually try to live up to those chaotic schedules,
usually on the cost of quality and general wellbeing. Humans are
not robots no matter how much of a cyborg you hope to be. Dont
demotivate everyone by planning projects for happy day scenarios.
If you are planning for robots then and only then you can forget
about recovery time.
Unless you are estimating entities smaller than a maximum of few
days there is absolutely no point in estimating in hours. Estimating
is done in relative measures. For example story point is a relative
unit size measuring complexity of the work. It estimates the
complexity of a given work, not time. Compare work packages to
each other and then estimate in relative units. In its simplest form
it means categorizing all work packages as small, medium or large.
In any case estimations (especially for time) usually will not hold.
Acknowledge the error margin, adjust the plan and adapt when
situations change as time goes by and knowledge of the work
increases.
People who do the actual work give the estmatons.
Scope Management
Never set a deadline with fixed, nonnegotiable scope unless you are
100% certain you will meet that deadline with the agreed scope
with high quality. Instead set milestones with goals and negotiable
scope. Constantly prioritize the content using the MoSCoW
Method
3
. In software development requirements are very prone
to change and by not carving requirements in stone but constantly
prioritising you have better chances of delivering the greatest and
most immediate business benefits early. If you dont leave any
3 [Clegg, D., & Barker, R. (2004). Case Method Fast-Track: A RAD Approach.
Addison-Wesley Professional]
20
http://www.scalingexcellence.com/book
If you find
this material
worthwhile,
please support
me and buy the
full e-book for
a special price
(before the
official release)!
Cheers,
SCHEDULE PRI ORI TI ES
room for change in the requirements then you better be damn sure
that those will never change and are 100% accurate even after the
release.
MUST have is first priority content and absolutely must be part of
the first release. Without these features project is a failure. SHOULD
have is second priority and these features are equally important
but not needed in the first release. These directly contribute to the
project success but in latter releases. COULD have requirements are
less critical nice-to-have features that for example might increase
customer satisfaction, but do not directly contribute to the project
success. These can be dropped without drastic impact. WONT have
are least critical features that wont be part of the first or second
release, but are an option for future releases.
Diferent Types of Backlogs
There are different types of backlogs such as a company backlog for
visualising project and program priorities, project backlog for all
releases, release backlog with all the products and features, product
backlog for each team and finally a sprint backlog that contains the
work for each iteration.
Company backlog is the parent and portfolio. It includes all ongoing
projects and programs in the company. Everything has to be listed
and prioritized in this list, otherwise it is hidden and non-prioritized
work that will definitely cause misapprehension sooner or later.
Teams are not allowed to work with any hidden projects, because
there is a big chance they are thrashing. Every project is visible
and represents company vision. There really is no reason why any
team would want to have hidden projects since getting your project
prioritized also means you get support from the management. If
Company Backlog
(Projects/Programs)
Project 1
Project 2
Project 3
1. Epics / User Themes
2. User Stories
3. Estimated User Stories
Product A Backlog
(Team Backlog)
Sprint 1
Sprint 2
Sprint Backlog
(Estimated User Stories)
Product A
Product B
Product C
Release 1 Backlog
(Products/Features)
Project 1 Backlog
(Releases)
MUST
INCLUDE
Release 1
Release 2
Release 3
Release 4
SHOULD
INCLUDE
COULD
INCLUDE
WONT
INCLUDE
21
http://www.scalingexcellence.com/book
F
R
E
E
E
X
C
E
R
P
T
Chapt er 2: Or gani zi ng t he Wor k
the priority is low then it is not current and resources should go to
higher priority item.
Company backlog is prioritized by the management (or the person
having the role of Chief Product Owner) once a month and these
priorities have to be visible and known by every single employee
in the company. If there appears a conflict between projects for
example in resources, getting environments or support it has to be
crystal clear which project has highest priority. Despite the projects
first priority is always current production e.g. critical production
issues and second priority is the next company release. If there are
any quality issues all teams always have to stop whatever they are
working at and give their full support for fixing the issues. Keep
your table clean at all times.
Project priorities cannot change every week. It is exhausting for
the mind if you have to switch context constantly and work on a
different project every week, or even worse every other day. There
has to be stability and predictability in the working environment.
Multitasking is overkill and deteriorates productivity. In any case
it is more efficient to start and finish one project at a time, instead
of sharing resources all over the place and requiring one person
to work on five projects. If at all possible complete projects one
by one. Complete ongoing work before starting new. One whole
team could work on several projects at the same time, but that is
not optimal use of resources and just leads to low productivity.
At bare minimum dont let teams work on multiple projects in a
single sprint. The most ridiculous situation I have seen was when
one team was working on four (4) different projects in a single two
week sprint.
Project backlog includes the content for each release with all the
features. Each project has an assigned project manager and an owner
(sponsor) from the management who has the mandate to make
decisions regarding resources and budgets. Some would argue the
need for having project managers when using Scrum as the duties
are usually divided by the Product Owner and ScrumMaster. In its
traditional form (creating work breakdown structures, assigning
tasks and making up Gantt charts) it really makes no sense or if
there is just one team working on the project. But when there are
multiple teams working in a project there has to be a single person
who is responsible for making sure project delivers exactly what
is expected when things dont go quite as planned. Value comes in
26
http://www.scalingexcellence.com/book
If you find
this material
worthwhile,
please support
me and buy the
full e-book for
a special price
(before the
official release)!
Cheers,
SCHEDULE PRI ORI TI ES
a similar fashion. Project meets its end when objectives are either
achieved or no longer applicable and therefore its terminated.
One feature clearly isnt a project. Neither is something that one team
can complete on their own in a single sprint. If the work requires
proper planning, effort from several teams and prioritisation then
it is a project and should be visible in the company backlog.
Project Life Cycle
Project has four phases: proposal, planning, execution and closing.
Project must first pass a defined entry criteria before accepted to
the company backlog. Only projects that are seen as valuable for
the company are accepted. Prerequisite for acceptance is a project
charter, which is a single 1-2 A4 pages short document that states
the business opportunity, deliverables, risks, scope, timeline,
objectives and participants of the project. It has to be crystal-clear
what the project is about and what value it delivers. If the project is
accepted to the backlog initial planning starts.
During the execution phase plan is adjusted in according with the
actual progress. This is not plan driven approach and release dates
Idea! Project
proposal
(1 A4 page)
PMO accepts
project to
backlog
Management
prioritises
project as #1
All teams plan
together
All teams
execute plan
Marketing
planned
Company
release
Marketing
executed
s
m
a
g
n
e
t
(
e
v
e
r
y
o
n
e
h
a
s
t
h
e
i
r
o
w
n
b
u
n
c
h
)
T
a
s
k
A
m
o
u
n
t
o
f
d
a
y
s
t
a
s
k
w
a
s
i
n
p
r
o
g
r
e
s
s
U
s
e
r
s
t
o
r
y
A
m
o
u
n
t
o
f
d
a
y
s
u
s
e
r
s
t
o
r
y
w
a
s
i
n
p
r
o
g
r
e
s
s
T
e
a
m
s
m
a
g
n
e
t
m
a
p
(
d
i
f
f
e
r
e
n
t
c
o
l
o
r
s
&
s
h
a
p
e
s
)
I
m
p
e
d
i
m
e
n
t
s
a
r
e
a
d
d
e
d
t
o
t
h
e
w
a
l
l
a
s
w
e
l
l
A
c
t
u
a
l
h
o
u
r
s
s
p
e
n
t
f
o
r
t
h
i
s
u
s
e
r
s
t
o
r
y
133
http://www.scalingexcellence.com/book
F
R
E
E
E
X
C
E
R
P
T
MANAGE DAY-TO-DAY WORK
Chapt er 7: Scr um i n Act i on
working on which task. They are like personal avatars. Below is the
timeline displaying all dates before the demo. Timeline is important
because it constantly reminds you how many days you got before
the demo. Its so easy to vanish on the belief that there will be time
later on. There is an area on the far right of the Wall for operational
tasks that pop up during the sprint and not part of any story.
Before the sprint starts all post-its are on the top below the stories.
As task is started it is taken down to the current date along with
the team members magnet to clarify it is in progress. If it is not
done the next day a green line is drawn below for every day it is
in progress. This way you have to move post-its only once and just
tape them if they dont stick. Remaining hours are marked every
day to the bottom right corner of the post-it with a pencil and actual
hours are added to the top left with a marker. All tasks that dont
have a magnet in the timeline area and have the actual hours are
considered done. If you cant use magnets for any reason then come
up with some other way to visualise which member is working on
which task. It might not make sense for a small team but it definitely
makes a difference if team has nine or even more members.
Impediments are also added to the whiteboard with a red marker,
so that it is clearly visible which tasks have been impeded and for
how long. If task is impeded and depending on someone outside
the team then you draw a red line. You can write other important
information to the Wall as well such as marking specific dates
(e.g. Feature Freeze), release schedule and so on. These are just
the minimum recommendations. Its also a good practice to print
a calendar at each month and fill it with sprint schedules, out-of-
office dates and so on. Make it easy for team members to visualise
data that is important for everyone to be aware of. It is the duty of
the ScrumMaster to make sure that the Scrum Wall is tidy and it is
crystal clear what is the status of each story and task (not started,
in progress, impeded, dropped or done).
Everyone should always have a task in progress. If not then pick
up one, create a new task or pair up with someone. Just by looking
at the Wall you get a quick glance of the whole sprint and see how
the sprint is progressing. Stories are completed in prioritized
order. Ideally team should work on stories one by one but specially
for large teams it might not be very efficient that everyone is
working on the same story. Use common sense. Nevertheless
focus is on completing current work before starting new. If it
134
http://www.scalingexcellence.com/book
If you find
this material
worthwhile,
please support
me and buy the
full e-book for
a special price
(before the
official release)!
Cheers,
MANAGE DAY-TO-DAY WORK
becomes a problem and your sprints often end with half the stories
incomplete then come up with a Work in Progress (WIP) limit.
Make constraints that enforce team members to work together; for
example only some amount of stories can be worked concurrently.
The Product Owner and ScrumMaster do not put any tasks on the
Wall nor should they complete any tasks for the team. Scrum Wall
shows solely the teams work.
A thing that makes the use of Scrum Wall so efficient way to work
is the social pressure that comes along with it. Team members are
obliged to report to each other daily and visualise their progress.
It might feel a little intimidating for beginners at first, but no team
will object to its use when they understand the drastic increase of
visibility and boosted productivity. It is not acceptable to say you
are working on some tasks outside the Scrum Wall. Everything has
to be visible on the board.
This type of Scrum Wall works as an excellent information radiator
for retrospectives as well because it holds so much information.
You can see if team had impediments and for how long those
lasted, how long each task was in progress and which days were
more productive than others. How many hours was each task
estimated and how long it actually took. It is so easy to come up
with improvement suggestions when you have this in front of you
every day.
Make sure all work the team is doing is visible on the board.
Operatonal Tasks
During a sprint the team can do tasks outside the sprint scope
but those should be tracked to see what is beneficial and is there
any waste. Operational tasks are tasks done during the sprint
but not part of any user story. Since at the gaming organization
the finance department wanted to track hours based on projects,
we decided to divide operational tasks into support (for other
projects), unplanned (project related) and waste (unrelated to any
project). Support includes production issues (task force duties),
maintenance, bug fixing and support for other teams. Unplanned
includes operational and build master tasks such as maintaining
automated tests or builds. Waste is work unrelated to any project
such as installing local development environment.
135
http://www.scalingexcellence.com/book
F
R
E
E
E
X
C
E
R
P
T
MANAGE DAY-TO-DAY WORK
Chapt er 7: Scr um i n Act i on
It might seem harsh to label some part of the daily work as waste
but it doesnt really matter what you call it. If waste sounds too
scary then call it as bananas. Point is that you keep track of what
the team spends its time on and consider what work is valuable and
what is not. How much time are you wasting when the network is
down? Eliminate waste and come up with methods for prevention.
If in every sprint you waste one day fixing same kind of issue then
how could you prevent it from happening again? Its really good
practice for the team to identify what tasks are they doing outside
the sprint scope. But if a task takes less than an hour its probably
not worth writing down.
Prevent waste.
Burndown Charts
The core reason for having burndown charts is to visualise the need
for action. If things were going perfectly and always as expected
then of course you wouldnt need any charts. You wouldnt need to
track anything if everything went as planned. Visualising progress
allows you to react in matter of days instead of weeks.
Its far too easy for the team to get caught up in the moment thinking
Hey, we know our status, if anyone else wants to know they can
just come ask us. Sounds pretty good from the teams point of view
but for outsiders wanting to check out the status of lets say 15
teams it is a sheer nightmare. On the other hand if you never react
to anything the team does between the demos then you dont need
any charts. More likely you need another job instead.
Burndown charts show the progress of the sprint. There are two
types of burndown charts for every sprint: one for tasks and the
other one for user stories. Tasks hour burndown chart is the
estimation of how many hours it will take to complete the sprint
(remaining task hours) and hours are subtracted daily. Task hours
include operational tasks. Story points are subtracted only when
a whole user story is done. The story points burndown is actually
more useful because you can still be left with nothing completed
even if the task hours are going down. Looking only at the tasks
burndown can be quite deceiving because in the end you might
have hours close to zero but still none of the stories are done.
Even if you decide not to have physical burndown charts make sure
136
http://www.scalingexcellence.com/book
If you find
this material
worthwhile,
please support
me and buy the
full e-book for
a special price
(before the
official release)!
Cheers,
MANAGE DAY-TO-DAY WORK
BUT IT MAKES ME LOOK BAD!
It is decisive to visualise the amount of days tasks are in
progress. If you dont have the space for drawing a tme
line for each day of the sprint then come up with another
way for instance mark a spot on the post-it each day the
task is in progress. Usually people are surprised how many
days they actually spend with a single task because ofen
tme just seems to fy by.
With one team I had quite an amusing episode related
to this. One of the members was multtasking against my
recommendatons and he constantly wanted to work on
four tasks at the same tme. As a ScrumMaster I let him
have his way without preaching too much to see if maybe
he was a wonder multtasker and if it worked out. Maybe
he was a genius and I was the idiot for trying to inhibit
him.
Afer a few days passed by he completed some of the
tasks, but one task had been in progress for already
fve days and the green line just grew longer and longer
each day. Eventually he wanted to move the task to the
current date and wipe the green line away, but as I didnt
let him do that he replied but it makes me look bad.
That is exactly the point! It defnitely should make a team
member look bad if he or she is constantly startng new
tasks before fnishing current one and doesnt manage to
get anything done. If a task is prolonging for several days
then it is a clear sign that something is wrong and should
be addressed. Maybe the team member is struggling with
the task and needs help. In any case when you visualise
the days this is clearly visible even for outsiders. By doing
this you encourage the team to focus on completon of
tasks.
Multtasking at its core is bad for productvity because
it disrupts the focus. It is something to look out for
and constantly be reminded to the team. Only tme
multtasking is allowed is when the tasks are clearly
related but even then it is just plain ridiculous to have four
137
http://www.scalingexcellence.com/book
F
R
E
E
E
X
C
E
R
P
T
MANAGE DAY-TO-DAY WORK
Chapt er 7: Scr um i n Act i on
tasks simultaneously in progress. Ask the person if it really
is efcient way to work and benefcial for the sprint.
If someone started and spent tme with a task then they
are not allowed to put it back to not-started state. It is
in progress untl it gets done. If the task becomes invalid
then just leave it on the Wall, mark it as done and give
the actual spent hours. Dont take any started tasks away
because you need to visualise where did the sprint tme
go even if it was waste. This is excellent data for the
retrospectve. You can come up with a maximum length
for a task if it becomes a problem. Team is free to add
new tasks and remove only not-started tasks from the
Wall during the sprint to refne the plan.
144
http://www.scalingexcellence.com/book
If you find
this material
worthwhile,
please support
me and buy the
full e-book for
a special price
(before the
official release)!
Cheers,
MANAGE DAY-TO-DAY WORK
tempt the team claiming something incomplete as done.
Usual reason for failed sprints:
User stories and goal are poor
Too much work done outside the sprint
Lack of shared focus
Usual reasons for stories remaining incomplete are under
estimation of the work, impediments, dependencies, unclarity and
unexpected absences such as sick leaves. Does it mean that you are
automatically a failure because you didnt account for those in the
planning? Of course not. That is why sprint needs a goal to define
whether it was a success or not. Otherwise the point of sprint
remains merely in completing some stories. On the other side is
a sprint success if goal is met but no stories are completed? Well,
basically yes but the planning was quite rotten then.
Even if team hasnt managed to complete a single story the sprint
demo is still held. Naturally no stories are demoed since nothing
is done but the team gives an explanation why nothing has been
completed. It is the team members who give the explanation to
the Product Owner and stakeholders, not solely the ScrumMaster.
Always give credit whether its negative or positive to those who
do the actual work. That means the team, not the ScrumMaster or
Product Owner who are there only to help. It is the team who does
all the work and deserves all credit. ScrumMaster at all situations
must be unbiased and objective, state the facts without making up
excuses. Dont let anyone badmouth the team but never take the
blame for the team either. If you take all blame when things go
bad then you teach the team nothing about accountability of their
actions. A good leader takes a little more than his share of the blame
and a little less than his share of the credit.
Actually, failing is a great opportunity for the team to collectively
take responsibility for their actions and grow maturity level. Look
on the bright side. Failure is often much more educative experience
than success. It is not an event where you chew down the team to
pieces for not delivering but more like a session where they have a
chance to explain why they didnt meet the deadline and what is still
missing. Chances are that it wasnt only a case of over committing.
Is there something disrupting teamwork? Is there something going
on that managers should be aware of? It takes a lot more courage
to admit that features are not done yet than trying to cover up and
145
http://www.scalingexcellence.com/book
F
R
E
E
E
X
C
E
R
P
T
MANAGE DAY-TO-DAY WORK
Chapt er 7: Scr um i n Act i on
finishing work with low quality.
Product Owner then answers whether same stories will be re-
planned and what will be improved and done to avoid the same
thing from happening again. Making mistakes is acceptable but
making the same mistake over and over again is not. It is more like
the definition of insanity.
Sprint demo is the place for teams to shine (or rot).
Constant Improvement through
Retrospectves
Regardless of what we discover, we understand and truly believe
that everyone did the best job they could, given what they knew at
the time, their skills and abilities, the resources available, and the
situation at hand.
-Norman Kerth
Retrospectives are the single most important element in the whole
process because it all comes down to the essence of Scrum: constant
improvement; inspect and adapt. Whole team together with
the ScrumMaster and Product Owner look back on the previous
iteration and decide what to improve during the next one. Yet it
always seems only a matter of time before people start criticizing
the need for retrospectives. Well, if everything is going just dandy
and there is no longer room for improvement then maybe its factual,
but how many teams can say that? The retrospective doesnt serve
its purpose only to reflect on the problems but also to realize what
has been achieved. So, ignore the nagging and insist that teams
have them after every single sprint even if its only on a lightweight
basis. It is better to have a brief 15-minute casual discussion than
not having one at all. Make it a habit. Its like a ritual for closing the
sprint.
Common reasons for people to hesitate having retrospectives are
that action points are not followed, overall mood is negative and
blameful, sessions are held just for the sake of it without any relation
to daily work (e.g. issues like My vacation was good) and of course
the evident fact that engineers just dont like talking about feelings.
Be prepared for resistance and constantly improve the session in
the manner that team feels comfortable with. Retrospective event as
146
http://www.scalingexcellence.com/book
If you find
this material
worthwhile,
please support
me and buy the
full e-book for
a special price
(before the
official release)!
Cheers,
MANAGE DAY-TO-DAY WORK
any meeting can become tiresome if not developed. It is a challenge
to keep the session fresh. A book by Esther Derby and Diana Larsen,
Agile Retrospectives: Making Good Teams Great
5
dives into getting
most out of retrospectives. There are cabillions of different ways
of conducting this meeting and it definitely should be varied. Try
something different every once in a while. Try a different approach.
Review the retrospective meeting to make sure that the team is
satisfied and gets most out of it. It is not the teams fault if these
events become boring. After all, if the ScrumMaster is boring then
of course its going to be a boring meeting.
If you have two week sprints then retrospectives should be very
lightweight as they take place every other week. You can have
more thorough retrospective maybe once a month. Nobody likes
unnecessarily long meetings, not to mention unnecessary meetings
what some people without a deeper insight might consider
retrospectives to be. Spending a whole day to dwell into everyones
deepest, darkest thoughts will be a great challenge for engineers.
It is better to keep it lightweight and continuous. The main point
of retrospectives is to get the team to communicate together and
express their concerns, building trust so that team is comfortable
in questioning each other and coming up with ways to improve
the work. One person doesnt speak for the whole team and
nobodys thoughts are rolled. From Product Owners point of view
retrospectives can be a chance for recognizing, eliminating and
preventing waste in the teams daily work.
Retrospectives always end up with concrete action points to be
taken into the next sprint. When coming up with action points it is
useful to have a focus point: what can be done concerning the team
itself, what can be done to help other teams and what actions or
insights should be proposed to the management. The main focus
area is where you have an influence on. It is absolutely of no use
in stressing about something you dont have an influence on for
example development teams most likely dont have a lot of influence
on company business decisions. It is useless to stress about things
you cannot affect. Making your opinion heard is pretty much all you
can do.
Action points are only taken for people within the team, not
for outsiders. Chosen action points are gone through in the next
5 [Derby E., & Larsen, D. (2006). Agile Retrospectives: Making Good Teams Great.
Pragmatic Bookshelf]
147
http://www.scalingexcellence.com/book
F
R
E
E
E
X
C
E
R
P
T
MANAGE DAY-TO-DAY WORK
Chapt er 7: Scr um i n Act i on
meeting. If there are long-term action points, then write those on a
white board as well just to keep those in mind.
No matter which way the session is held the manner has to be
positive. One thing to look out for is retrospective sessions becoming
nagging or slandering chats. Always keep it in a positive manner
and focus on what was good, what was not that good and what
can be improved. Dwelling in negativity or going around saying
how everything sucks is not productive and eventually will make
everyone feel demotivated. Either stop whining or do something
about it. Its also a good idea to get out of the workplace every once
in a while and hold the retrospective at a joint lunch.
A really effective way of getting input from all team members
and ensuring they take lifts from their chests is to split into pairs
(or a group of threes) and have people interviewing each other.
ScrumMaster and Product Owner also take part. Every person
says what was good, not-so-good either in their own actions or
in the sprint in general, and suggest individual action points for
themselves what to improve during the next sprint. Everyone
considers how can they with their individual contribution make
the team better. After everyone is done every pair presents their
results. Interviewer stands up and goes through the notes and
afterwards the interviewee has a chance to add something if he or
she wishes. Areas where the team should dwell into include good
things, not-so-good things, what did the team learn, what should be
changed, is there something puzzling and so on.
The ScrumMaster facilitates the session and every team member as
well as the Product Owner should be present. Everyone has to give
input including the Product Owner. The ScrumMaster should not
raise issues in order not to seem bias. Retrospective is also the time
to hold the Product Owner accountable for the quality of his or her
work. Is sprint length respected or is new work trying to be added
after planning? Are the user stories good enough?
Invite outside people who have input and need to be aware of the
teams concerns. That might include other teams members and
stakeholders. Its really good for the teams supervisor to be part of
these sessions sometimes. But that requires that team is confident
enough and have courage to speak up even in outsiders presence.
After the session the ScrumMaster writes the action points on the
http://www.scalingexcellence.com/book
155
http://www.scalingexcellence.com/book
F
R
E
E
E
X
C
E
R
P
T
CHAPTER 8:
Software Craftsmanship
Risk-Based Testng
Point of testing is not to find defects but to prevent them. It is next to
impossible to test everything under all possible scenarios with all
possible parameters therefore testing is focused on what matters
most and where the risk of failure is severe for instance monetary
transactions. This is why testing has a lot to do with analysing
risks and likelihoods for failure. Amount of test cases and even test
coverage tells you pretty much nothing about the quality of the
product. Its the quality of the tests that matters. Are you testing
the right things? If not then you are just wasting effort.
Testing starts the same day as development, not at the end of
the sprint after implementation is done. Otherwise you are just
having mini waterfall process inside the sprints: first design, then
implementation and finally quality verification. This is not efficient.
Its very risky if testing is left until the last minute. Chances are that
you discover defects which you dont have time to fix before the
demo and you are only left with untested, incomplete user stories.
As the business value of incomplete work is zero then your whole
sprint doesnt manage to deliver any value.
You need to constantly analyse risks. Not after something is done but
before even starting the work. To make it a systematic process the
team analyses the risks for each user story before implementation
and starts working on test scenarios from there. When FMEA is done
before implementation it creates an excellent basis for building the
functionalities and pinpointing testing to the right areas. Which are
the parts that in failure have highest severity? In order to prioritise
and visualise the risks you need to give a value for each risk. For
every software function a failure mode is detected and severity
number is given on the scale between 1 to 10, where 1 equals no
danger and 10 equals critical. Same ranking is given for occurrence
and detection as well. Next you can count the risk priority number
by multiplying these three numbers (RPN = S x O x D). This way
you identify the greatest concerns, and highest RPN values have the
first priority for corrective actions. Doing these four steps for every
user story might seem quite burdensome therefore you can start
with a lightweight basis just as long as you do it. 15 minutes per
156
http://www.scalingexcellence.com/book
If you find
this material
worthwhile,
please support
me and buy the
full e-book for
a special price
(before the
official release)!
Cheers,
MANAGE DAY-TO-DAY WORK
BLAME IT ALL ON THE TESTER
My frst real sofware job was to be a test automaton
engineer in a senior J2EE development team. This was
not an agile team and the working practces were far from
disciplined and systematc.
The frst thing was to start working on a project that was
already a year late. There was tremendous hurry and
pressure from the management to complete the project.
Only instructons I got from our project manager was
to test everything and it was solely up to me alone to
decide which parts of our products are critcal to test.
Worst part was that I had no clue about the end user
behaviour of our products and neither did the developers.
If you asked what is some feature used for a lot of tmes
you got just silence. When the situaton is like this testng
is a sheer nightmare. Work is full of uncertaintes but the
tme schedule is so tght that you are not given any tme
to uncover those uncertaintes. There is a big chance of
wastng tme on putng a lot of efort on testng parts
with litle value for the end user.
One tme I got back from vacaton there had been a
critcal producton issue in a product we maintained. I
got my fair share of blame from my boss and developers
that Im not doing good enough job in verifying the
quality of our products. Testng was solely on me and I
was like an outsider even though I was a team member.
Quite amusingly when at one tme developers had a get-
together one developer aferwards commented that I
wasnt invited as Im not a real coder. Even though it was
partly sarcasm it clearly showed the general atmosphere
that as a tester Im not as much part of the team as the
developers are but more like a second-rate citzen.
In a team no member can be an outsider and there is no
hierarchy within the team. Whole team is responsible for
testng and assuring the quality of their work. If these kind
of issues emerge in your teams then you have to put them
straight.
157
http://www.scalingexcellence.com/book
F
R
E
E
E
X
C
E
R
P
T
MANAGE DAY-TO-DAY WORK
Chapt er 8: Sof t war e Cr af t smanshi p
user story coming up with potential risks is usually enough. After
all it is more important to consider the risks and prepare for them
than counting some numbers.
When it comes to agile testing a common puzzle is what to automate
and where do you need manual testing? Automation is never a
replacement for manual testing. Its an extension. You put the
manual effort where the use of human brains brings the most value
and automate repetitive, boring tests such as regression testing.
Humans are needed for exploratory testing and in scenarios that
are tricky to automate or maintenance is burdensome. Even if there
are extensive automated regression tests manual testing is still
needed. Manual testing is always needed. But use the manual work
force on issues hard to spot with automation.
It takes little effort to write idiotic tests that make no sense
whatsoever but it requires a bit more thinking to write long-lasting,
reusable tests. It demands input from the whole team. This can be
rather challenging but when done properly it will pay-off greatly.
Good tests are easily maintainable, trustworthy and readable.
They dont concentrate merely on happy day scenarios but also on
negative testing. Tests should be fast and easy to run. Even if you
have a large set of automated tests there should be a test suite of
acceptance tests that are fast to execute. Good automated tests are
environment independent, re-runnable and reusable.
Each team works in at least three different environments (the
teams private one, CI and RC) and testing is mainly done in the team
and RC environments. But since the acceptance criteria defines that
everything has to be working in the RC environment then that is the
environment what matters the most. There is no value in a feature
which works in some developers local environment but fails in
the RC environment. But features are already thoroughly tested
and verified before put to RC. This is the environment for release
candidates that are ready to put to production and mainly used for
verifying that none of the old features have broken.
Each team has a dedicated tester who has three duties:
Commitment for the team to verify quality in everything
that team delivers
Constant interaction with the Product Owner and
stakeholders to validate that the team delivers what is
expected
158
http://www.scalingexcellence.com/book
If you find
this material
worthwhile,
please support
me and buy the
full e-book for
a special price
(before the
official release)!
Cheers,
MANAGE DAY-TO-DAY WORK
Commitment for the company releases and testing other
teams products
Team tester has to be in even tighter cooperation with the Product
Owner than the team, because he or she is responsible for making
sure in the daily work that the team focuses on the end user value
and considers risks. Before sprint starts the tester goes through
the acceptance criteria for each user story with the Product
Owner (or ideally with the customer) and gives input from the
teams perspective. Often developers are too attached in thinking
everything from overly technical perspective and thats where the
tester comes with a very unique role in the team.
Tester is closer to the end user. Whereas the Product Owner
concentrates on the value that the end user benefits the tester can
solely focus on the end user experience. When sprint starts the
tester writes functional manual tests and use case scenarios how
user stories can be tested. These use case scenarios also function as
part of the documentation therefore they have to be extra readable.
Next thing to do is to write automated acceptance tests for the user
stories. As functionalities are implemented the tester verifies those
functionalities with own tests and by going through the tests made
by developers.
Does tester need to be able to code? Testers are not required to be
coders since nowadays many test automation tools are easy to use
and require little or even no coding for instance you can record the
steps you perform in a website. So thats no excuse. You can easily
get started even without any prior coding experience. Coding is not
a prerequisite for testing and as with any skill competence can be
developed if there is will to learn and improve. More important is
to take in the end user perspective and thorough comprehension of
risk analysis methods. Drive the team into the direction where risk
management is part of their daily work.
Transition from a traditional Quality Assurance team member
to an agile team tester can be quite challenging. But it is also
very rewarding as the tester actually affects the product before
implementation even starts. First of all the tester is part of the
team instead of an outsider. This minimizes the harmful dividing
and handovers between developers and testers. Strangely enough
it is quite common that testers and the need for them both in teams
and companies in general is often greatly underestimated and
159
http://www.scalingexcellence.com/book
F
R
E
E
E
X
C
E
R
P
T
MANAGE DAY-TO-DAY WORK
Chapt er 8: Sof t war e Cr af t smanshi p
undervalued. Developers treat testers as second-rate citizens and it
is perfectly acceptable behaviour in companies. This is something
to look out for and emphasize that testing is responsibility of the
whole team, not just the tester. But the tester needs a proactive
approach to work hand in hand with the developers starting from
day one. Tester is the quality gatekeeper for all that team delivers
and it is not acceptable for a tester to say I didnt know this had to
be tested.
Testng starts the same day as development.
Coding Practces
Even if teamwork is good and features seem decent you need ways
to ascertain that the team is not taking any shortcuts that end up
costing valuable time in the future. Progress might seem great
while the team is at the same time perhaps unwittingly increasing
technical debt that will eventually paralyse improvements. Speed
requires good design. Extreme Programming (XP)
1
is a set of
engineering practices that are tightly integrated into Scrum. As
Robert C. Martin put it, Scrum is a day-by-day process whereas XP
is a minute-by-minute process that fills those days.
2
Scrum doesnt
take any stand on coding itself and the guidelines that form software
craftsmanship come from XP. Without these practices you leave too
much in the hands of chance and stand on an unstable ground.
First of all code is owned by the team, not individuals inside the
team. Any team member can touch any part of the teams code.
All written code is reviewed by the whole team or at least by one
peer. Code reviews are sessions where the whole team (not just
developers) sits down and the writer presents his or her work.
This doesnt concern only code. Documentation, designs and tests
are also reviewed together by the whole team. Have joint review
sessions for everything that makes sense to review together such as
graphics, new technology and so on, but the absolute minimum is
on a user story level. Story is not done before it is reviewed together.
Try also reviewing work across teams.
1 [Beck, K. (1999). Extreme Programming Explained: Embrace Change. Addison-
Wesley Professional]
2 [Martin, R. C. (2010). What Killed Waterfall could Kill Agile]
160
http://www.scalingexcellence.com/book
If you find
this material
worthwhile,
please support
me and buy the
full e-book for
a special price
(before the
official release)!
Cheers,
MANAGE DAY-TO-DAY WORK
Pair programming is a technique where two members work using
one workstation. One person does the typing (driver) while the
other one reviews (navigator) each line. Navigator comes up with
ways to improve and sets the strategic direction whereas the driver
can focus solely on the current task and use the navigator as a safety
net to keep focus on the big picture. Roles are switched frequently.
Even though it might seem a little contradictory but by doing this
you actually increase efficiency: software products can be produced
in less time, with higher quality.
3
Chances for defects decrease,
complexity minimizes, maintainability eases, creativity blossoms
not to mention it also emphasizes teamwork. Pair programming is
especially efficient practice in introducing new team members to
the codebase. This kind of intense pairing might not suit everyone
and pairing persons with drastically different skill levels might
cause some frustration. Its not pair programming if one person
is typing and the other person just sits there quietly without
contributing. Pairing includes active two-way communication.
Nevertheless at least try it out every once in a while and see what is
the outcome. For one sprint each team member pairs with another
one for a couple of hours a day.
It is definitely worthwhile to organize in-house coding dojos where
coders get together to work on some pre-agreed programming
challenges. Point is to have fun and improve skills together. Practice
makes perfect and practising together with peers intensifies the
level of learning.
No code lasts untouched for a lifetime. Adapting to change applies
specially harshly to coding. The code you write today might become
futile tomorrow. Its only a matter of time when it changes but it
definitely will change. Thats why you have to support constant
refactoring and make sure refactoring the codebase is as easy
as possible. All code is easy to change and changing one thing
doesnt break everything. There is no chain reaction and codebase
is not a house of cards. Otherwise you tremendously slow down
development time and fixing defects takes even longer. Automated
tests (at minimum this means unit, integration and acceptance
tests) is your safety net that allows you to quickly realize the affects
of those changes.
All code is not created equal. If you spend a lot of your time
3 [Williams, L., Kessler, R. R., Cunningham, W., & Jeffries, R. [2000]. Strengthening
the Case for Pair-Programming. IEEE Software. Volume 17, Issue 4]
161
http://www.scalingexcellence.com/book
F
R
E
E
E
X
C
E
R
P
T
MANAGE DAY-TO-DAY WORK
Chapt er 8: Sof t war e Cr af t smanshi p
perfecting code that has minimum effect on the functionality and
value regarding the end user then you are simply wasting your
effort. Do the bare minimum that works then stop and move on
to more important things. Just like with features different parts of
the code have different priorities. As long as it gets the job done
each line doesnt have to be perfect. Put maximum effort where
the value and payout is high. Code that has the severest risk in
failure deserves the highest attention. Having a defect or design
failure is much more damaging there than in some minor test
code. Therefore acknowledge the effects and value of your work
and concentrate on simplicity. It can be tough to keep everything
simple under complicated situations, each and everyone of us need
to be reminded about this from time to time. Some teams even have
posters with slogans (team rules, values and recommendations) on
their Scrum Walls as reminders and thats definitely something to
try out.
Test Driven Development is (TDD)
4
is a technique where developer
starts with a failing test and then produces the bare minimum
amount of code for the test to pass in order to provide the required
functionality. This way tests work as requirements specifications.
This is done to ensure testing the right things and writing as
little code as possible, because the more code you write the more
complexity you create and the probability of defects increase. As
a bottom line functionality of the tests are not changed. You are
only allowed to change tests in minor refactoring such as in order
to improve readability. Instead you always add new tests (unless
those become invalid) because otherwise it is too easy to loose
focus what the original idea was, not to mention this way it is easy
to trace steps back to the very first requirement. You only change or
remove tests if the requirements change.
TDD is hard work and it may take even years to fully interiorize
because it requires a totally different approach than most
developers are accustomed to. Instead of testing after you actually
test before coding. Encourage TDD but dont shove it down to
developers throats because it can backfire. Its a powerful tool but
with inexperienced programmers the outcome might not be good.
In worst cases you might even deteriorate your system architecture
if developers lack focus on the big picture. Its a challenge even for
experienced coders unless you constantly visualise the design. Draw
4 [Beck, K. (2002). Test Driven Development: By Example. Addison-Wesley
Professional]
http://www.scalingexcellence.com/book
167
http://www.scalingexcellence.com/book
F
R
E
E
E
X
C
E
R
P
T
CHAPTER 9:
Non-Development Teams
Working with software development team is a pretty straightforward
process when you have an unambiguous product. Find out what
features are needed, write those features into workable sized
user stories and then break those into a sprint plan together
with the team. After each sprint demo the completed features to
stakeholders and consider what you could do better to maximize
value in the next sprint. Repeat until you are done.
But what about when you are not building a product? How should
teams such as system administrators that only function serving
other teams plan their work? There is no point in having sprint
planning if you are not aware of the deliverables before-hand so that
you can actually plan work for the sprint. But even if you dont have
sprints you should have short cycles. What you can do is to measure
the capacity that the team can deliver during a given period (a week
or two). How many items can team complete in a week and how
long does it take for one item to be completed? Measure the cycle
time from sprout of an item to acceptance or deployment. Item can
be anything from a few hours task to a few days work. Plan when
there is something to plan for. If you have an item that takes weeks
then you definitely have something to plan for.
Apart from the planning, the same set of team practices apply also
for non-development teams. In all cases limit the work in progress
and visualise ongoing work. Get a taskboard for the team firstly to
organize their work and secondly give transparency for outsiders.
Team members synchronize their work daily. One team member
participates in the company Scrum of Scrums meeting to inform
other teams what the team is working with and ask if any team
needs any help.
Development teams are always obliged to inform immediately when
they are aware that they need support to avoid situations where
critical support is needed today for something that was already
known a month ago. Hold public demos to present the achievements
of the team at least once a month. After each cycle look back and