How to Manage Product Goals with Multiple Teams?

As I mentioned recently I’ve been studying scaled scrum and recently passed the scrum.org SPS exam. One of the key aspects to this is how to manage work between teams so it’s a topic I want to discuss in this post.

The Nexus Guide provides a really good introduction to scaling scrum (other frameworks are available). There are two aspectcs which I see as key. These are for every team to focus on a single Product Goal and to minimise dependencies between teams. I’m going to focus onthe former.

In scrum we build incrementally towards a Product Goal, we review our progress in the Sprint Review and share progress with stakeholders then discuss what we should do next. It’s this level of transparency which makes scrum so powerful, it minimises risk and ensures we’re building the right thing.

However, when you have multiple teams all working on a product things can get complicated, you often see different teams with different project delivery dates and things get very very messy.

How should a business share work between teams in a scrum environment? Photo by Startup Stock Photos on Pexels.com

Generally a product should have a single backlog and a single active product goal. This makes sense. After all a product should have one list of improvements and should be moving towards a single known state, however it’s surprising how many organisations have a backlog per team, rather than per product.

Next, all teams should work together to create an integrated increment of all their work each sprint. This may sound controversial or even impossible but let me explain.

If your two scrum teams are creating increments each sprint they can do this in isolation (in which case they’re creating to diverging versions of the product) or they can integrate into the same master version of the product as they go. The former is no better than the vast feature branches we all remember with nightmares. Instead the Definition of Done should including integrating their increments with all other teams before marking work as completed.

So why can’t two teams focus on two different Product Goals? The question is why should they? A Product Goal represents a future vision of the product which the team is working to create. Surely we can’t have two visions?

Instead we should have a roadmap of upcoming goals. What we expect the product to look like after phase 1, phase 2, phase 3 or whatever. Scrum teams don’t pursue two Product Goals at the same time in regular scrum so why would they have any more success with multiple teams? To ensure the best chance of delivering effectively all teams on the product should focus on turning the active Product Goal into reality before moving onto the next. They can do this by breaking down the work in to individual pieces of work with the fewest dependencies between them, delivering them and integrating before the end of each sprint.

Fewest dependencies… that seems like a future post!

Seriously though, Scrum.org has some great articles on this stuff. If you’ve not already I highly recommend reading The Nexus Guide if you are trying to use scrum to deliver a product with any more than one team.

The Chimp Paradox Book Review

I’ve done a LOT of scrum and agile posts recently. Time for something a little different.

I recently read The Chimp Paradox by Dr Steve Peters.

The Chimp Paradox

It’s an interesting book, especially if like me you like a little simplified physcology. Simply put Dr Peters has a model for explaining human brain functions which breaks us down to three constituent parts, the human, the chimp, and the computer.

The human represents the rational part of our mind. The computer our pre-programmed responses and habits. The chimp our fight or flight mechanism. He explains that when we feel threatened our chimp often wrestles control from our human. Much like you hear described in 5 Dysfunctions of a Team, Crucial Conversations, and other similar books which discuss safety. What I quite like about the chimp analogy is the recognition that our chimp has moods and a personality of its own. Personally I know I have a sulky and grumpy chimp!

It’s worth mentioning that Dr Peters had also written a related book called The Silent Guides which extends this model to children.

Definitely an interesting amateur physcology and personal development book. Nice and accessible if you’re trying to make your first steps into understanding the weirdness of other people’s (and your own) minds.

Have you read The Chimp Paradox? What did you think of it?

The Scaled Professional Scrum Exam

I recently took scrum.org’s Scaled Professional Scrum exam. Scaling scrum to work across multiple teams is a difficult and controversial topic with several different frameworks and organisations vying for dominance. Less, SAFe, and Nexus all offer courses and solutions to this difficult challenge. Personally I opted to take the Nexus exam because I’d already studied it while revising for my PSM-II (and I’d liked what I’d seen) and because I hold scrum.org’s approach to learning I’m very high regard.

There are courses out there you can attend (and I have no doubt that they’re of excellent standard) however personally I chose to self study. I read the Nexus Guide, worked my way through the resources section, and read the recommended book. I also used the Open Assessment on this website.

