How work can be – Stories of agile & lean

Every once in a while I realise that others aren’t aware of certain features in Retromat. These feature are not exactly hidden, but they are not super obvious either. I’d like to share them with you, just in case there’s one you didn’t know.

0. Step through all activities in a phase with the arrows

For completeness sake, let’s start with the most obvious one. I won’t even count these as a trick: The arrows:

Because in a random plan the activtities will not work with each other, the arrows let you step through all activities in a given phase. Pick activities that fit with each other. If you’re a beginner, try this plan.

1. Click on a phase’s name to see all its activities

The arrows are too slow? You want to quickly scan all activities in a phase? Just click the phase’s name.

2. Check out a single activity by clicking on its ID

Let’s say you want to share a single activity with a colleague: Click on its ID and voila 🙂

3. Click those buttons!

Noticed the row of buttons?

This one generates a new random plan:

It’s supposed to be a wheel of fortune, in case you were wondering.

And then there’s the search buttons:

The left-hand button is just there to be a visible way to search for a specific ID.

The right-hand button lets you search for words and IDs. The search algorithm looks at titles, summaries and descriptions. If you enter more than one word any one of them is enough for a match. It’s an “or” search, not an “and” search.

As soon as you enter a number as part of your search term, you’ll get the activity of the same ID among the search results.

I’ve been wanting to kick out the ID search button for years but have never really gotten around to it. It’s not really needed.

4. Change the ID to get the activities into a custom order

From the moment I first conceived Retromat I wanted plans to be easily shareable. That’s why each plan has an ID. And you can change the order of activities by changing the ID around. You can change the ID either in the browser’s URL field or by clicking into the Plan ID:

This comes in really handy, when you want to break out of the 5 phases. You see, Retromat is somewhat limited in that each activity can only belong to one phase, although many of them arguably fit into several. If you want to repurpose an activity for a different phase than I sorted it in, go ahead, change the IDs around and press enter!

5. Something completely different – An Easter Egg

There’s another way to forgo phases: Did you know that Retromat has a secret phase called “Something completely different”? You’ve got a 1 in 25 chance of getting a plan with just 1 single activity – one from this extra phase.

There are a lot suggestions for Retromat that I can’t include. Sometimes because the strict 5-phases format can’t accommodate them. One example: Anja Schwarzpaul developed the following activities for “the new Phase 2” that I call “Phase 0” aka “the phase in which you check what happened to last retro’s action items”. So far, there are very few activities for this new phase described out there. That’s why I’m extra excited to have Anja’s permission to share these two with you!

Her reason for coming up with these?

I feel it’s important to analyze successful or completed experiments in at least as much detail as failed or incomplete ones. Success doesn’t just happen. There’s always a reason. Real life success example in my team: The phrasing was clear and concise, leaving little room for misunderstandings and making the item easy to follow.

And here are Anja’s activities in her own words:

Flow Chart

Use a good old fashioned flow chart to dissect a single action item. (Probably scales to 2 or 3 actions). Duration is flexible and largely depends on the number of questions.

Photo courtesy of Anja Schwarzpaul

From a start node, draw an arrow to a decision node labeled “Done?”or “Success?”. Now branch to “yes” and “no” paths along one or more boxes containing questions to be asked. Near the end of the diagram, merge both branches into a final box “Anything else?” and end in a final state.
Follow the path that the team indicates. If the result is ambiguous, use the “no” branch until just before the merge, then the “yes” branch.

You can either display the entire diagram at once or draw it as you go along. I outlined the start and decision nodes with a marker and sketched everything else with a pencil, in real time outlining only the path we used. This allows for adapting the question(s) to the situation.

Possible Questions:

Why did / didn’t it work?

How did / didn’t it work?

What could we have done to make it work?

What does it do for us as a team?

Is this something we can use / try again…

on a regular basis?

in a different context?

at some point in the future? (for non-continuous activities, e.g. release estimation)

