Scrum of Scrums Manages Cross-Team Commitments

Scrum of Scrums Facilitates Coordination across Teams

Agile Scrum teams are generally organized around projects or core capabilities, where teams support a set of products that serve a common business purpose. When Scrum teams are organized around core capabilities, project initiatives often require deliverables from multiple capabilities. Even Scrum teams specifically organized to deliver a single project can find themselves in need of functionality built by another Scrum team.

Almost every Scrum team in a company large enough to form multiple Scrum teams has cross-team requirements, but very few companies take advantage of Scrum of Scrums. With a strong commitment to the spirit of cooperation and a little organization, cross-team product or project deliverables can easily be managed through the Scrum of Scrums concept.

The Scrum Alliance and Agile Alliance both talk about the Scrum of Scrums technique, but they recommend holding this coordination meeting every day. We think that’s overkill. We think holding a well-organized Scrum of Scrums every other week is good enough. For those who practice two-week sprints, hold the meeting on the off week from Sprint Planning.

Start with a Plan

Every Scrum Team needs to plan. If your Scrum team is not release planning or identifying quarterly deliverable goals, then start today. Before you jump up and down and tell me you can’t plan because you’re agile, cool your jets. I’m not saying you need a 500 line Microsoft Project Plan; I’m saying you need deliverable milestones by Epic. Why? So, you can identify when you need product deliverables completed to stay on schedule.

If you don’t know how to plan for Agile, read Chapter 2 of the GSD Scrum Handbook: GSD Gold Project Planning.

Once you know what you need and when you need it, then you can approach your sister Scrum teams and negotiate delivery dates.

Meet Regularly to Stay on Schedule

Once you have delivery commitments, ensure all Scrum teams stay on schedule by meeting once each Sprint. Remember that not all Scrum teams are on the same Sprint cadence, so be specific about due dates. Give your sister Scrum teams plenty of lead time to get your needs on their Backlog.

Use the Scrum of Scrums meeting time to ensure the right Stories get brought into the right Sprints.

Who runs the Scrum of Scrums?

Depending on the formality of company processes, the scope of the project and the Scrum team structure, the Scrum of Scrums can be chaired by any one of many job titles. With more formal team structures, these meetings may be led by the Program Manager or Project Manager or Product Manager. With less formal teams, the Scrum Master who needs the external deliverables may take the lead.

What Happens at the Scrum of Scrums?

Keep the Scrum of Scrums to a half hour meeting.

Focus only on cross-functional deliverable dependencies:

  1. Start the meeting with a brief review the upcoming quarterly or release milestones.
  2. Verify that the Stories identified for completion in the previous Sprint were completed.
  3. Identify Stories for completion in next Sprint. Obtain commitment from sister Scrum Teams.

What the meeting IS: a meeting about dependencies, shared milestones and issues.
What the meeting IS NOT: a giant Standup or project status meeting.

When your project or product requires cross-team coordination, taking advantage of Scrum of Scrums can keep everyone focused on the right work at the right time.

I’d love to hear about your successful use of the process,

Cynthia Kahn

Cynthia Kahn

Cynthia Kahn
CynthiaK@gsd.guru  503.799.5500

 

read more

We are Agile. We are Not Perfect.

Every Team Practices Agile Differently

People take time off. I’m an Agile Scrum Master and Coach to a new team in their third sprint. Newbies. I fretted when I realized that I had a mandatory 2-day class scheduled on the same days as my upcoming Retrospective and Sprint Planning sessions.

At the first Retrospective, the team agreed that they really liked Scrum. At the second Retrospective, they felt like they were getting the hang of it. So, I asked the team if they wanted to run Retrospective on their own, because I knew they would not want to give up two days of their Sprint.

After a short discussion, the team decided to handle it themselves. Canceling Retrospective and holding Sprint Planning on Day 1 of the next Sprint was not even discussed as an option.

I got a little teary-eyed when I realized that sometime in the last 6 weeks my team became self-managing.

For the third Retrospective, they truly own it!

Do I think the team will conduct Retrospective and Sprint Planning with the same rigor as when I run it? Not really, but I am excited to see the result anyway.

Teams Learn by Doing

As you know, shifting from more traditional methods to Scrum and adopting an Agile Mindset takes practice. Scrum is a different routine and requires a higher level of commitment than many teams are used to. The change in habits and thought processes comes from experiencing what it’s like to Sprint, accepting mistakes as inevitable and reinforcing through example.

In the beginning:

  • My team didn’t even know what Stories to write.
  • The team’s first Stories were not really Stories and they required extensive grooming. (They still require grooming.)
  • A couple team members’ Standup attendance was spotty, until they began to see the results of daily focus on getting work done.
  • Not all Stories closed, because the process was new and the team needed to understand about relative sizing, Story Points and Velocity through their involvement in actual Sprints.

Experience provides context. Reinforcement creates good habits.  

Every Team Practices Scrum in their Own Way

As Scrum Masters and Coaches, we not only need to understand Scrum and how to effectively communicate its principles, we need to recognize the team needs the freedom to practice Scrum in the way that produces the best results.

