Archive for the ‘Agile’ Category

Black Cards – agile handling of technical debt

September 27, 2017

The deadline is looming. Your team is struggling. To ship we take shortcuts that don’t sit well, but necessary. We release, but with a bad feeling. After a while, our effectiveness goes down due to the hidden technical debt. Here’s a way to show and thus be able to follow up and fix these pain-points.

We’ve all been there at crunch-time. Everyone is giving their utmost to ship and take whatever shortcuts that will meet the deadline. All goes “well” and you get something out through the door, albeit with a long tail of bugs. The late evenings have paid off, and the project manager gives kudos to everyone. So why is there still a knot in the developer’s stomach?

At least the customer feels good straight away – or at least after a few weeks of bug fixing. Some iterations later we hear ourselves saying “why does it take so long to fix bugs?” Those shortcuts add up to “technical debt.” For every turn, we add to this invisible mountain of low quality or not good enough solutions.

We have a double-sided problem here:

  • programmers are “forced” to low quality (shortcuts) and feel bad about it,
  • this is “invisible” to the product owner, customer, etc.

This leads unhappy people on every side and slow cycle times. We need an easy way to describe this shortcut and to feed it back through the pipeline to the backlog.

Play the Black Card

Let’s go back to the point in time when we take the shortcut. The developer, that’s usually the person with the best knowledge, should create a Black Card that describes the alternative and possible remedies. Create this card as soon as you took the shortcut. It will be fresh in memory and not weigh on your mind. It is great if you can estimate it at the same time, but not necessary.

A Black Card:

  • Title: Describe the shortcut in business terms (as much as possible)
  • Describe the problem with a few sentences. Add possible risks or consequences if we do not address this debt.
  • Possibly estimate the cost of fixing.

Put it into the backlog. At this point, I always feel better. Unloading that bad feeling is good. Remember to bring it up in the next retrospective. Anything to add? Assign it to the PO for further handling.

Use "black cards" to unload the shortcuts that you had to take. Retrospective it and get them into the backlog at the responsible point in time.

Use "black cards" to unload the shortcuts that you had to take. Retrospective it and get them into the backlog at the responsible point in time.

Hey, as Scrum Master I can even sum up the cards from the iteration and construct a “technical debt diagram.” We can follow the trend. Maybe we should use a black background as to set the mood accordingly? 😉

Distributed Teams: Wut “red” day!?

May 8, 2013

We’ve talked about time zones and examined the clock in a lightly distributed  team. That should be enough – right? Nope. There are other surprises like vacation  …and parental leave   …oh, and “red days”.

You might think that all of this is straight forward and regulated, or at least well-known. Well, it is probably “self-evident” per country, as in “evident to myself and no one else”.  Let’s serve up some examples on what might hit you.

Red as in a day off

“Red days” is the Swedish name for public holidays and comes from the ink used in most cellulose calendars. Red, public, bank – whatever your prefix is on the word “day”, it usually means “day off”. Just as the names differ, so do most things about them.

Countries like China/Hong Kong, Egypt and India and many more have roughly 15 public holidays off per year, but remember to take vacation into account when looking at these numbers [1]. Rules, tradition etc play important parts, some are on fixed dates, others move around a lot in the calendar. So, get to know your locales.

Another gotcha on public holidays: You can’t even trust that the “day” is a full day. In Sweden a day like Walpurgis (“Valborgsmässoafton”) and several more are in a “shady red”. Meaning it will be marked as a “day off” in the calendar, but not be regulated by law and instead up for negotiation. Most Swedish companies treat this as a half of a working day. But sometimes this is even more complicated. Some companies add an extra hour added to such a “half day” as to turn other “squeeze days” into vacation [2].

Oh, you can’t trust days off to be per country either. In New Zealand there is the “Auckland Anniversary Day” which celebrates the arrival of Captain Hobson [3] (yup, this public holiday the man the celebration himself). This day is only observed in the northern half of the North Island of New Zealand following some regional boundary abandoned in 1876. You can’t go local enough, right?

