There are a lot of myths about Scrum and Agile in general.
The most commonly found both by googling and in reality are:
- Agile Teams do not plan
- There’s no documentation
in Agile development
- Agile development is not
predictable
- Agile Teams do whatever
they want
- BTW, Agile Teams do not
work hard, but just play around
- Agile is only for small companies developing web applications
Ever heard anyone saying that?
I bet you have.
However having the discussion about scaling Agile (and Scrum
in particular) got more and more attention, yet another myth emerged:
- When you scale Scrum to more teams, you handle dependencies and coordination among teams with Scrum of Scrums
I think there’s hardly anything more dangerous and harming
for both Scrum and large companies willing to adopt Agile SW development.
Actually dependencies are handled in Scrum by actually
eliminating or at least minimizing them. That is done in many dimensions and
here are 5 key things you cannot miss:
- First of all development
teams must be cross-functional, meaning that they have all needed
competencies to transform a product backlog item in a potentially
shippable product increment. This is complemented by adopting a collective
code ownership, where anybody is allowed to touch any line of code needed
to deliver a product increment at the end of the sprint: otherwise you constrain
your team with a lot of dependencies from outside
- Backlog items shall be in
the form of end-to-end User Stories, cutting the system through all layers
from front-end to the back-end to produce a potentially shippable piece of
function: a component based development produces instead a hell of
dependencies
- User Stories shall be
INVEST, where the I stands Independent, so that they are easier to work
- In a scaled Scrum approach
the Product Owner Team develops a unique Product Backlog to feed all
development teams and ensure that they are as much independent as possible
so that they can move fast with little need to coordinate with each other
- Scrum teams plan together
so that residual dependencies are detected as early as possible
If all that is implemented and being impossible to foresee
everything in advance, you will use the Scrum of Scrum as a mechanism to manage
coordination needs which pop up during the sprint.
It’s not a meeting of Scrum Masters to report some kind of
status, but a possibility for a person who got a problem to rise up her hand
and get fast help and support from other teams.
BTW, if you think about, the acronym is SOS.
So it is not meant as the umpteenth coordination structure,
but more as an emergency procedure to adopt when some team has put or is going
to put something on some other team’s feet.
Otherwise, if any possible effort to minimize or at least reduce
dependencies in advance is not taken, you will put so much overhead on your
teams, that will basically kill their velocity and productivity.
On the other hand, if you’re not able to implement real
Scrum with only one team, how can you succeed in scaling it?
You’d better run your projects in a traditional way!
Have you heard anywhere from the world that the concept "scrum of scrums" has been applied successfully? I have not.
ReplyDeleteDefinitely not in the way I saw it normally used and implemented, i.e. as a coordination structure. I found it useful instead as an emergency procedure to give quick answers to popped-up issues.
ReplyDeleteIts a nice post such a nice informative blog thank you so much for sharing this. post on scrum.
ReplyDelete