Improve the Improvement

Suitable for 2 or more action items. Duration depends on the number of items and questions.

Write each hypothesis / item / experiment on a large-ish index card or sticky note. Lay them out on the table or stick them to a wall or board. Let the team rank them from most to least successful, top to bottom. Now ask a few strong questions to help the team analyze the outcome of the experiments. The goal is to get some general ideas of why and how experiments work, and put these ideas to use during the “decide what to do” stage, thus improving the improvement.

Possible Questions: What would have had to happen in order to…

make the least successful item come out on top?

reverse the order?

make all items an equal success?

move item <no.> move up a spot?

And maybe:

Under which circumstances would you not be able to rank the results?

How do you feel about the success to priority ratio?

If I ever have more time (fat chance…) I’ll figure out a good UI to include the new phase in Retromat. Until then, thank you Anja for sharing these with us!

Have you ever had to broach a difficult topic? You prepare, you make notes and you head for a 1:1. You start by talking about various smaller topics. You avoid the big fat whopper of a topic that you’ve been worrying about. Time is ticking by. You’re stalling. Then at the end of the – inconsequential – conversation, there’s this little pause when you would usually leave and you have that inner debate on whether to mention THE TOPIC or not.

Well, I can’t help you with plucking up the courage to mention the topic. But I can help you if you’re on the other side of this potential conversation. That is, I’ve got advice for you if you would you like to hear about a serious problem sooner rather than later.

Oh, and yes, “And what else?“ is a better phrase to use than “Is there anything else?” It’s open instead of closed and errs on the side of implying that there is indeed something. So, sharing is more likely to happen 🙂

It doesn’t just work in this particular situation. “And what else?” is a great phrase in general, because it gives others the opportunity to reflect and dig a little deeper than the top of their heads. I picked up in an excellent workshop on solution-focused coaching by Sinnvoll Führen.

There are a lot suggestions for Retromat that I can’t include. Most commonly I decline because an activity is a variation of one that’s already in – just like the following one. I thought it was a fun one (gotta keep a sense of humour in trying times …) and asked its creator Leszek Blacha to publish it here so that you, dear readers, might use it. Those of you outside of the US, anyway.

Trump, sad, glad

This is a variation of “Mad, Sad, Glad” based on a certain Mr. Trump who has a distinct way of talking. Therefore the new categories are “Total disaster”, “So sad”, and “Great (again)”.

Let us know in the comments whether you got laughs for that one. Thank you for sharing, Leszek!

Why would this rub me the wrong way? That nobody is pair programming? After all, I am indeed a huge fan of pairing up. I witness this practice’s many benefits every single day at work. But no, that’s not the point. My alarms went off because “lack of pair programming” was presented as an actual problem. It’s not.

Let me repeat that: As much as I love pair programming, not doing it is not a problem in and of itself. Rather, pair programming is a possible solution to a host of problems an organization might be having such as:

And depending on the actual underlying problem there are different solutions available, one of which could be pair programming.

Nobody who’s not already a convert will start pair programming just “because”. Instead go looking for the actual problem. Ask “So what?” That phrase is magical and you can use it repeatedly. Just like there’s the Five Whys, dig deeper with five “So what’s”:

“Our problem is that nobody’s pair programming!”
“So what? Why is that a problem?”
“Nobody knows anybody else’s code. It’s 1 system = 1 developer.”
“So what?”
“Whenever a developer is sick or on holiday development in their area comes to a screeching halt. And there’s always someone sick or on holiday. Makes us super slow to release. And I dread the day someone quits.”
“Well, that does seem like a pickle…”

Okay, it weren’t five “So what’s” because I suck at making up examples but you get the point.

This is not specific to agile practices either, though Agile folks have a reputation for dogmatism. Here’s a recent example from the field of web analytics: “We’ve got a huge problem: We can’t do cross-domain tracking.” Soooo …? What are the questions I want answers to and that we can’t answer because we lack this?