What to do:

  • Turn on public holidays in your favorite digital calendar, but don’t trust what you see there.
  • Set up some policy. Despite rules and regulations there is usually some interpretation to do.
  • Set expectations with the people in your team/company. I prefer to have people kick in when needed and letting “red days” mean time off.

Black as in nothing will happen – at all

“Black” is my name for those days. Whatever you might think, these days are off – whatever the calendar or law might say. Case in point: Mid Summer’s Eve[4]. The event marks summer solstice and is a common celebration in places like Scandinavia. If you lived here, you would understand why.

Copyright Midsummer by Carsten HvidHowever, the eve isn’t actually a public holiday in Sweden, at least not regulated by law.

Close to nothing will happen during this day – except pagan rituals like dancing around a strange pole dressed in green and flowers. And of course some drinking. (Photograph by Carsten Hvid)

Whatever you might think, you are not likely to change such a “black day”. Hint: Mid Summer’s Eve been like this since the stone age. The Christian church gave up and dug up saint St John to celebrate on the same day.

What to do:

  • Take a break and have fun!

Vacation – again?

Vacation length varies across the world – that we do expect. Regulated vacation could be anything from like a month down to   …nothing, as is the case in the US. (However, they tend to get two weeks.)
That is quite a difference. The differences do not stop at the number of days.

Sweden is at the very top of the “Statutory Vacation” list and often times you hear “you’re off again?” from colleagues abroad. [5] Consensus culture and a flexible vacation scheme make this worse and could block important decision-making for the major part of the summer. [6]

Culture plays a big role too and will affect your ability as a team to deliver. Take for instance the UK with less vacation length than the Swedes. When the latter go for vacation they clock out for an extended period. In my experience the brits tend to take their annual leave in bits over the year and typically extend weekends etc.

In some places where I’ve worked, work culture on the UK side made the people go into a semi-stealth mode when they approached holiday. Suddenly, with a heads up of just a couple of days, a small note would silently appear in the calendar. Or during your colleague’s vacation you just got your email got an auto reply saying “Sorry, but I’m away today on annual leave”. Surprise.

Your mileage is likely to vary, but do take local customers and rules into account when you plan your support and deliveries.

What to do:

  • Plan! A simple Google doc where you note please vacation goes a long way. A common calendar might work if you’re a small team, but doesn’t scale.
  • Specify. Where I’ve worked we typically went glocal, meaning we usually followed the laws and tradition per country. People plan their lives around these days and trying to set some standard across board is usually not worth the effort.

Collecting daddy/mommy points

You might have a team of juniors and seniors. Both are valuable in different ways. But their lives could affect work. They might be into an extended party period or they might be into babies. (I love kids, please have some!)

As you might suspect there could be consequences for your team [6]. This varies a lot, but I’ll use Sweden and fathers as an example. The parental leave here are among the best in the world and society is changing quickly. I do see signs of similar improvements on various levels in other countries.

I’ve taken two paternity leaves of them myself nearly a decade ago, each on the order of three to four months. They we’re great. Today, within IT, I typically see the guys taking closer to half a year. That is a big shift in a rather a short period.

All of this is very different across countries. But I’m sure that it does affect your team somehow.

What to do:

  • Read up on rules and regulations per locale.
  • Help the parents to solve their life puzzles. You will get loyal colleagues and their help late in the night.
  • Plan. In SE: Having a baby today means two weeks off for the father and, a year from now, several months of paternity leave.

Finally

When it comes to handling things like time and vacation etc in a distributed team it usually works the best if you go multinational, not international – in others words, adapt. In my view there are too many problems in standardizing. Just plan and make it transparent to the team. You got other goals that are more important.

I think I covered as much as I can handle – and probably you too – on the subject of distributed teams and time.

Next blog up: What’s the secret ingredient in just about any method/dogma that promises to save your distributed team?

/Björn

[1] Top ten countries with the most public holidays

[2] “Squeeze day” – a day that land in between regular public holiday and a weekend. Thus, they are very interesting to turn into a day off and have a long weekend.

