Ad-Hoc Leadership

[This topic in German will be part of the upcoming 2nd sipgate book \o/].

We don’t have any middle management at sipgate. In our teams nobody is anybody else’s boss. Hearing this, visitors often assume we’re without leaders. In fact, the opposite is true.

(Disclaimer: We do have a hierarchy. It only has 2 levels but it’s there. Our not-so-called C-level sets strategy and everyone else is trying to execute it.)

The roles of Scrum Master and Product Owner have elements of leadership in them. Product Owners have authority about what is being build. They do not have authority about people, their jobs, how the team builds something or the broader organizational setup.

Because nobody gets to lead solely by the power vested in them by some management title, everybody takes the lead sometime. If something is important to you and you don’t take the lead, there’s a chance nobody will. Fortunately, the issue that’s important enough to take action is a different one for different people. So it distributes nicely.

Some people will now object that there is always an informal hierarchy in a team anyway. And someone at the top. After pondering this for months and qualitative surveys at the coffee machine I can’t confirm this. Who’s on top is ever-shifting. Within any given team there are several people that lead, depending on the area in question. UX? Dan. Java? Lara. JavaScript? Kim. We follow their lead because we trust them to best judge the long term consequences of any decision. And yet, they usually don’t decide on their own, but together with others.

I’m pretty sure that half my colleagues would be team leads in other companies. They’ve got all the skills you’re looking for: take responsibility, present results in front of 100+ people, give constructive feedback, facilitate discussions and they’re reflected.

Btw, this post isn’t called “Agile Leadership” for a reason. In my experience, when managers talk about “Agile Leadership”, they babble about “empowerment” while keeping the existing hierarchy and its reporting structure as it is. Yeah, right. Wash me but don’t make me wet, much?

And what do we get from having a flat hierarchy? Everybody takes responsibility. We can take decisions fast. We don’t waste time on political games. Instead we can add value.

PS: Like what you're reading? Join Corinna's Retromat newsletter!

Scrum Masters and Agile Coaches need an Emergency Fund

Scrum doesn’t fix an organization’s problems. It makes problems glaringly obvious so that they have a chance to fix them. Except that “glaringly obvious” is relative and sometimes you still need someone to point to the steaming pile o’ shit of a problem and say it out loud. Sometimes to someone that has the authority to fire the messenger.

As a Scrum Master or agile coach it is part of your job to speak truth to power if necessary. And while it’s certainly a good idea to work on delivery, and phrasing hard truths in a way that make it possible for the recipient to accept and stomach them, there’s still a risk involved.


That’s why you need to have a certain level of independence. And a big part of that independence is money. How can you expose someone to an uncomfortable truth, if that person can fire you from a job you depend on? Depend on for rent, for food, for insurance. For your kid.

It’s a whole lot easier to “have guts” if you have an emergency fund, e.g. 3 to 6 months of living expenses in cash in a bank account. How many months you need depends on how fast you think you can land another job. Ultimately it depends on what you need to feel secure. My need for financial security is high, so we’ve got 12 months. This is just living expenses, not fancy vacations. Not that it’s necessary at my workplace but it’s still a very comforting feeling and helps me not be afraid to say what I think needs saying.

If you don’t have an emergency fund, why not start now? If you can’t save big chunks, chip away at it. Small contributions will also help. Having some money in the bank will make you more effective in you job. And it’ll let you sleep better at night.

PS: Like what you're reading? Join Corinna's Retromat newsletter!

Expect turnover – Agile transitions and changes in the work force

The other day, I’ve had 3 visitors from a large corporation. Since one of them was from HR we talked a lot about these topics and exchanged our hiring processes. One hidden criterium of theirs is that people must be “leidensfähig” to a certain extent.

“Leidensfähig” is a beautiful German word that literally translates to “ able to suffer”. If you’re leidensfähig, you are able to put up with a certain amount of (corporate) bullshit without quitting. We cast for the exact opposite. If something sucks, it’s your responsibility to go fix it.

Expect turnover

It reminded me of how much hiring criteria differ between companies and that it’s really no wonder that turnover is to be expected during any big change. You’ve hired people to work in a certain way and – boom – now you ask them to work in a different way. Not all employees can and want to work in a new way. It’s not their fault either. It’s just people and companies going their separate ways. It’s not them, it’s not the company. They are just not a good match for each other anymore .