You should be aware that the questions on the Open Assessment are only a subset and are only a sample of what you’ll face in the real exam. The questions for real are more akin to the PSM-II test with real world scenarios and you being asked which is the best approach. As with the PSM-II it’s not a matter of all answers except one being wrong and you often have to work out which one (or multiple) answers are the best.

You should also be the exam is almost entirely Nexus focused (which I expect goes without saying)l don’t expect 80% Scrum with 20% Nexus. Every one of the 40 multiple choice questions will test your knowledge and understanding of developing a product with multiple scrum teams.

I didn’t find myself under any time pressure. You have an hour and it only took me about 40 minutes to answer and verify all the questions. Nowhere near the sort of time pressure you face with the PSM-III.

Overall a really interesting exam with interesting topics. Definitely not one for a scrum beginner. But if you’ve passed your PSM-I or PSPO-I exam and would like to look at how scrum.org recommend scaling up to multiple teams then well worth a look.

What do Developers Do While Testing Is Going On?

When teams adopt Scrum for the first time something I’m frequently asked is what various team members should be doing while X is going on. For example:

  • What should testers be doing while code is being written?
  • What should developers be doing while the code is being tested?

You can also see this when developers “move on to the next feature” while the existing work is being tested. This is a bad sign.

As engineers we want to feel busy. It’s very counterintuitive to us that us doing less work will help the team overall (read The Goal and The Phoenix Project if you don’t believe me). But, even accepting that what should developers do while testing is going on. Surely they can’t sit around doing nothing?

Should developers really do nothing while their code is being tested? Photo by Monstera on Pexels.com

The answer of course is a resounding “No!”

Scrum refers to “Developers” however it makes it very clear that a Developer in it’s context is anyone who actually builds the product. To quote the Scrum Guide “Developers are the people in the Scrum Team that are committed to creating any aspect of a usable Increment each Sprint.” This means that Developers, Testers, Data Engineers, UX Engineers, cloud engineers, and any other specialism or job titles you can think of are all Developers. In Scrum Developers are accountable for:

  • Creating a plan for the Sprint, the Sprint Backlog;
  • Instilling quality by adhering to a Definition of Done;
  • Adapting their plan each day toward the Sprint Goal; and,
  • Holding each other accountable as professionals

We don’t have Design -> Build -> Test phases within a Sprint, this is what I refer to as The Lock Complex. We don’t have specific people for particular tasks. Developers collaborate when designing features, they work together to build them, and they test them as a team. A tester can provide just as much insight when designing how a particular backlog item will be created as a software engineer and likewise someone who has a lot of programming knowledge will think of ways of testing functionality that a tester won’t. They may even be able to support the automation of these tests.

When you see Scrum Team members sitting back and explaining why it’s not their job to do a particular task on a Product Backlog Item it’s a warning sign.

However, there will always be time when someone getting involved with a specific task will slow down key people. When this happens we should look again at The Phoenix Project and The Goal to understand how to best utilise these people. We know from these two great books that if we have key people who are on the critical path to delivering the Sprint Goal then we must not do any PBIs which will create additional work for these bottlenecks. What we should aim to do instead is any work which improves our ability to do work. In a rough order of preference I advise:

  • Something which will contribute to the Sprint Goal but will not place extra stress on people on the critical path
  • Something which will take work off those key people (for example investing in test automation to limit our reliance on manual testers)
  • Anything which has been identified in retros to improve effectiveness/quality of the team which will not impact the Sprint Goal
  • Anything which will improve your personal effectiveness (such as L&D) without negatively impacting the Sprint Goal.

When Developers “start on the next piece” what they are doing is running ahead and preventing the key bottlenecked resource from engaging in the design process. This creates a vicious cycle because the most pressed skill areas even less consulted in the refinement stages. This leads to poorer estimates, less well scoped requirements, and even more pressure for those people during the upcoming Sprints. Instead, by taking some of the suggestions above the Developers who are not delivering the Sprint Goal can make life easier for the entire team resulting in higher quality and effectiveness for everyone.

What do you do when you’re not on the critical path? How do you support your colleagues or do you tend to move onto the next piece of work?