Scrum prescribes 4 formal events for inspection and adaptation:

  1. Sprint Planning
  2. Daily Scrum (Standup)
  3. Sprint Review (Demos)
  4. Sprint Retrospective

As a professional with experience on multiple Scrum teams, I have seen teams within the same company practice Scrum differently. This happens even if all the teams receive training and coaching from the same Coach. Even timing of events can vary.

It’s a good thing for the team to take ownership of the way they practice Scrum. Ownership enforces accountability.

It’s OK if it’s not perfect.
How do you know if good is good enough?

Ask these 2 important questions:

  1. Is the team able to predict and meet it’s time-boxed Sprint commitments?
  2. If team size remains constant, is Velocity averaging out?

These two factors are crucial to delivering projects on time.

If you answered “Yes” or “Most of the time” to both questions, your team is doing well.
If you answered “No” to both questions, brainstorm improvements at Retrospective.

It’s not about perfection.
It’s about Getting Stuff Done (GSD).

What are your experiences?

Cynthia Kahn

Cynthia Kahn
CynthiaK@gsd.guru  503.799.5500

 

read more

Why Every Story should have Acceptance Criteria

Better Understand the Purpose of Story and Acceptance Criteria

Some who practice scrum believe that acceptance criteria are optional. Others only write a one sentence summary and don’t even bother writing story requirements. These practices could be a recipe for disaster, because developers may not understand what to develop and testers may not know what to test.

At GSD Mindset, we teach that acceptance criteria are mandatory, and we spend lots of time helping those new to scrum learn how to write stories. The story describes the requirement for that next slice of functionality the team needs to build. The acceptance criteria describe how the product owner and team know that the functionality works; they also describe what happens when something goes wrong.

If story content so profoundly impacts the team’s ability to produce quality work, then why do so many teams write crappy stories? We get that it takes time to think through and document the specific functional requirement, plus also to think through how to tell that the function works. We get it that most teams write their stories the night before or the morning of Story Grooming. We get it: your team is busy.

How much busier does the team become when stories take too long to close? How much busier does the team become after they build the wrong functionality and they have to rewrite it? How much busier does the team become when the project gets behind schedule?

After high level design and Epic breakdown, writing good stories is one of the most important activities the team performs. Taking the time to write a clear, concise story with clear, concise acceptance criteria can be one of the most important predictors of green project status and excellent quality.

How Do You Write a Good Story?

The Story format is simple:

As a <user role>
I want <to perform some function>
So that I can <achieve some goal/benefit/value>

When you sit down to write a story, think about who will be using the functionality, even if the user is another automated process. From the user perspective, visualize what function the user will be performing and why this slice of functionality is important.

For example, think about the customer of a shopping website. If the requirement is to build the first slice of a search tool, think about how the customer wants to search. Suppose research shows that most customers are brand conscious. Then write the first slice to search by brand:

As a customer of this shopping site,
I want to enter my favorite brand name
So I can see easily see all the products available for sale and quickly browse the list.

The requirement for this slice of functionality is clear. The reader understands what the customer wants to do and why: Because they came to the website with a specific brand in mind.

Yes, there are other ways customers search: by price or clothing type or gender, etc. But agile scrum stories only describe a slice of functionality. Every one of those other search parameters should be described in separate stories.

The acceptance criteria format is simple too:

Given that <I am able to perform the new function>
When <I complete the function>
Then <something happens to show success/failure>

How does the tester know that the brand search is working?

Given that the customer enters a brand name,
When the customer clicks to search,
Then the website returns the list of clothing in stock for that brand and displays a list that includes: small image, product name and price.

What does the website do if there is no clothing in stock for the brand?

Given that the customer enters a brand name,
When the customer clicks to search,
If there is nothing in stock for the brand, the website returns a message that includes the search parameter and offers the customer options to search for similar brands (e.g., people who search for A also search for B).

The effort to write a complete story that clearly describes required functionality and what to look for when testing does not really take much more time than writing a crappy, incomplete story. If your team is not writing stories complete with acceptance criteria, I urge you to try writing complete stories for at least 3 sprints.

I’ll bet you love the results!

Cynthia Kahn

Cynthia Kahn
CynthiaK@gsd.guru  503.799.5500

read more

Techniques to Increase Sprint Velocity

Try Applying these 3 Techniques to Increase Sprint Velocity

In agile scrum, we only count closed stories when we calculate velocity. Stories have only 2 statuses at the end of the sprint: 0% or 100% complete. No partial credit for incomplete stories.

Many teams refuse to accept this fact. Scrum does not give partial credit for the simple reason that incomplete stories cannot be delivered to the customer, so they have no value. Because priorities can change at the speed of business, incomplete stories may not rank high enough to be prioritized for the next sprint. If that code was checked in, the code changes for those partially finished stories have to be backed out, which causes even more work that adds no value.

We have found the following 3 techniques help the team close more stories, which improves burndown and results in increased velocity:

  1. Write smaller stories
  2. Ask when story will close
  3. Adopt shared test mindset

Write Smaller Stories

Do your developers pick up stories at the beginning of the sprint and work on the same set of stories for the entire sprint? Does your burndown chart look more like a plateau with a cliff at the end? If this frequently happens with your scrum team, then your stories are probably too large.

