Wednesday 30 September 2015

Daily Scrum and the Three Questions of Doom

Oh yes, the Daily Scrum. That stand-up meeting that happens at the beginning of the day. It is a planning meeting. Not a status update. The Scrum Guide, in a rare moment of being prescriptive, even dictates the questions that should be asked in the meeting:

The Daily Scrum is a 15-minute time-boxed event for the Development Team to synchronize activities and create a plan for the next 24 hours. This is done by inspecting the work since the last Daily Scrum and forecasting the work that could be done before the next one. The Daily Scrum is held at the same time and place each day to reduce complexity. During the meeting, the Development Team members explain:
  • What did I do yesterday that helped the Development Team meet the Sprint Goal?
  • What will I do today to help the Development Team meet the Sprint Goal?
  • Do I see any impediment that prevents me or the Development Team from meeting the Sprint Goal?

So why do I call these the "questions of doom"?

Getting Beyond Mechanical Agile

Are the questions, themselves, the problem? Like a lot of things with Scrum, it is not the mechanics you need to look at. It is the surrounding culture you need to pay close attention to. So, by themselves, no, I do not think the questions are problematic. Let's take a look...

What did I do yesterday that helped the Development Team meet the Sprint Goal?

In a meeting about planning for the immediate future, looking back might seem like an odd thing to do. For me, understanding this question is a good indicator if someone "gets" agility or not. Scrum teams should be autonomous and self-organising, so it is important to talk about what you did because it may very well impact what someone else will do.

What will I do today to help the Development Team meet the Sprint Goal?

This, of course, is the question at the heart of daily planning. It is important to know this for many reasons:

  • Perhaps the work you are planning on doing has dependencies with other on-going tasks;
  • Perhaps the Product Owner wants you to focus on another higher-value item first (for any reason);
  • Maybe you need to go to your kid's school play in the evening and it is important for the team to realise you will deliver slightly less than usual.

Who knows? I could come up with 1001 reasons with it is important to know this information.

Do I see any impediment that prevents me or the Development Team from meeting the Sprint Goal?

I actually do not like the word "impediment". I'd prefer it if this question was something more like, "Have I learned anything that might prevent the Development Team from meeting the Sprint Goal?"

  • Over commitment in Story Points?
  • Overly complex dependencies between tasks?
  • Summer holiday you forgot to take into account during Sprint planning?

The potential list is endless.

So What's The Problem?

Whilst I do not like that these questions are somewhat prescribed in the Scrum Guide, you're gonna have to go a long way to tell me that they are not worthy. Of course the meeting itself is also worthy. So what's the problem? Why brand these "Three Questions of Doom"?

In short: ScrumMasters actually ask these questions. They should stop.

Have you been in a Daily Scrum where you felt the Daily Scrum was reporting meeting because the Scrum Master fired these questions at you? If you have been doing Scrum for a while, I bet you have at some point! In case I was not clear the first time, I will say it again: the Daily Scrum is a planning meeting. All too often these are becoming status updates and even worse reporting meetings (important cultural different between updating and reporting). If the team members feel they have to report to the ScrumMaster (or the Product Owner) there is something wrong. You might be successfully delivering a mechanical Scrum but you have some cultural problems that are going to hurt you in the long-run.

By actually pitching these questions at the team members, the ScrumMaster is most-definitely turning the Daily Scrum into a reporting environment.

So How Should We Run The Daily Scrum?

Well, there are plenty articles out there with some good tips. I think, in short, the culture of the meeting needs to be one of "let's come up with a plan for today" not "let's report on progress". The Three Questions of Doom are useful because they illicit the information required to perform daily planning. But they are also problematic if they are used as the structure for the meeting.

So:

  • talk as little as possible, but talk about everything that is important;
  • shake up the order of the meeting;
  • rotate who is facilitating the meeting;
  • remember your time-boxing;
  • the output should be a shared understanding of the plan for the day and that is all.

By keeping the meeting lively, informative and brief, your teammates will continue to show up. If they start to vote with their feet and skip the meeting you know you have a real cultural problem surrounding one of the most important planning meetings in Scrum! Treating the Daily Scrum as a reporting meeting is one of the common indicators that an organisation has not fully understood and adopted Scrum yet. In such an environment, sadly, it is all too easy for the inexperienced ScrumMaster to fall into the trap of establishing themselves as a manger rather than a facilitator; an important cultural difference in a framework of equals.

Thursday 24 September 2015

We Need To Talk About Scrum Nexus

Life is full of little mysteries:
  • Why do cats love boxes so much?
  • How do dolphins sleep?
  • Where did the missing footage from the Zapruder film go?
  • How on Earth should we scale Scrum?

Science and conspiracy has answers to all of these. Personally, I have a few questions about the last issue.

Scaled Scrum

There are multiple approaches to scaling agile projects "out there". I'm not going to talk about any of them in detail. But feel free to take 10 minutes to educate yourself by clicking the links below. You'll come back, right?

Back? OK.

I'm particularly interested in LeSS, SSwS and Nexus (and somewhat in the Spotify approach) because these are, in particular, approaches to scaling Scrum. Of course each has its ups and downs. Nexus, however, has some particularly down-y downs. They bother me.

Getting Down With Nexus

The Nexus Framework from Scrum.org