I’ve learned “So what?” in the context of Henrik Kniberg’s Cause-Effect-Diagrams and have since used it whenever I suspect that a “problem” someone presents is actually their (preferred) solution. It’s the same as with product features:

At the end of 2011 I wrote about what makes an agile mindset (in my opinion) and even made a fancy infographic about it:

It concentrates on how people think about their colleagues as humans vs. cogs; whether they have a growth vs. a fixed mindset; iterative product development vs. extensive planning and more. These are all still valid, but I can add another set of examples today.

The past few weeks I have often thought about how conversations changed at sipgate over the course of the years and why it is much easier and more fun to get things done than in the beginning. So here’s a list of behaviours and how they changed:

“It can’t be done!” -> “We have to take X into account”

In the beginning, many a discussion about potential features revolved around a central theme of what we can’t do. There seemed to be an awful lot of things we couldn’t do, despite the fact that we were working with software. If we created it in the first place, we can also change it. Made me so angry, I ranted about it here.

These conversations have been replaced by “If we want to do that we have to take care of X and Y. Oh, and Z will be tricky, too. From the top of my head we look at a two month effort. Is this feature worth two months to us?” A much more productive conversation!

“Clearly A is better!” “No, B!” -> “Can we just try it?”

We used to discuss options endlessly. Fruitless hypothesizing. Nowadays one of us will rather soon ask something along the lines of: “Can we try it out? (What would it cost to just try? Can we decide this or who else would need to take this decision with us? How easy is it to roll this back if it doesn’t work out? Who might we confuse with this?)”

And the number of theories you can easily put into practice to see what happens is surprisingly high. I’d estimate about 90% of the time we realize that, yep, we could just try it out without repercussions.

? -> “Where’s the value to customers?”

Here I’m not sure what was the focus before. I suspect there wasn’t any focus. But nowadays if you want anything done you’re better prepared to explain how it is of value to a customer. Otherwise, fat chance!

As my colleague Mathias so beautifully put it about how we build websites: “At first we designed desktop first, then mobile first, then content first and finally: Purpose first.” What is it that we want the customer to achieve on a given page? This approach makes decisions and trade-offs clearer and points you into the direction you need to take.

Summary: Appreciative and constructive

In general the whole company’s vibe has become much more appreciative and constructive. There are hardly any cynics left. Instead we’re pointing out what’s already going well and look for solutions where it’s not. Most days, anyway. Nobody’s perfect 😉
It is a highly satisfying way to work!

Here’s another interesting question about retrospectives I got in my inbox, this time from Claudia:

I just became a Scrum Master and will have my first Retrospective ever. What I find difficult for the beginning – I’m sure this will change after doing some Retros – is the transition from Set the Stage to Gather Data. After setting the stage, how do I go the Gather Data? Do I simply say “thank you, now, we’ll continue to gather data…“ or do I comment anything from Set the Stage to Gather Data.

Questions like these are great, because they make me examine something that I don’t consciously think about and “just do”. So yeah, how do the heck do I frame the transition? As always, the answer is: It depends 😉

It depends on what I want to achieve with “Set the Stage” (StS). Let’s look at the different cases:

Default case: I want everyone to speak, preferably about something positive and true and relevant to the last iteration

In this case, yes, most of the time it is close to “thank you, now, we’ll continue with gathering data…“ I wouldn’t use that exact phrasing because it implies that the 1st phases content is throwaway, when it reveals something about the last iteration. I can’t remember ever picking a starting activity solely for the fun of it…

My default opening method is a question that goes around the circle. Here are some of these questions and a transition to “Gather Data” that lends itself to that question:

What was your biggest insight during the last sprint?-> Thank you! Now let’s look into what other observations you have made with $activity.

If the last sprint had been a restaurant, what kind of restaurant had it been
-> Very creative, thank you! Let’s go into more detail now …