Managing Interuptions and Cancelling a Sprint

One of the more frequent questions I get about Scrum is how to manage interuptions within a Sprint. Interuptions and ad-hoc requests are a fact of life. Unless you’re working on a product which hasn’t launched yet there are going to be customer queries, and if you’ve not launched yet there’s a fair chance there will be questions from the sales and marketing teams or other stakeholders. There are a few options on how to deal with these. You can refuse to answer any query or request for help, or you can be the supportive colleague we all want to be. The real trick is how to balance these queries while still delivering the work the team is being paid to do.

In the past I have offered a few suggestions on how to approach this. What always strikes me though is how many teams either accept or push back on a request without understanding the impact it will have.

Should I support the business by answering quetions or deliver on the Sprint Goal? Photo by Robert Nagy on Pexels.com

Lets consider each piece of work which comes into the team as a new Product Backlog Item. This could be a support request or a question about how a particular piece of functionality works. As with all work it is the Product Owner who is ultimately resposible for maximising the value delivered by the team.

To do this we often need to pieces of information. What is the value this PBI delivers and how much effort will it entail. Now, there is no doubt that a level of pragmatism applies here. If the PBI is a quick email and won’t make any different apply the two minute rule and just do it. However, to avoid small task whiplash I recommend turning off email and IM notifications and replying to them in bulk.

Lets assume that a request for support is going to take more than 2 minutes. Perhaps the application is running slow in production. For the PO to make an informed decision he or she needs to understand what the impact is on the end user, are we talking a mild frustration (which could be looked at in the next sprint) or the system being rendered unusable. We also need to understand how long it will take to resolve. Remember relative sizing, is this likely to be more or less complex than the issue we looked at last week?

The first question which must be asked is “Can we respond to this request without jepodising our Sprint Goal?” If the answer is yes, then more often and not that’s exactly what the team should try and do. They should also use the Daily Scrum to continually reassess that assumption as the Sprint progresses.

However, lets say the team can’t help the business and meet the Sprint Goal. What should they do? Abandon the business in their time of need or give up on the Sprint Goal?

This is where the second question comes in, the urgency of the request. Lets go back to our example of poor performance in production:

  • This is a really big deal and needs to be looked at immediately
  • It’s a moderate issue, we should finish off the current Sprint Goal and then change priorities next sprint
  • The current Product Goal is more important and we don’t intend to look at this any time soon

I will just stress this again, this is the Product Owner’s decision, no one elses.

If the PO believes that whatever this support request is would deliver more value than hitting the Sprint Goal and they have agreed that the team can’t do both then this renders the Sprint Goal obsolete and the Sprint should be cancelled. The team should resolve whatever the issue is and then return to sprinting.

If the Product Owner decides to prioritise the work in a future Sprint (or not) then the work should be shown very clearly in a backlog. This is where transparency is key. Stakeholders grow frustrated when they request work and it vanishes into a black hole. By sharing exactly what the team is working on and seeing their work in the priority list stakeholders are able to engage with the PO to challenge priorities.

However the work is prioritised team members shouldn’t feel pressured into juggling both the Sprint Goal and the requests. That’s a great way to burn our engineers and put Sprint Goals at risk by hiding work in the gaps.

When one of the biggest challenge teams face is when the number of these ad-hoc requests means team sprints become disrupted over and over again. However, unless teams have a process in place when new work comes in then they will never stand a chance of maintaining sprints to continue to develop their product. When this process becomes embed and easy to apply it creates stability and prevents teams being pulled in different directions.

How do you manage disruptions? Do you cancel your Sprints when the goal becomes obsolete? Do you keep your backlog transparent to avoid stakeholder frustration – add a comment below or drop me a message on twitter.

The Scrum Values – Commitment

We’re on our last Scrum Value (and possibly the end of my Scrum walkthrough unless I think of any more topics to cover). This time it’s the turn of Commitment.

To help me describe the importance of the values and how they relate to day to day work I’ve used the questions Steve Trapp has posted in his excellent blog post. Under Commitment he asks:

  1. I always know what the sprint goal is and how my work supports it.
  2. I do everything I can to ensure we achieve the goals of the sprint.
  3. In my current team, I have never thought of taking a sick day to avoid going into work.
  4. I always arrive on time for the events, my colleagues never have to wait for me to start the event.
  5. I know what it means to say that an item is done, i.e. I know the criteria that meets our Definition of Done.

