Thursday, April 24, 2014

Charlotte APR 2014: Public Impediments

The following impediments were identified by the Charlotte CSM class this week.  Again, we may have dups, although that probably is an indicator of relatively higher occurrence.

  1. Business – IT not aligned
  2. Poor test practices
  3. Set date before project begins
  4. Over documentation
  5. Poor communication
  6. Unclear roles
  7. Lack of resources
  8. Disengaged customer
  9. Uncontrolled team member egos
  10. Lack of accountability
  11. Funding cut
  12. Cutting corners on testing
  13. Lack of risk management
  14. Changed mind about what you wanted
  15. External factors
  16. Hidden agenda from stakeholders
  17. Not understand critical path
  18. Too many managers
  19. Change in environment
  20. Stakeholder awareness & involvement
  21. No process
  22. No teamwork
  23. Clarity (lack of)
  24. Revert ways
  25. Process disagreements
  26. Missed requirements
  27. Over commitment — under achieving
  28. Lack of leadership
  29. Inflexibility // dates
  30. Unrealistic deadlines
  31. Market / customer
  32. Urgency, speed
  33. Unclear requirements
  34. Lack of communication
  35. No documentation
  36. Analysis paralysis
  37. Skills
I am not sure I fully understand (now) what each of these meant.  Also, maybe if I explored some, I might disagree that they are really impediments.  For example, if something just must get done by X date, that can just be reality (assuming it is indeed true that we *must get it done by that date).  Calling reality an impediment is just not helpful.

More generally, though, we have impediments until the team is the best Scrum team in the whole world.  Once you can accurately declare your team is the best, then by all means, please stop improving.

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, and 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 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 are potentially available 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 group doing ‘Innovation’ or ‘Change’, which now has about 75 people.
Let’s assume my ratios of BAU and Innovation people is roughly correct for now.  It provides enough hours to do the related BAU work (if 20% of their time is given to Innovation).  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. At least not as ‘pigs’, although they may work with the Scrum Teams some as chickens (in their 20% time).
We would group work into ‘Product Backlogs’ that have groupings of stuff that can be released quickly.  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 a Scrum Team).
Obviously, we can only support, with the Innovation people 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).  The Innovation people are 100% innovation…no meaningful BAU responsibilities.  They can ‘advise’ others on BAU work in their 20% time.
It may be that some lower priority projects will ‘require’ some BAU people to be involved. But a lower priority 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).  This will not be the case; this may represent a significant constraint on the number of inflight Innovation teams. So 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 accountability by Team. Each Scrum Team is focused on the 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.  The Innovation people look at that and then ‘self-organize’. They can modify the proposal.  Give the Innovation people a week to meet, discuss and change the proposed teams.  With the understanding that any person in a Team is 80% dedicated to that one Team, at least.  Then the 3 managers review the alterations and give final approval.  The group usually does a very good job.
Later we discover a few things, and realize we need to make some adjustments; 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 pause the existing project (or get it to release early) and start the higher value project. Before pausing, 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?’  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 they are about to put out.  They are clearly expected to release quickly, products of  high value and high quality.
So, when a Team has just released, the ET can give a different ‘assignment’ or ‘mission’.  The Team may make a case that they need to stay on Product 1 for the next release.  But the ET gets the final decision.
In this vision, the main jobs of the ET are two (for the innovation teams)
1. Fix impediments
2. Be decisive about priorities.
This 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 one of top priority.”