Describe the last sprint in 3 words
-> Now that we’ve had a summary of the sprint, let’s get more verbose…

Of course, the transition has to also match the activity you’re leading to in “Gather Data” (GD). But yeah, usually the sticky notes from StS just keep hanging on a board and are not re-used. If people have the same point again for GD, they can rewrite the sticky or re-hang the existing sticky note. I don’t care either way.

Special case: Testing the waters – with a new team or in a conflict situation

When I facilitate for a team for the first time or in a conflict situation I like to test the waters with ESVP: Do people want to be here? How much engagement can I expect from them?

If I expect problems, I might use Constellation or Team Radar to explore questions like “How likely are you to speak openly?”. It might be necessary to adapt these to a written form that participants fill in anonymously.

The important thing is that you have to be willing to deal with problems that come up. What if half the participants are Prisoners – How will handle it? What if nobody dares to speak openly – What will you do?

In short, you’ll have to have at least a rough idea of a Plan B. The more problems you expect, the more solid your Plan B needs to be.

Btw, “normal” opening rounds and retro activities can also derail, either because something “traumatic” happened to a single person (divorce, sick loved one, …) or the team as a whole (someone being fired, new boss, …) that you hadn’t been aware off. In these cases, don’t try to follow your original plan. The retro is not an item to tick off a list. Stay calm, sometimes it’s okay to just let people talk. But I digress …

Special case: Outcome Expectations

Related to the previous case: Some activities are about the retro on a meta level, e.g. asking for Outcome Expectations. I’ll try to help meet the expectations or at the very least check if they’ve been met or not throughout the retro.

Special case: StS is already data heavy

There are some data heavy StS activities in Retromat that can easily be fleshed out for use in GD, e.g. Amazon Review or Postcards. Don’t be limited by the phase that is assigned in Retromat. There are many activities that can arguably that also fit into a different category.

Actually, when you look at my retrospectives individually, you’ll usually find only 4 to 4.5 distinct phases in them. The middle three phases kind of bleed into each other. Which one I stress varies. But whatever I do, you can spot Lean Coffee in each one of them, just rarely as a standalone technique.

(If you plan your retrospectives with Retromat, you can get around the strict “5 phases” layout by manually changing the IDs in the URL and hitting enter.)

Anyway, the above are all the special cases I can currently think of. Do you have any to add? How do you transitien between StS and GD?

I’ve got a confession to make: I think fun in retrospectives is overrated. And I never bring cookies, when I facilitate.

Don’t get me wrong, I prefer having a good time to moping about and yes, I prefer participants to be in a good mood. Light hearted people are more creative and willing to try new things.

But all my most important retrospectives – the ones I still remember years later – were horrible! Or at the very least deeply uncomfortable. That holds true regardless of whether I facilitated or was a regular participant.

The important retrospectives, the ones that really counted and made a profound difference were about troubling topics: When something or someone wasn’t working out despite everyones best efforts. They had a big impact like teams dissolving; people leaving teams or even the company. That category of events.

Something like that is decidedly not fun. But it’s necessary to have these conversations. I’m grateful to people who have the guts to bring up the crucial topics even if it hurts in that moment. After the dust has settled everyone is better off, because a harmful situation has turned into a new beginning. And work in general, not just that the retrospective, has a chance to be fun again.

When I first learned about Kanban, I also learned about “Swarming”. Swarming is when the whole team pitches in to work on the same thing. That same thing is often a blocking task that WIP limits helped surface. Can’t work on “your” tasks because you reached the WIP limit? Go help clear that blocking task up ahead!

Swarming with a team is not unusual and works pretty well. Some teams try to always work on only one story together so they’re swarming non-stop. And you can turn up the magic and swarm with large parts of the company.

Let me give you three examples of what you can achieve if you join forces and people do tasks outside of their normal job description.

1) Patch all the code

