(By Michael James @ ScrumAlliance.org)
An adequate ScrumMaster can handle two or three teams at a time. If you’re content to limit your role to organizing meetings, enforcing timeboxes, and responding to the impediments people explicitly report, you can get by with part time attention to this role. The team will probably still exceed the baseline, pre-Scrum expectation at your organization, and probably nothing catastrophic will happen.
But if you can envision a team that has a great time accomplishing things you didn’t previously consider possible, within a transformed organization — consider being a great ScrumMaster.
A great ScrumMaster can handle one team at a time.
We recommend one dedicated ScrumMaster per team of about seven, especially when starting out.
If you haven’t discovered all the work there is to do, tune in to your Product Owner, your team, your team’s engineering practices, and the organization outside your team. While there’s no single prescription, I’ve outlined some things I’ve seen ScrumMasters overlook.
How is my Product Owner doing?
You improve the Product Owner’s effectiveness by helping maintain the Product Backlog and release plan. (Note that only the Product Owner may prioritize the backlog.)
__ Is the Product Backlog prioritized according to his/her latest thinking?
__ Are all the requirements and desirements from all stakeholders for the product captured in the backlog? Remember the backlog is emergent.
__ Is the Product Backlog a manageable size? To maintain a manageable number of items, keep things more granular towards the top, with general epics at the bottom. It’s counterproductive to overanalyze too far past the top of the Product Backlog. Your requirements will change in an ongoing conversation between the developing product and the stakeholders/customers.
__ Could any requirements (especially those near the top of the Product Backlog) be better expressed as independent, negotiable, valuable, estimable, small, and testable user stories?
__ Have you educated your Product Owner about technical debt and how to avoid it? One piece of the puzzle may be adding automated test and refactoring to the definition of “done” for each backlog item.
__ Is the backlog an information radiator, clearly visible to all stakeholders?
__ If you’re using an automated tool for backlog management, is it actually working for you? Automated management tools introduce the danger of becoming information refrigerators without active radiation from the ScrumMaster.
__ Can you help radiate by showing everyone printouts?
__ Can you help radiate by creating big visible charts?
__ Have you helped your Product Owner organize backlog items into appropriate releases (e.g., front burner, back burner, fridge)?
__ Do all stakeholders (including the team) know whether the release plan still matches reality, based on the current velocity (e.g., story points per Sprint)?
__ Did your Product Owner adjust the release plan after the last Sprint Review Meeting? The minority of Product Owners who ship adequately tested products on time replan the release every Sprint, usually deferring some work for future releases as more important work is discovered. You might try showing everyone the Mike Cohn-style Product/Release Burndown Charts after the items have been acknowledged as “done” during every Sprint Review Meeting. This allows early discovery of scope/schedule drift.
How is my team doing?
__ Are team members spending most of their time in the state of flow? Some characteristics of this state (from Flow: The Psychology of Optimal Experience by Mihaly Csikszentmihalyi): Clear goals (expectations and rules are discernible and goals are attainable and align appropriately with one’s skill set and abilities); Concentrating and focusing, a high degree of concentration on a limited field of attention; A loss of the feeling of self-consciousness, the merging of action and awareness; Distorted sense of time – one’s subjective experience of time is altered; Direct and immediate feedback (successes and failures in the course of the activity are apparent, so that behavior can be adjusted as needed); Balance between ability level and challenge (the activity is neither too easy nor too difficult); A sense of personal control over the situation or activity; The activity is intrinsically rewarding, so there is an effortlessness of action.
__ Do team members seem to like each other, goof off together, and celebrate each other’s success?
__ Do team members hold each other accountable to high standards, and challenge each other to grow?
__ Are there issues/opportunities the team isn’t discussing because they’re too uncomfortable? See Crucial Conversations: Tools for Talking When Stakes are High. Or consider enlisting a professional facilitator who can make uncomfortable conversations more comfortable.
__ Have you tried a variety of formats and locations for Sprint Retrospective Meetings? See Agile Retrospectives: Making Good Teams Great (Esther Derby/Diana Larsen) for some ideas.
__ Has the team kept focus on acceptance criteria? Perhaps you should conduct a mid-Sprint checkup to re-review the acceptance criteria of the product backlog items committed for this Sprint.
__ Does the Sprint Backlog reflect what the team is actually doing? Interruptions and distractions that don’t contribute to Sprint goals are impediments.
__ Are your team’s task estimates and/or your taskboard up to date?
__ Are the team self-management artifacts (taskboard, Sprint Burndown Chart, etc.) visible to the team, convenient for the team to use?
__ Are the team self-management artifacts adequately protected from micromanagers?
__ Do team members volunteer for tasks?
__ Are technical debt repayment items (to address issues sapping your team’s velocity) captured in the backlog, or otherwise communicated with the Product Owner?
__ Are team members leaving their job titles outside the team room?
__ Does the entire team consider itself collectively responsible for testing, user documentation, etc.?
How are our engineering practices doing?
__ Does your system in development have a “push to test” button so that anyone (same team or different team) can conveniently detect when they’ve broken it? Typically this is achieved through the xUnit framework (JUnit, NUnit, etc.).
__ Do you have an appropriate balance between automated end-to-end system tests (a.k.a. “functional tests”) and automated unit tests?
__ Is the team writing both system “functional” tests and unit tests in the same language as the system they’re developing (rather than using proprietary scripting languages or capture playback tools only a subset of the team knows how to maintain)? It’s possible.
__ Has your team discovered the useful gray area between system tests and unit tests?
__ Does a continuous integration server automatically sound an alarm within an hour (or minutes) of someone causing a regression failure? (“Daily builds are for wimps.” — Kent Beck)
__ Do all tests roll up into the continuous integration server result?
__ Have team members discovered the joy of continuous design and merciless refactoring, as an alternative to Big Design Up Front? Refactoring has a strict definition: changing the internal structure of a system without changing its external behavior. Refactoring should occur several times per hour, whenever there is duplicate code, complex conditional logic (visible by excess indenting or long methods), poorly named identifiers, excessive coupling between objects, excess responsibility in one object, etc. Refactoring with confidence is practical with automated test coverage. Holes in test coverage and deferred refactoring are cancers called technical debt.
__ Does your definition of “done” for each functional Product Backlog Item include full automated test coverage and refactoring? You are unlikely to build a potentially-shippable products every Sprint without learning eXtreme Programming practices (as described by Kent Beck, Ron Jeffries, etc.).
__ Are team members pair programming most of the time? Pair programming can dramatically improve code maintainability and reduces bug rates. But it challenges people’s boundaries and sometimes seems to take longer (if we put quantity over quality). Rather than force people to do this, lead by example by initiating paired workdays with team members. Some of them will start to prefer working this way.
How is the organization doing?
__ Is the appropriate amount of inter-team coordination happening? Scrum of Scrums is only one way to achieve this. Also consider sending ambassadors to other teams’ standups.
__ Is the inter-team coordination done by the people with their hands dirty in the work, as recommended?
__ Are your ScrumMasters meeting with each other, working the organizational impediments list?
__ When appropriate, are the organizational impediments pasted to the wall of the development director’s office? Can the cost be quantified in dollars, lost time to market, lost quality, or lost customer opportunities? (But remember Ken Schwaber’s discovery: “A dead ScrumMaster is a useless ScrumMaster.”)
__ Is your organization one of the few with career paths compatible with the collective goals of your teams? Answer “no” if there’s a career incentive to do programming or architecture work at the expense of testing, test automation, or user documentation.
__ Are you helping to create a learning organization?
__ Has your organization been recognized by the trade press or other independent sources as one of the best places to work or a leader in your industry?