Look at your backlog. How many 1 and 2 point stories has your team written? None? Are they all 3 or 5 or even 8 points? If you answered yes, then streamline your approach to story writing.

Remember that a story performs a single function. Take a serious look the slice of functionality defined in your larger story requirements. If your stories describe requirements for multiple, yet related functions, then divide and conquer.

Ask When Story Will Close

At daily standup, the development team answers the following questions:

  • What did I do yesterday?
  • What will I do today to meet the sprint goal?
  • Do I have any impediments?

To keep the eye on the prize and focus on closing the story, we suggest you ask an additional question every day when you discuss the status of every story:

  • When do I think this story will close?

The answer to this question provides insight into the true status of the story. If you don’t like the answer, immediately follow up with: Why? The answer to these two questions help identify the proper next steps, which could include clarify requirements, get help from tech lead or pair the developer with another programmer.

One of the pillars of scrum is transparency. Be honest with each other. Ensure stories that languish get the attention that they need to close.

Adopt Shared Test Mindset

To produce quality products, we recommend scrum teams take a 3-pronged approach to testing:

  • Test driven development
  • Write QA tests when the Story is picked up
  • It’s everyone’s responsibility to test  

If your development team does not have automated testing goals, add them to your team’s contract. Every time you add new functionality to a program, apply the iterative concept of Test Driven Development (TDD): write a failing automated test first, then write the code so the test passes.  

We recommend getting testers immediately involved when the story is picked up for development. Early involvement by testers, who write test cases based on the acceptance criteria, avoids having those resources sitting around for half the sprint waiting to test. It also ensures the team is ready to test immediately after the story is code complete.    

Agile scrum holds the entire team responsible for completing the story. That means testing is everyone’s responsibility. If stories get backed up waiting for testers to test, other members of the team must pick up the slack to get all stuff done on time.

If your team successfully applies these techniques or other techniques that result in a smooth burndown and increased velocity, we’d love to hear them.
Do share.

Cynthia Kahn

Cynthia Kahn
CynthiaK@gsd.guru  503.799.5500

read more

Help Your Product Owner Prioritize Stories

Two Winning Techniques that Help Product Owners Set Priorities

We’ve all seen it.  The business provides a list of enhancements to a Product Owner. You, as Scrum Master, call a meeting to walk through the enhancements and try to facilitate prioritization.  What happens?  The Product Owner ranks all of the enhancements as high priority or must-haves.  And of course, if every priority is Number 1, there’s actually no priority at all.

I’ve tried a lot of techniques on the various teams I’ve worked on and have found these two work the best: Quadrant Chart and Story Mapping.

Quadrant Chart

My favorite quick-and-dirty prioritization method is the Quadrant Chart.  

It looks like this:

Notice how the Priority on the vertical axis is ranked Low to High, but the Complexity/Size on the horizontal axis is ranked High to Low.

This method is most useful when you have a long list of items you want to sort quickly and efficiently. You begin by stepping through your list of whatever it is you want to prioritize. In our case, Epics, Components, or Stories.  Start with the first item and work to the last.  Assign each two ranks.  For Priority, assign 1, 2, 3, 4 with 1 representing the least important and 4 having the highest priority. After you assign the priority repeat the ranking for the item on the basis of Complexity or Size. Again, use a scale of 1-2-3-4 with 1 representing the smallest/least complex and 4 representing the largest/most complex.

Now you have a list of Stories with two rankings each that you can plot on the quadrant.

It’s very easy to see that any Story that falls in the upper-right quadrant, High Priority and Low Complexity, is your best place to start.  This enables you to bring the highest value with the least amount of effort.  Who doesn’t like that?

Story Mapping

If you to try using a technique that requires more analysis, I suggest Story Mapping. This is similar to the old waterfall method of sequencing tasks, but with the added dimension of priority.  This method was introduced by Jeff Patton in 2005 and I highly recommend that you read his discussion on his Jeff Patton and Associates website.

Write your Epics on sticky notes and place them on the top of a decision box.

Now break the Epics into Components and write the Components on sticky notes. Place them in your decision box from left to right in order of use case sequence.

Finally, break the Components into Stories and place them in your decision box from left to right in order of use case sequence.  Here comes the cool part. At the same time, arrange the Stories from top to bottom based on importance. You can use the Quadrant Chart method to rank importance if you like.

When you finish, you’ll have a map of features that you can use to plan your Sprints. You move from left to right over time for your Sprints. Because the map also provides a top to bottom order of importance, you also have a lovely map of releases that provide increasing sophistication with each delivery. This is Alistair Cockburn’s concept of the Walking Skeleton.

So there you have it. Prioritizing is really pretty simple. All you need are a couple of tools and you can organize anything. If you want to investigate some other prioritizing methods there’s a great blog written by Daniel Zacarias who’s based in Lisbon. He describes 20 Product Prioritization Techniques. It’s a great resource.

Combine this with the GSD method for project planning and you can’t lose. See Chapter 2: GSD Gold Project Planning.

Gerri Slama Grove

 

Gerri Slama Grove
GerriG@gsd.guru

read more