[3] Captain Hobson and the Auckland Anniversary Day

[4] Midsummer

[5] Annual leave

[6] Consensus does have its advantages though, like the ability to get a group to work towards one single goal. But that’s another blog.

Distributed Teams: …and the Clock is a Hound Dog

May 3, 2013

So you’re a nice guy – right? And you want to find good time for a recurring meeting with your team. In my previous post I had a tip on how to find any possible sweet spots when the team could meet. This time around it should be easier? We just need to find a single bona fide rendezvous during office hours. Surprise (not), it’s harder than you might think.

Let’s first define the traits of a “normal” distributed team.

  • a decently sized team, say around seven
  • normal spread of seniors and juniors
  • only two offices – Stockholm and London – which is only one hour time difference.

That’s a fairly easy set up, right? I’m just going to point to a couple of possible snags. We have seniors in this mix. That probably means some might be parents. And of course remember the usual blend of culture and late mornings. And we do want the team that is awake and ready to go.

Chopping up that clock

Given that I think and live in CET-land (GMT+1) I’ll use that as the base for the clock. First, let us set the frame for the “office hours”. It is probably something like 8:00 to 16:00 (4 pm), see a) in the figure below. We could argue that 17:00 (5 pm) would be a more decent finish time, but then again most companies within high-tech run flexible hours. The latter is especially true if it’s a startup. You probably prefer for people to kick in and save the day, however late it might be.  So the team mixes the times for coming and going.

As luck would have it, some devs in your crew are singles. This means late mornings and our day start at around 09:00 (CET), see b). But then again the same is likely in the UK, hence add another hour for the time zone difference, see c). We’re now at 10:00 (CET).

Lunch, we don’t want to meet during lunch. Swedes wander off to find carbon-hydrates at around mid day, but there is problem lurking here.  It’s good example of what I would call a “cultural time zone difference“. To my surprise I found that the English would eat starting their 1 PM (14:00 CET), see e). Nothing wrong with that, but it does make the hour in between the lunch periods less useful. Do you want to risk a late lunch in Sweden to collide with hungry English waiting for the meeting to start?

The Hound Dog ClockFigure: The Hound Dog Clock for the team (GMT+1).
a) sleep or just not in the office 
b) late morning
c) late in the UK too
d) SE off to lunch
e) oops cultural gap, UK off to their lunch
f) dodgy green (see more below)
Result: Only one decent green period left.

That leaves one green period between c) and d) and of course f). Just one other problem though, remember I wrote we had a mix of seniors and juniors. Some of the senior devs need to pick up their kids from the day care center. That probably means they need to leave at around 16:00 (4 pm CET).

Except, one of them has a long commute, like an hour. Which means that for half of the week this dev needs to leave at 15:00 (but he/she does get in real early, like 07:00 when nobody else is around *).

Finally

Even though this scenario did not have very strange constraints, we still landed with only one decent green period during the day, 10:00-12:00 CET and a possibly false green late in the afternoon. That’s not much.

You would have to look at your team and your setup to see which possible greens you have. Understand your people, tweak expectations and agree on some compromise, that should get you some more green.

/Björn

* Disclaimer: I’m the proud father of three and I’ve tried to evenly split the picking up/leaving kids through the years with my wife. It ain’t easy.

Distributed Teams: Time Zones are a bitch

May 2, 2013

Time zones are deceptively easy. I mean how hard can it be to detract or add a few hours? Well, it turns it is tough – real tough. Here’s a tip on how to figure out when people in different time zones can meet.

Why is it so hard?

The arithmetic might be easy, but it’s easy to get confused when try to figure out who has switched to summer time and if the mail thread is still talking in CET or PST. Then there is culture and just plain personal preference which make things even harder.

The trick is to look beyond the zones themselves. It’s not a question of figuring out “office time in KL vs. SF” – it’s all about the peeps. The goal is to match people’s lives against each other.

