Saturday, April 12, 2014

Question: Advice to a beginning ScrumMaster

Virginia asks: “I am a beginning ScrumMaster in a tough situation.  I have some ideas, but I am unsure what to do.  And unsure what to do first.  What can you suggest?”

Answer:  I think this is a common problem.

But, in reality, there is no end of things that a ScrumMaster can do to help the team.

First, take what you already know about Scrum, and remind the Team what Scrum is.  And why….what the values and principles are.

This can be done in a thousand ways.  One example: Post the Agile Manifesto and the Agile
Principles in the Team room.  After each Daily Scrum, ask each member of the Team to take two minutes to explain something about one line or one item from the list.

You will be impressed how well they explain the agile ideas to each other.  And then, you can add an additional insight. Maybe something you think they could improve on.

Read or re-read Agile Project Management with Scrum by Schwaber to get lots of stories and ideas about how Scrum should work.

Second, get a better list of impediments.  Ok, let’s be honest — START a list, a public list.  Yes, of course collect the ones they tell you in the Daily Scrum and in the Retrospective.  Add the ones that you see.  Read this blog, and steal some impediments that apply to you and your team.

You want a list of the top 20 things to improve, broken down into actionable things, where you could see, smell, notice improvement in 2 weeks or less.  Yes, you often start with some epic impediments…but just start there…

An impediment is anything, ANYTHING, that is slowing down the Team. Example: Anything that stops a story, slows down the Team. People issues, technical issues, organizational issues, the weather, I need coffee, I need a dentist, we need a different culture, whatever. Whatever.

Ok, we have to discuss two things that happen universally in the Daily Scrum, at least at first.  They don’t divide the tasks into small pieces, and they talk vaguely about what they worked on, and do not focus on what was DONE (completed).  The tasks must be mostly in the 2-4 hour range.  And they must say whether or not it was completed. If a 4 hour task is not completed in one day, clearly there is some kind of ‘impediment’ (eg, I cannot estimate very well).

Then, they must give their biggest impediment. (What slowed them down the most.)  Time itself is not an impediment.

It might be: “I don’t know this area that well.”  Or: “The servers were down.”  Or: “Well, if the tests were automated, then I could have found the bad code faster.”  Or lots of other things.  Saying:

“None” is not an option.  Implying that ‘things are so good around here, that there is no way it could possibly get better’ is also not an option.  Things can always be better.

Also, you must give them a challenge.  Tell them: “We have to double the velocity, in a way that we believe, and not by working any harder.  So, what do we have to change to do that?  And imagine that anything could change. Anything. And that the managers will approve anything, if we can make a good case for it.”

For the Retrospective, see also Agile Retrospectives by Derby and Larsen for more ideas to uncover the real impediments. They have forgotten lots of impediments because they have become used to them, or they can’t imagine that it could be changed.

Third, aggressively attack the impediments.  Every day. Every hour.  Take the top one, and go after it. If you can’t fix it yourself, that is fine.  But get someone to.

I do not mean go crazy. Use some common sense. If the cost is greater than the benefit, than do solve it that way.  Sometimes you can only mitigate the impact. Etc, etc.  But still, every day and every hour, attack the top impediment.

Fourth, tell them.  Tell the right people what you will do, what you are doing, and what you have done.

Mostly, you tell the Team.

How?  In the Daily Scrum (you answer the questions, and tell them).  In the Retrospective.  And in other ways that make sense.

Why?  Well, not to brag as such.  But you need to know they care.  They want the ‘fix’ that you will give, are giving, did give them.  Also, once they know things are getting fixed, they will get more creative about talking about things you could fix.

Fifth, keep a list of ‘fixes installed.’  All the things you did, or got done, to make their lives better.
Why? So, when you are discouraged, you can look at the list and get some encouragement.  So, so when the wonder why you are not doing ‘real work’, you can remind them of your value.  So you can justify the managers why you deserve a raise.

Track the list, and make a reasonable guess as to how much of the improved velocity of the team is attributable to the fixed or mitigated impediments. Typically 100% is effectively attributable to you. 

Yes, Scrum itself did some (but you still take credit). Yes, the Team did some things, but honestly probably would have done very little without you, or would have done it very much later.  It does not matter that you did not do it ‘with your own hands’.  You made it happen, you were the key.  It does not matter than some improvements cost ‘extra’ money. The benefits were huge, and mostly would never have happened without you.

Do not slack for even one day.

The Team and the customers deserve everything you have to give.  And you too will be rewarded in ways hard to explain but very clear…by all the good things you make happen.

Sixth, to help you become a better ScrumMaster faster, start a ScrumMasters club with other SMs in your area.

Learn from each other. Maybe have a brown bag once a week, and present ideas and experiences to each other once per week over lunch.

That’s a start. There are many places and ways to learn.  As you act, you will discover more ways to learn, and more things to learn about.

Does that help?

Thursday, April 3, 2014

Organizing a small-ish company to do Scrum and ‘regular work’

Holly asks: “I am relatively new to this methodology, but I would say I would like to learn more about how resources are assigned to Scrum teams.  Resource allocation – do Sprint team members need to spend 100% of their time in a Scrum Team?  If so, how do we account for existing job responsibilities?”