This shows very clearly how important Commitment is to Scrum Team members. We value people working to support the Sprint Goal, doing everything they can to achieve it, and not being dishonest with our team members (no matter how hungover we may be!).

It’s also about professionalism. Arriving on time to events and ensuring that work we deliver is complete and meets the Definition of Done.

The Scrum Guide itself even has the concept of Commitments. The Product Goal, The Sprint Goal, and the Definition of Done. These are promises we make that we will aim towards. Commitment as a Scrum Value reinforces that idea of deliverying what we set out to right down to the individual level.

Scrum Team members commit to a goal and do everything they can to achieve it. Photo by Nataliya Vaitkevich on Pexels.com

When I talk about commitment I think a lot about the book 5 Dysfunctions of a Team. In it Lencioni discusses the importance of creating safety in our teams (respect for others), how this makes people feel confident to engage in discussions and voice their opinions (openness and courage). If people don’t feel they have their chance to voice their points of view then they will not commit to a decision and will not hold each other accountable for the results. By valuing Courage, Openness, and Respect so highly the Scrum Framework is building an environment where team members can commit to a decision or Sprint Goal and will want to do what’s needed to achieve it. Commitment stops being about “going the extra mile” for the company and starts being about colleagues and teammates working together towards a shared goal. This is what commitment is about for me, not about “taking one for he team” and working yet another late night.

When Scrum Team members all commit to a goal they will often find a way to achieve it, even if the original plan which comes out of Sprint Planning turns out not to work. Team Members become determined to adapt and find a solution despite the inevitable challenges.

What does commitment mean to you? Do you think you need to be working in a team where you feel safe before you can commit to a goal? Let me know on Twitter or in the comments below.

Scrum Values – Courage

I’m working my way through the Scrum Values and explaining why each is so important to a Scrum Team. So far we’ve covered Focus, Respect, and Openness, today it’s Courage.

I think Courage is hard to define, as engineers we’re often courageous when picking up a new piece of work. We don’t always know how we’re going to solve a particular problem but we’re using to trusting in our own abilities and our support network to accept a task even when ambiguity and risk exists. There may be easier backlog items, ones which we know we’d be able to complete but we prioritise the most valuable, not the easiest.

Courage is a key component of any Scrum Team, even if it’s hard to define why. Photo by Marcelo Moreira on Pexels.com

Courage in my opinion manifests in a couple of ways. One of the responsibilities of any Scrum Developer is to hold each other accountable as professionals. This often isn’t easy, especially when the other developer is more experienced or senior than we are. If we believe that a particular course of action is the correct one it takes real bravery to speak up and make sure our point of view is heard. To understand why this is so important read 5 Dysfunctions of a Team!

It can also take courage to share our own weaknessess or concerns. But it’s this transparency which is so important for Scrum Teams to function effectively. If team members are afraid to share risks then they will most likely go ignored and the Sprint will fail.

Throughout this series on values I have referred to a blog post by Steve Trapps. He has posted a series of questions around the Scrum Values which can help you assess how strongly you live the values of scrum. For Courage his questions are:

  • I work on the next highest priority Product Backlog Item (I do not cherry pick the work I pick up in the Sprint)
  • If I see something that is wrong with what I’m being asked to do, I will say so.
  • I will question & reproach my team members if I feel that they are doing something wrong.
  • Regardless of the person talking, I will correct them if I believe that they are incorrect.
  • I will stand firm if I believe I am right, even if I’m in the minority within the group.

Do you think these are good questions to assess a team member’s courage? Do you believe you are courageous at work? Drop a comment below or contact me on social media to continue the conversation.

Q3 2021

It’s October, which means it’s the end of Q3 and beginning of Q4. Personally I work on a quarterly goals cycle so I want to share a few of my achievements throughout the last 3 months and share what I’m hoping to achieve in the last few months of 2021.