Here’s a simple tip on how to figure out when people can meet.
The short story: Get people’s preferred meeting times, a.k.a their “profiles”, assemble the team(s) and average everyone’s pain levels. Finally build a “meeting pain” diagram where the valleys are the sweet spots you’re looking for.

For the longer explanation we need some spreadsheet magic. In the first tab we collect everyone’s preferences, their profiles. We will reused further on.

profiles

Figure: The first tab in this time zone sweet spot analysis contain all the people. They have entered their typical daily “profile”, i.e. when it’s ok to disturb them or not. Hint: red is no good.

The tab we organise according to the time zones. The dark grey top left cell “12” is New Zealand time zone (GMT+12), then onwards through Malaysia (GMT+8) and so on. Note that GMT+0 is the point of reference and the other time zones merely say the corresponding hour. To the far right you can find the people in California (to the right of “-8”).

Invite the people and ask them to rate the hours on a typical day throughout the 24 hours. Yeah, this is for startup purposes – it’s a hard life around the clock. Now you can align people’s lives, not just their time zones.

Side note: The column “Combo GMT+1” is just a handy way to understand the joint profile of the people working in Sweden in this case.

Team X

Figure: On a new tab we assemble the people needed for “Team X”. It is a simple case of creating references to columns in the first tab. To this we add a summing up column “Meeting Pain”, see far left.

On this second tab above we collect the people to join Team X. It is slightly tedious to copy and paste the references, but once you get the hang of it it’s straight forward work. Next step is to introduce a column “Meeting pain” where you calculate the average of the participants for every hour. The GMT+0 column is there so that we can have a normalised x-axis in the diagram we’re creating.

Meeting Pain

Figure: Finally we arrive at the diagram. Lower is better, less pain to meet.

This team’s sweet spot is around 8 o’clock in the morning (GMT) with a runner-up 12 hours later at 20:00 CET just before the eastern person “BB” goes to bed.

In conclusion: By relating people’s lives via time zones – everyone thinks about their life in their zone – we stand to figure out when they are more likely to meet.

Oh, and a surprise insight: In principle I could only find two types of profiles – parent or not.

Two Types of ProfilesFigure: Two types of profiles – those with kids (DD) and those without (EE).

In the figure to the left we can see examples of the two types. Person “DD” is a typical parent – morning time is early and the dinner is sacred, but then this person typically makes up for a bad (work) conscience by kicking in later that evening.

The other type “EE” has no kids and sleeps a bit later in the morning, but has no qualms about meeting and eating. However, this type of person prefer to round off the evening without work.

With three kids of my own, I can certainly understand both DD and EE…

/Björn

Ps. I almost forgot. Here’s an example Google spread sheet page if you want to copy it:
http://bit.ly/12sg6R7

Distributed Teams: Pragmatically speaking

May 1, 2013

I hope to write a few blogs on distributed teams. Things I already knew but didn’t have deep enough respect for or just realised over the last year or so. It will be a mosaic of thoughts with probably only one red thread – pragmatic points of view on working in a distributed environment. I hope that something will be worth while reading.

Oh, yeah there is one other red thread: It’s all about the peeps!

My fridge & the phantom work jam

April 17, 2011

Have you ever had too much to do? Did you react by working even harder – like the rest of us? At first, the situation seems to improve and everything looks just fine. However, even though “harder” might lead to “better”, it still is not the same as “good”. Time passes and you keep putting in the extra effort and then some. By now you are quite busy, but not actually getting anything done. Congrats – you have met the phantom work jam.