Some years ago we had a legacy product that was in use and earning money while not being actively maintained. Suddenly a wild security hole was revealed. It was a problem for everyone using that version of the specific language we were using. (Yes, you’re right, it was PHP.)

Not fixing the bug would have been irresponsible. How could we make it secure again, given that no team was taking care of the product and nobody really knew the code base anymore?

Drag 3 developers from their teams and go at it for a month? Takes long and these people are missing in their respective teams. And you make these 3 people rather unhappy. No, let’s stop and fix. Let’s take 2 days with all developers, spread the burden evenly and get it over with.

Fortunately the bug was least easy to search for. Two developers prepared a big board with a slip of paper for each and every instance of the bug in the legacy code base.

On Monday morning all developers met and paired up – one person with faint memories of the code base and a newer hire. Each pair took a slip and went on their merry way. All developers together finished that task within 2 days and with a high sense of community.

2) sipgate calling

After handling outstanding payments pretty badly for years, we decided to wow our customers in a commonly negative situation. Instead of passing late payers to a debt collection company we switched to writing friendly “Hey, maybe you forgot to pay us?” emails.

As part of switching from old to new way of handling we wanted to personally call about 200 customers with overdue payments. 200 is a lot of calls for the 3-person team that was wowifying our reminder process. 67 calls per person is daunting.

That’s why they asked the whole company to volunteer. They asked for people willing to help call customers at a certain time and date. They kicked it off with a short training and then some 20 people were calling up customers, nicely asking to update payment details. 10 calls per person is a lot more doable than 67.

3) Got a minute? Answer a ticket

In times of needs you can ask for quick help on Yammer. Sometimes customer support tickets pile up. That can be due to an incident or unusually few people to tackle tickets or both. In these cases you can rally the troops:

“Due to $reasons we have 4 times as many tickets as we normally do. We’re a bit overwhelmed. If you’ve got a spare minute and a Zendesk account, please check if you can resolve any of the tickets in our queue -> link”

At least once, yours truly did have time, read about 30 tickets, decided she could help with about 10 of them. Of these 10 only one popped back open because my answer didn’t help with everything. Which means I closed 9 tickets as a non-customer-support-person. Sweet!

Did I take longer than a proper CS person would have?
Definitely.

Isn’t it wasteful then?No! Not to me anyway. Sharing your colleagues’ burden in that way strengthens relationships.

Okay not wasteful then, but it’s still inefficient for people to pitch in with tasks they don’t have routine in …Probably. But then again, I don’t care about being efficient. I care about being effective. And that’s what swarming is. It cuts a big, intimidating mountain for a few people into realistic hills for many people.

And yes, that last example only worked because a lot more people have Zendesk accounts than just customer support people. These licenses are pricey. It’s a trade-off. We opted for the ability to act effectively rather than (money-) efficiency.

Out of 75ish people only 3 raised their hands. That’s not a lot of people. All three handraisers were fellow speakers and agile practioners.

I was one of them. Interestingly, I had hesitated to raise my hand. Have I been on teams who finished early? Sure thing!

Yet, right before asking, Allan had dissected common definitions of “projects” and “project success”. One of the success criteria is “on scope”.

Now when you look at “my” early delivered projects, they were not on scope. We were able to call it a day early, because we had cut scope. While building it we identified parts that didn’t add value and decided not to build these.

For a moment there, I was debating with myself whether that’s “cheating”. It could easily be judged that way from a traditional point of view. I mean, isn’t it easy to deliver early if you skip bits? Anyone can do that, can’t they?

I did raise my hand in the end because it’s not cheating to me. Quite the opposite, “responding to change” is at the core of agile. Finding out more while you do the project and adapting to it: If you find out you don’t need even half of the stuff you thought was important you get to finish early. Yay!

And it ain’t easy either. Simple, but not easy, for two reasons: 1) Finding out what can be left out is tricky. 2) Letting go of planned scope is psychologically difficult.