My goals for Q3 were:

  • Take 2021 Book Count to 70 – Done (I’ve read 78 books)
  • Pass AWS Architect Associate Exam – Done
  • Take  PSM-III Exam – Done (Passed)
  • Take PSD-I Exam – Done (Passed)
  • Host my CKD Site on AWS – Done (with a domain name, the site itself is still a work in progress)
  • Edit and Republish Donuts and Dragons – Done
  • Internal Work Goals 1 and 2 – Done
  • Get Weight Down to 215lbs – Fail (ok, this one didn’t go so well, I’m sat at 222lbs at the time of writing)

So what do I have in mind for Q4? I intend to:

  • Take 2021 Book Count to 100
  • Pass AWS Security Specialist Exam
  • Take  SPS Exam
  • Build a Lean Coffee Website
  • Publish a Short Story with the Donuts and Dragons Team
  • Paint my Lannister army of A Song of Ice and Fire miniatures
  • Paint my Warhammer 40k Salamanders
  • Finish the core pages of the CKD Site
  • Pages Get Weight Down to 215lbs (really this time)
  • To hit a financial goal I’ve set myself.

What are your goals for the rest of 2021? Have you got any new year’s resolutions you’ve not hit yet?

Scrum Values – Openness

I am writing about the Scrum Values and this week it’s the turn of Openness. Being open with each other and our stakeholders is key for the success of a Scrum Team. Scrum is built on Empirism which in turn has pillars of Transparency, Inspection, and Adaption. Without Openness there is no Transparency and the whole framework comes crashing down. Lets dive into this a little deeper to explain what I mean.

In Scrum we constantly inspect our progress, we do this at least once per day using our Daily Scrum within the Sprint and then again at each Sprint Review as we examine our progress against the Product Goal. The purpose of this is to detect any issues early and adapt our plan to ensure we can meet our goal despite the problems which arise. Transparency is vital to this inspection, if we do not make efforts to make our work and current challenges transparent then we will not be able to inspect or adapt. This puts the entire team’s long term goals at huge risk.

If we do not create transparency through openness then we will be unable to inspect and adapt.

As Scrum Team Members we must value Openness and Transparency. This allows our colleagues to support us, it also allows Stakeholders to engage and steer the team to providing true value for the customer. If we are not open with our work or our concerns then we will blunder into making mistakes which could have been avoided.

In previous posts I’ve referred to Steve Trapps’ excellent blog post about Scrum Values. In it he asks key questions which lets Scrum Team members assess their own levels of Openness, these are:

  • I do not shy away from telling difficult news to team members and stakeholders
  • I do not hide away difficult issues in the hope that they will sort themselves out.
  • If something / someone is annoying me I will address it / tell them.
  • My colleagues can judge what state of mind I’m in, I can share my feelings with my them.
  • I always say the true state of an item, and do not over/under play it.

How many of these questions can you truthfully answer yes? Are you building a safe environment so your colleagues can be open with you?

Look for Openness on your teams and evangalise it yourself, the results speak for themselves.

The Scrum Values – Respect

We’re working our way through the Scrum Values, the second value I want to talk about is Respect.

Last week I shared Steve Trapp’s blog post. In it he asked Scrum Team Members

  • I listen with equal intensity regardless of who is talking.
  • When listening to people I never talk over them.
  • I value everyone’s opinion equally.
  • I am never concerned who works on what item in the backlog.
  • I feel that my opinion is respected and that I have an equal say in the team.

Respect is key in a Scrum Team. A good team is diverse and brings together different people with a wide variety of backgrounds and experiences. People can only work effectively if they feel safe to share their own points of view. If you haven’t already I strongly recommend reading 5 Dysfunctions of a Team as a great fable about why this is so important.

If we want to work well as a team it’s important we can engage in constructive conflict without making people feel vulnerable and worried that their ideas will be ridiculed. We all need to take responsibility for creating a team where respect for each other is paramount.

Of all the Scrum Values this is the one I believe is the most important. Great teams can adapt and rise to meet challenges, however a great team cannot exist without mutual respect between the team members and between the team and it’s stakeholders. Reinforce respect and you’ll build a strong team who can achieve great things.

How do you nurture respect in your team? What do you feel when working in a respectful environment? Let me know in the comments below.