PS: Like what you're reading? Join Corinna's Retromat newsletter!

How we take decisions without managers and teamleads

We don’t have any middle management at sipgate. There is still a boss – bosses even, plural – and we look to them for strategy and long term planning, but they are not involved in day to day decisions. In our ~12 product teams no one is the boss of anyone else. This often prompts the question “So, how do you take decisions around here? Who decides things?”

That’s an excellent question that I had absolutely no answer for, the first time I got it. I had never thought about it, because decisions just … get taken. But how? And by whom?

Once I started thinking about it, I realized that the answer is not straightforward, because it’s always different groups of people that take any given decision. The guiding principle is:

We want decisions to be taken by the people who have the most information to make a good decision.
Sometimes that is a single person. More often it’s a pair or a team. Decisions that are more far-reaching but affect mostly one job role can be taken by this role’s community, e.g. all developers or all UX designers.

What happens when people can’t agree?

Our teams have many degrees of autonomy to take decisions about “their” product. Most decisions are taken together. When the team can’t agree the decision falls back onto the most appropriate role: The Product Owner has last say on product feature, time budget etc. Developers have last say on technical implementation etc.

A smart team and Product Owner take care not to force too many issues, because that always leads to trouble down the road. Resentful people are not doing their best work. Fortunately, we can usually agree at least on a general direction

What about company-wide decisions?

In most cases, the group that can take the best decision overlaps with the group of people that will be affected by the decision. The smaller the overlap, the more you need to consult with the people that will be affected.

A popular way to decide something with the input of many people is to discuss it in an Open Friday session. Let’s look at a decision from about 2 years ago:

At sipgate teams can go out on team events to foster team spirit. A typical team event is an activity (escape room, cooking class, minigolf, …) + restaurant + booze. Up to a certain amount, this is on the company’s dime.

Now, our colleagues in accounting had noticed a worrying trend and pitched the following session: “Last year, we’ve had 1 team building event in the whole year. Now it’s April and we’ve already received 5 team building events. We suspect some of these to be regular ol’ team events but we can’t and don’t want to decide which is which. We’d like to talk about how to handle this.

Wait a minute! “Team building event”? How is that different from a “team event”? Turns out, a team event is is your own private fun, whereas a team building event counts as company time, i.e. you can go home earlier if your team building day is longer than usual.

Anyway, at the time of the session, about 12 people from all over the company met and a short Q&A and some discussion we came up with a list of criteria so that every team can decide whether they are planning a team event or a team building event.

[A team building event is for teams that are in trouble. They typically last a day. You probably aren’t looking forward to them (see “team in trouble”). A team event is typically in the evening and you are happy to invest your own time because your team is awesome!]

Took less than 1 hour and those criteria still stand.

You made a money-related decision just like that?

Well, in this discussion a new colleague wanted to “delegate” the decision to a higher level: “Management has to decide that! That is not something that we can decide!”.

Not true. I could vividly imagine what would happen if we really bothered a higher level with that. The higher level would have been C-level, since there’s only 2 levels, C-level and everyone else. They would have looked at us like we’re crazy people and told us to decide for ourselves. They don’t want to think about minor operational stuff like that.

The same applies to at least 90% of issues that I’ve heard the “someone higher up has to decide that” bit by newbies. We absolutely can take many of these decisions and we do. We usually have more information and are also the ones affected.

It’s part of acclimatizing at sipgate to stop relying on higher ups. You can take your own decisions. You also have to. With great power comes great resonsibility.

What are the drawbacks of this distributed decision-making?

Problems arise, whenever it’s unclear who are the best people to take a decision. Depending on  personality some drop issues, others talk to a looot of people to try to reach a decision.

Another is that we are used to great autonomy. When team decisions are overridden by C-level it’s usually not taken well.

You might think that “You have to discuss, so this approach takes longer” is also an issue. I don’t think it  slows you down for two reasons:

  • A lot of decisions affect only 1 or 2 people and you can take those without asking anyone. You need a software tool for 50 bucks that will save you 1h per month? Buy it! The time to run this by anyone else is more expensive than the tool
  • Execution is faster, because we all agreed on what we want to do, instead of dragging our heals on executing something we had no say in and think is a stupid idea by someone ignorant