So. Nexus. This is the official approach to scaling Scrum from the nice folks at scrum.org. It only landed very recently so it is kinda late to the party. I get the feeling it is a somewhat rushed reaction to all the other approaches coming into use first. Why do I think this? Because of two gaping holes:

  • Nexus does not actually scale (very well).
  • It will kill the culture of your existing Scrum project.

Nexus is very workable because it is so simple. It takes all the same principles of Scrum and simply add some bits. No major overhaul. No demanding concepts in addition to Scrum. But these problems of scale and culture are big problems.

Scaling With Nexus

Why do I think Nexus does not scale very well? Simple. The authors of the framework say so themselves! Take a look at what it says on page 2 of the guide:

Nexus is a framework consisting of roles, events, artifacts, and techniques that bind and weave together the work of approximately three to nine Scrum Teams working on a single Product Backlog to build an Integrated Increment that meets a goal.

Three to nine teams. THREE. TO. NINE. So between 15 (bare minimum) and 81 (absolute maximum) developers. Not very scale-y. Spotify with its 1200 developers laughs in the face of Nexus.

Why does it not scale so well? Simple: take a look at the image above. See that "Nexus Integration Team"? There's your problem. This team is constructed from the Product Owner, the ScrumMaster and the Nexus Integration Team members, who may or may not be members of the Scrum teams. For me, it makes sense for the NIT members to also be representatives of the Scrum teams. But a combination of Brooks' and Conway's laws limit the size of the NIT to about 8 or 9.

I have yet to see anything official on the matter but I have heard rumour of Nexus+ as a means for bringing greater scale. A Nexus of Nexuses. Holy Moly. No.

Culture Vulture

The one is subtle. And little hard to explain to anyone who has never "done agile". But I'll give it a try.

Scrum teams are self-organising. This is a big deal. They work together to solve their problems as best as they can. The most "senior" team members humble themselves and the most "junior" have the chance to shine. Everyone pulls together and does their best using their skills. No specialists.

I call this the "egalitarian social contract" of Scrum.

You will not find any Scrum guide telling you that this is a feature of Scrum. It isa natural result of being self-organising (something which the guides will tell you to do). "I hate being in a team of equals" said no Scrum team member ever. This attitude to teamwork is something that is just expected of a Scrum environment with decent values.

Nexus kinda breaks this. Hard. And explicitly.

Go back to that guide again and take a look at page 5:

Members of the Nexus Integration Team may also work on the Scrum Teams in that Nexus, as appropriate and necessary. If this is the case, priority must be given to the work for the Nexus Integration Team. Membership in the Nexus Integration Team takes precedence over individual Scrum Team membership. This preference helps ensure that the work to resolve issues that affect many teams has priority.

Priority must be given to the work for the Nexus Integration Team. Priority. "Sorry guys, I need to do some stuff for the NIT. I'm not going to be able to help with backlog item X today." Not. Cool.

All That Bad?

If I am being honest, this is a little bit of nit-picking on my behalf. Scaling up to 81 is still more scale than the vast majority of development companies need to scale to. Cultural problems can always be tackled somehow. I guess my issue is that these problems were built in to the framework.

I'd love to see Nexus in action. I suspect it is so new that nobody is really doing it yet. Is anyone out their seriously wanting to give this a try? I hope so. Please shout if you are. I'm really curious to see it in action.

Wednesday 2 September 2015

Judas Priest Ate My ScrumMaster @ Write The Docs

This is the first of two blog posts I will write about Write The Docs Europe. I'll kick-off by writing about my presentation, but later I will write about my views of the event as a whole.

Background

I spoke at the Write The Docs Unconference in Berlin last year. At the time I talked about how Free Software projects emerge from an idea to success and some of the "laws" they abide by in order to get there. As part of that presentation I wanted to begin my personal journey of better-understanding the "laws" followed by tech writers. The subsequent workshops around this topic produced some interesting results for which the results can be read here.

In Prague I wanted to move from a "pull" to a "push" model and presented some of the laws that apply to software engineers (not just Free Software).

Presentation & Notes

  • Slide 2:
    • I come from the engineering perspective, not the tech writing perspective
    • I am here to learn and to improve my own working practices
  • Slide 3:
    • Sturgeon's Law
    • Really, "10% is where we add value"
  • Slide 4:
    • Management is very important in Free Software
    • See myself as a community manager, but many would not
    • I'm not a cat-herder, I focus more on "classical" management in Free Software
  • Slide 5:
    • Document writers are all just as individual as software engineers
    • Just like engineers, however, they share common problems < something I learned at Write The Docs Berlin
  • Slides 6 - 10:
    • Hopefully, self-explanitory
  • Slide 12:
    • Notice something about these laws of software engineering?
    • The context they were written about is software engineering... but really these laws have nothing to do with software engineering!
  • Slide 13:
    • Lehmann's 5th law: teaches us that all stakeholders in the development process (and this definitely includes tech writers) must continue to master the product for it to remain competitive
  • Slide 15:
    • I love Free Software and Open Source as concepts
    • But the names are engineering biased: "Free Software", "Open Source"
    • As these forms of licensing/development become the norm the terms will become irrelevant
    • When this happens, we must ensure that our focus is on Free/Open products, for which excellent documentation is crucial

Reaction