Good question or questions.
In simple terms, we are dying from complexity.  So, we want to keep things as simple as possible, to help people become more productive.
This is what I am thinking from what I know so far of your situation.  Imagine that your company has 800 employees, but most are ‘in the field’.  So, you have 75 people who support ‘BAU’ (business as usual), who are not ‘in the field’ and so are also potentially available to support Innovation.  And, to some degree, do need to support Innovation.
So, for 125 of the BAU people, I would have a rule that they are 80% dedicated to BAU and each person can use up to 20% of their time to support ‘innovation’.
I would maybe move 25 of the current BAU people to an Innovation group, which would include other people already doing innovation (technology people, project managers, etc.).  Then we call this the group of people doing ‘Innovation’ or ‘Change’, which now has about 75 people.
Let’s assume my ratios of BAU and Innovation people is roughly factually correct for now.  For example, it provides enough hours to do the related BAU work (if 20% of their time is also given to Innovation).  But it still raises two questions:
(a) is this the optimum ratio?
(b) should the firm be investing more (or less) in Innovation?
These two questions should be of prime interest to the Exec Team.
Note that often the Innovation people are doing work to benefit the BAU people, directly or indirectly.
These are the two main groups.  Note that the innovation people include business people also.
I would form most of the people in Innovation into Scrum Teams.  But the BAU people are NOT part of the Scrum Teams.
And we would group work into ‘Product Backlogs’ that have groupings of stuff that can be released quickly.  And we get a limited number of ‘projects’ or product releases in flight at any one time. In simple terms, one project per Scrum Team (per 7 people in the Scrum Team).
Obviously, we can only support, with the Innovation people that we have, a limited number of product releases at any time (in any year).  Each Innovation person is 80% dedicated to one Team (but can advise others with 20% of their time).  And the Innovation people are 100% innovation…no BAU responsibilities.
It may be that some lower priority projects will ‘require’ some BAU people to be involved. But a lower prioity project can only start if ‘someone’ feels that they can get enough BAU support to be viable.  Or can get enough ‘business support’ elsewhere (within Innovation, via consultants, whatever).  And often this will not be the case. So that some projects will be blocked until higher priority projects complete, and ‘release’ certain BAU people.
So, X project may not be able to start.  The Exec Team can decide to hire people or not, to fix that impediment.  Or, we go to the next viable priority project.  (Remember that business information can get into a Team either from Innovation people (eg, product owners or BAs or whatever we call them) or from BAU people.
Why?  We need to be focused on getting things DONE, not on how much work is ‘in process’.  We need to be focused on clear accountabilities by Team. Each Scrum Team is focused on only the one next release.  (That means the release is much more likely to get done well and quickly.)
How to form the Teams?  Here is a good option.  Have 3 managers draft up a set of teams.  And let all the Innovation people look at that and then ‘self-organize’. They can modify the proposal.  Maybe give the people a week to meet and discuss and change the proposed teams.  With the understanding that any person in a Team is 80% dedicated to that one Team, at least.  And then the 3 managers get to review the alterations and give final approval.  But the group usually does a real good job.
Usually later we discover a few things, and realize we need to make some adjustments, but the Teams usually can manage that.
The real issue is when to start and stop ‘projects’.  Whenever we have a better project than one currently in flight, we need a way to start to pause the existing project (or get it to release early) and start the higher value project. Before pausing a project, we tell the related Team, and ask them ‘we want to ‘pause’ your project…can you release most of what you have now ‘real soon’?  How soon?’  And then adjust according to their advice.
Another issue is: when does the ET know that a Scrum Team is coming ‘free’?  I give the Scrum Teams the responsibility to ‘brag’ about a Release that they are about to put out.  And they are clearly expected to release quickly, and also to release high value and high quality products.
So, when a Team has just released, it is also a time when the ET can give the Team a different ‘assignment’ or ‘mission’.  The Team may make a case that the need to stay on Product1 for the next release.  But the ET gets the final decision.
So, in this vision, the main jobs of the ET are two (for the innovation teams)
1. Fix impediments
2. Be decisive about priorities.
This last includes….when a Team finishes a release, what do we give them next?
Given where we have come from, I suspect the Team will have to say (probably repeatedly for awhile): “We are only working on one and only one release at a time…the top priority one.”

Halifax: Public Impediment List

As some of you know, I am a strong proponent of aggressively attacking the impediments. And I think it starts with a good public impediment list.

So, as examples, here are the impediments identified by the class in Halifax.
  1. Team is working on too many things
  2. No prioritized backlog
  3. Uninvolved PO
  4. Keeping everyone in the loop (not)
  5. Complexity
  6. Lack of management attentiveness
  7. Acting on retrospective improvements
  8. PO not involved
  9. Lack of understanding
  10. Silo workers
  11. Lack of impediment list
  12. Lack of retrospective
  13. Increasing Tech Debt
  14. Not having vision from PO
  15. Managing people instead of work
  16. Lack of team spirit
  17. Managing interference
  18. Unmotivated
  19. Bottom down planning
  20. Too much useless chatter (from Mgmt, I think)
  21. Lack of early feedback
  22. No ending [to] project
  23. Not following process
  24. Conflicts (too much)
  25. Keeping Top 20 impediments
  26. Distributed team
  27. Lack of process
  28. Lack of management
  29. Communication
  30. Too many cooks
  31. Product knowledge gap
  32. Scope creep
  33. Not defining DOD
  34. Lack Buy-in
  35. Lack of process for Development Tasks
  36. Technology group (IT) support infrastructure
  37. Testing Time
  38. Bug fixing time
  39. Not having all Scrum activities
  40. Management available
  41. Lack of communication
  42. Poor planning
  43. No estimates (no velocity)