Would I trade this for a traditional top-down decision making process?

Hell, no! I admit, there were times (~2011) when I longed for someone to swoop in and just take a decision so that we’re done discussing. Now, I’m very happy that the powers that be deliberately created a decision vacuum until we had all learned to take widely supported decisions together.

Overall, I think this appoach makes us faster and results in much better decisions.

Addendum: I’ve just realized that this can only work because we’ve got a strong sense of “how we do things around here”.

PS: Like what you're reading? Join Corinna's Retromat newsletter!

Enjoy the Silence

My proudest moment as a facilitator was when I did nothing.

Well, outwardly I did nothing. Inwardly I held the silence. I’m a chatty person. Shutting up is hard for me. Letting silence be. Enduring it. I counted from 10 to 20 in my head and when I had reached 20 I started over. I looked at them intently although they had technically already spoken about the problem. And then the magic happened!

The person that had talked before spoke up again. An additional thought on the topic that made her very concerned. We spend quite some time talking about what she had brought up. It was that important.

I don’t think she would have addressed the issue at all without that long pause. We would have nodded at each other in agreement, closed the topic and started another one, with that issue simmering on. Festering.

Very interesting things happen when you don’t fill an awkward silence with chatter. You’ll hear things that others wouldn’t have come forward with on their own. You’ll give others space to think through thoughts they hadn’t thought through before. It’s magical. Enjoy the silence!

What was your proudest moment as a facilitator?

PS: Like what you're reading? Join Corinna's Retromat newsletter!

Mistakes were made – 3 things not to do when going agile

There are many awesome practices we do at sipgate that I love to share with others. But we’ve also gotten some things very wrong, especially in the beginning in 2010. Let me spill the beans about 3 “do not recommend” things for a change 🙂

Double duty Scrum Masters

All the first Scrum Masters were recruited from existing employees and they stayed in their old role for 50% of the time. I was 50% UX designer and the others were developers. This introduces a huge conflict of interest between SM duties and being part of the development team. And the short term “gotta make the sprint goal” interests will nearly always win against long term “team’s gotta learn and improve” interests. Can’t recommend.

Dedicated Scrum Masters are a far better idea.

Afternoon temp teams

Sometimes you need a few special to work on a small project for a short amount of time. We call these task force teams “temp teams”. In the beginning we had temp team members work in their “real” team in the mornings and the temp team in the afternoons. Yeah, multi tasking late that wastes a lot of brain cycles. Can’t recommend.

Nowadays temp teams work together all day. They finish the project faster this way and return to their “real” team.

1 shared backlog for all teams

We had 5 teams, ~3 products and just one backlog. The product owners wanted to flexibly allocate teams to products depending on their changing priorities. Didn’t work out to well. The teams couldn’t identify with any product nor establish testing or coding styles for themselves. A sprint later another team would continue working on “their” feature and “ruin” it.

Today each team only works on one product. They can make it theirs, learn its ins and outs and own successes and failures.

What are things that didn’t work out for you? What do you do now?

And what else?

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.

"And what else?” teases out difficult topics

It’s simple. Ask “And what else?”. Ask it often. It invites hesitantly shared information.

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.

PS: Like what you're reading? Join Corinna's Retromat newsletter!

So what? – Look for the real problem

Recently this statement raised my inner alarms: “We’ve got lots of problems! For example, nobody is pair programming.”

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.

"So what" is a magical phrase to find an actual problem

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:

“Love the Problem, Not Your Solution”
Ash Maurya

PS: Like what you're reading? Join Corinna's Retromat newsletter!

What is an Agile Mindset? Six years later

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!

PS: Like what you're reading? Join Corinna's Retromat newsletter!

Examples for Swarming beyond the team

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.

Swarming cuts a big, intimidating mountain for a few people into realistic hills for many people.

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.

To say it with the words of my former choir leader:

Viele Hände, schnelles Ende
Many hands, fast end

Smart chap, that choir leader 🙂

PS: Like what you're reading? Join Corinna's Retromat newsletter!