I was in my car talking over a really bad connection. At the far end was Steve Denning, a renowned author of several books on management. He wanted to know how we work at Jayway. During a long interview, interrupted by countless GSM holes, we kept talking. Among other things I told him the story of our old house – a school from 1928. It is a good example of a renovation that had gone wild and how we managed to get on track again. It ended up in Steve’s new book which came out last fall, “The Leader’s Guide to Radical Management” (http://amzn.to/radicalmanagement). It is a great book and a funny thing happened while I was reading it: I took notes in the margin. That has not happened in the last twenty years, basically back in university. Denning’s book really made me think. I just had to scribble and make comments.

Shortly after the interview I got the transcript – boy was that a sorry sight. Not only did the bad connection play tricks, my half-finished sentences and fuzzy thoughts made the text almost incomprehensible. Therefore, I was thoroughly impressed when I got the following text from Steve Denning’s latest book. It was spot on.

“The Leader’s Guide to Radical Management”
CHAPTER 7— PRINCIPLE #4: DELIVERING VALUE TO CLIENTS IN EACH ITERATION

Björn Granvik lives in Malmö, a small town in the southern tip of Sweden. At work, he is the chief technology officer of a software firm called Jayway. In the evenings and weekends, he works on renovating the house that he occupies with his wife and three children. The house used to be a school and so it is rather large, but doesn’t have many rooms. Transforming it into a livable house requires a massive effort.

When he started the renovations, his wife would stand in the corner in one of the rooms, and she would say, “Björn, here’s something over here that doesn’t work.”

And Granvik would run over and start trying to fix it.

But then he would hear her from somewhere else in the house and she would shout, “Here’s something even worse.” And he would leave whatever he was doing and go over and try to fix that. So he kept running between projects in the house. There was so much to do that he was constantly jumping from one project to the other, hardly ever finishing anything. So one day he said to his wife, “This doesn’t work. We can’t go on like this.”

Granvik had encountered a phantom work jam! Too many inputs had jammed the system.

Given Granvik’s experience with the practices of radical management and the simplicity of the situation, the solution was fairly obvious.

“I know that there are a bunch of things to do,” he told his wife. “But we need to do them in some kind of order.”

So he cleared a space on the door of the fridge, and he said that they would have three available slots. There would be one slot for all the big things that needed to be done—things that take a lot of time like fixing the leak in the roof—and two slots for small items, something that would take less than an hour to do, for which he could squeeze in an hour here or there. That might be like: “Hang ten photographs on the wall.”

“Anything we put on these slots,” he said, “we can talk about. And we can get them going. I will concentrate on these three things. If something else comes up, we can put it on the side of the fridge, but I will not look at it. There’s no point in talking to me about this, because although I will listen, I won’t do anything about it. I will only work on the top priority items in the three slots on the fridge.”

So he and his wife began working this way. And it went really well. He was happy because his wife stopped bugging him about things that weren’t on the priority list. And she was happy because things that she really wanted done were actually getting done.

The interesting thing was: it turned out that his client—his wife—was equally happy if he hung ten photos, or if he fixed the leak in the roof. Fixing the leak in the roof is a big expensive project that takes considerable time and effort. But the amount of joy that comes from it was no bigger than a tiny task like hanging the ten photos.

By focusing on what his client really wanted at that particular moment, he found that increasing client delight didn’t necessarily cost more. A small thing delivered sooner could delight more than a big thing delivered later.

In order to become more productive, and generate more delight for his wife, Granvik had to restrict the flow of work. To go faster, he had to go slower.

Steve Denning goes on to talk about “phantom jam work” and the havoc it plays on our efforts. Doing too much at the same time invariably leads to less being accomplished. It certainly does not feel like it. Putting in the hours makes us count the effort and not the actual value we create. Just like tunnel vision, we are blinded by speed and forget that we are not reaching any goals.

Whenever you are stuck in effort blindness, stop and think.
– Am I really doing the right thing, the right way – is this value? Is it fun?
In my case I needed something that would focus our effort. Something to slow us down and get stuff done, really done. “The big and small list” was my solution of getting a good flow through my org… err, family.

Works for big people
So how did we do it?

Figure 1: Our fridge and the simple task board with a “small” (lilla) and “big” (STORA) list. Big stuff is “lift roof and fix it”, small might be “hang photo on wall”. Second from the left at top is the “build room” note (Bygga rum).

The first important step was to reduce the number of things going on at the same time. The lists are each limited to “3 notes”. This meant nothing could be introduced or worked on before there was a vacant slot in one of the lists. In order for this to work we have to prioritize the work. It is of no use if I go off on a fixing spree if it is not what both my wife and me needs or wishes.

Separating the small stuff into their own lists, or “swim lanes”, was the next step. As a parent I usually can squeeze in the 1 hour tasks somewhere into my calendar. Getting those smaller tasks done is an easy way to turn around a bad situation. It was baby-sized steps, as compared to the big list stuff, but at least it was a step forward. And remember, sometimes even small values are big wins.

Works for tweens
As Steve Denning writes in his book, we actually started to land projects, small and big. My wife was happy again, but my oldest son Max started to talk about the rooms I had promised him and his younger brother Felix. Since we live in an old school we have rather large rooms and no wardrobes. By Swedish standards we are apparently defined as “cramped living” (Swedish “trångbodd”). The statistics have us as living in a “small” house since our three sons shared a single bedroom. This is no small feat in the 360 m2 (3 800 square feet) that make up our ex-school.

My oldest son, Max, kept asking me (in a nice way) about his room. Being 12 years old, I could understand him. He wanted a room of his own. I recognized the earlier situation with my wife and yet again our fridge came to our rescue. This time around I made some more slots available – I needed to size up to include my sons. I explained why the “leak in roof” note came before “Build Max & Felix Room”. This worked really fine because it was now understandable and transparent to Max why he would have to wait. Moreover, our kids needed to be better included in the decision process. Roughly once per week we visit the fridge and check the progress. If there are any vacant slots open we discuss what needs to be done – both fun and important stuff get their chance. And of course, we constantly check to see if we have the right prio – something might have come up that needs to “push through” the other tasks.

In the spur of the moment I took a pen and asked Max for commitment.
– You could help, I explained. What do you want to do?
He took the pen and to my surprise he signed off on one of the jobs before his own room note. Despite being young he understood that helping me with some other task would make us as a team work faster on accomplishing his goal. Sure enough, when I came home one afternoon I found a big hole in the garden for one of our roses that my wife wanted to plant. It might not sound all that much, but digging through those layers of ice age clay leaves even a grown man panting.

Works for small people
My second son, Felix (8) saw and understood the fridge. One morning I came down and saw that one empty slot now had a new note scribbled with a child’s hand: “go bovling”. A couple of weeks later we did just that.

In order to get a sense of flow with the big tasks I introduced a “scratch”. Every man-day, roughly, was a scratch on a big note. Otherwise, they risked going stale – staying on the fridge “forever”. It also meant we got a counter and a “reward”. The quotes are needed, since a scratch is such a small reward, but none the less it works.

At this time we had introduced red notes. They were important high prio tasks that needed to be executed quickly, basically to push ahead of the ordinary yellow notes. This risked blocking out the fun stuff. Where is the R & R, if we just kept doing good? My solution was to introduce the green notes. It is a just such a natural color to indicate fun 🙂

Figure 2: The “before” image of the rooms.

Close to a year later, me and my children have finally built the rooms for Max and Felix.

All it took was: some 2,5 metric tons of building material, 97 man days of work (yes, I counted) and the ability to focus – all visible on our fridge.

Sometimes I even managed to find some work that was easy, but still important, for Bix (4). We were working on the roof/floor above the rooms and Bix had the important task of bending the floor boards. Boy, was he proud. All it took was some creativity in dividing the work.

Having a simple, visible system with understandable rules promotes transparency and understanding. As a parent this translates into less nagging.

Final thoughts

If you find yourself working really hard and being quite busy, without any real results to show – except for sweat – then stop and think. It will feel contradictory, but you need to limit your work so you can focus on getting something worthwhile done. Add some transparency and a shared prioritization and you get commitment. It doesn’t really matter if the people around you are colleagues or kids. We are all pretty much wired the same way.

Having learnt all of this, I’m I immune? Or will I repeat my mistakes and try to do too much at the same time? Most likely the latter.

The experience might make me quicker seeing a solution, but it’s still hard to convince myself – and others – that we need to do less in order to do more.

Figure 3: Max and Felix rooms.

Am I proud of what we accomplished? You bet.

//Björn