What Do You Want To Do In Two Years From Now?

by Pawel Brodzinski on May 18, 2012

Post image for What Do You Want To Do In Two Years From Now?

As a manager of 130-something people I often have these chats on what opportunities people have to grow within the organization. You know, with such crowd you can pretty safely assume that people do want to grow, to change their role, to get promoted. So they eventually land on a sofa in my office to discuss their future.

On one hand these discussions are always challenging. I mean we’re discussing here one’s future. That’s a serious matter. On the other most of the time I find it easy to share a flurry of ideas on where someone could push their career.

The context of organization is pretty much set – we know what we do, we roughly know how we do it and we definitely know how, in general, we want to improve it. And yet people often need a lot of guidance to show them what they can do in a couple years from now.

One thing is people often constrain themselves to just the lowest hanging fruit. I’m a developer so the next step is senior developer. Then a tech lead and then a software development manager. Oh so creative. How about business analysis, project management, product management, quality assurance (yes, this one too) or what have you?

While we are going beyond mental constraints, why not running a startup, consulting or freelancing?

Or simply doing the same thing you do and rightshifting at the same time? Do you really need a new title on a business card to feel fulfilled? Maybe you just like what you already do and the fun comes when you shift toward improved effectiveness?

One could say that having much power it’s easy to come up with different ideas but I do as I preach. I mean I consider myself a leader. My current team has, at the moment, 130ish people. The previous one had 4. Another 35. In each and every of them I was self-developing like crazy. In each role I could imagine myself in a year being in any of others as well as doing a bunch of different things. I didn’t feel constrained either by the current situation or by current organization. These things change very rapidly in IT.

When you are asked a question what you want to do in two year time (and believe me, I ask this question a lot) it’s not a question about current options in your organization but it’s a challenge to your mental constraints.

As simple as that. No one is going to offer you a project management position or their biggest software development division unless they’re convinced you will manage. You won’t convince them using your will solely. You need to know what it takes to do the job, understand different approaches and have a vision of your own path.

My wild-ass guess is that you don’t know all that at the moment. That’s great. Because I’m not going to judge anyone on their current knowledge. I’m going to judge them on their potential and their urge to learn.

With such attitude you render your mental constraints irrelevant and you don’t need to ask anyone about your options anymore. You know the answer.

{ 1 comment }

Slack Time

by Pawel Brodzinski on May 10, 2012

Post image for Slack Time

It often comes to me as a surprise that people misunderstand different concepts or definitions that we use in our writings or presentations. Actually, it shouldn’t. I have to remind myself over and over again that I do exactly the same thing – I start playing with different ideas and only eventually learn that I misused or misunderstood some definitions.

Anyway, the context that brought me to these thoughts is slack time. When talking about WIP (Work In Progress) limits we often mention slack time and usually even (vaguely) point what slack time is for. However, basing on different conversations I’m having, people rarely get what slack time is when they first hear about it.

How Slack Time Works

Let’s start with basics. Imagine a very simple development process: we have backlog which we draw features from, then development and testing and after that we are done. For my convenience I split development stage into two sub-columns: ongoing and done, so we know which task is still under development and which can be pulled to testing.

As you might notice we also have WIP limits that will trigger slack time in our process.

In ideal situation a quality engineer would pull tasks from development done sub-column as soon as anything pops there and even if it won’t happen immediately we have a buffer for one feature in development (two developers and WIP limit of 3 in the column). I have a surprise for you: we don’t live in ideal world and ideal situations happen pretty rarely.

There are two scenarios possible here. One is that developers won’t be able to feed quality engineer with features at rate high enough to keep him busy.

In this situation quality engineer is idle. He just face slack time. He can’t pull another task from queue because it is empty so he needs to find a different task. He may try to help developers with their work (if possible) but he may also learn something new using slack time to sharpen his saw. He can also use this time to automate some of his work (and believe me: vast majority apps I saw would benefit heavily from automating some tests) so that the whole process is more effective in future.

Another situation, and the one that is more interesting, would happen when the quality engineer is a bottleneck. It means that he can’t deal with features built by developers at the same rate they are flowing through development.

In this case one of developers who just finished working on a feature has slack time. It is possible that another will soon finish his feature as well and both will be in the same situation. And again, they can use slack time, e.g. to do some refactoring or learn something new or help quality engineer doing his work. However, probably most valuable and at the same moment most desirable thing to do would be finding a way to improve the part of the process that is bottlenecked; here: testing.

The effect might be some kind of automated test suite that reduces effort needed to test any single feature or maybe improvements in code quality policies that result in fewer bugs, thus less rework for each feature.

What Slack Time Is

By this point you should already understand when slack time happens and what it is roughly. Let’s try to pack it into some kind of definition then. Slack time happens when any team member for whatever reasons restrains to do the task they would typically do, e.g. a developer doesn’t develop new features. It is used to do other tasks, that usually result in improvements of all sorts.

That’s a bit simplified definition of course. You may ask what if a developer has a learning task every once in a while put into their queue. Well, I would dare to say that it is just planning for learning and not introducing slack time, but we don’t deal here with strict definitions so I could totally agree if others interpret it differently.

Note: we went through two different root causes for slack time emergence. One is when there aren’t enough tasks to feed one of roles. This is something that happens pretty naturally in many teams. If one of roles further downstream is able to process more tasks than roles upstream (in other words: bottleneck is somewhere upstream) they will naturally have moments of slack time.

Some people may argue that this is not slack time and again I can perfectly accept such point of view. However, for me it suits the definition.

Another root cause is when we intentionally limit throughput upstream to protect bottleneck that is somewhere downstream. This case is way more interesting for a couple of reasons. First, it doesn’t happen naturally so conscious action is required to introduce such slack time. Second, for many people introducing slack time there is counterintuitive, thus they resist to do it.

A result of not limiting throughput before a bottleneck is a huge queue of work waiting for availability of bottleneck role, which makes the whole thing only worse. The team has to juggle more tasks at the same time introducing a lot of context switching and crippling own productivity.

Nature of Slack Time

One of specific properties of slack time is its emergent nature. We don’t carefully plan slack time as we don’t exactly know when exactly it’s going to happen. It appears whenever our flow becomes unbalanced, which sometimes means all the time.

You can say that slack time is some sort of flow self-balancing mechanism. Whenever team members happen to have this time while they don’t do regular work they are encouraged to do something that improves the flow in future, usually balancing it better. At the same time the more unbalanced the team and the flow are the more slack time there will be.

Remember though that in software development business our flow won’t be stable. Even when you reach equilibrium in one moment it will likely be ruined a moment later when you’re dealing with a special case, be it a non-standard feature, a team member taking a few days off or whatever else.

It means that even in environment which is almost perfectly balanced slack time will be happening. Even better, such state means that you don’t have a fixed bottleneck – it will be flowing between two or more roles, meaning that every role in the team would have slack time on occasions.

Another specific of slack time is that usually we aren’t told what exactly we should do in it. It doesn’t have to be that way in each and every case, however since slack time itself isn’t planned we can hardly plan to complete something during slack time in a reasonable manner. On the other hand there may be some guidance which activities are more desirable.

It means that slack time seems to be a tool for teams that trust each other and are trusted by their leaders. It is true as slack time, thanks to its emergent nature, can’t be managed in command and control manner.

However, for those of you who are control freaks, considering you have sensible WIP limits even if your people do nothing during slack time (and I mean virtually nothing) it should still have positive impact on team’s productivity. This is because 100% utilization is a myth. Note that in this case you lose self-balancing property of slack time – you don’t improve your flow. You just keep your efficiency on a bit higher level than you would otherwise.

What Slack Time Is For

I’ve already mentioned a few ideas what to use slack time for. Let’s try to generalize a bit here. Slack time, by definition, isn’t dedicated to do regular stuff, whatever “regular stuff” might mean in your case. If you think about examples I used and try to find a common part these all are important things: learning, improving team’s toolbox, balancing the flow or improving quality.

At the same time none of them seems to be urgent. It is usually more urgent to complete a project on time (or as soon as possible) than to tweak tools team uses or introduce new quality policies.

In short, slack time is for important and not urgent stuff. If something is urgent it likely is in the plan anyway and if something isn’t important what’s the point of doing it.

If you’re interested in more elaborate version of that please read the post: what slack time is for.

Other Flavors of Slack Time

When talking about slack time it is easy to notice that there is some ambiguity around this concept. Why unplanned slack time is OK and planned time slots dedicated to the very same tasks are not?

Personally I’m far from being orthodox over definitions. For me the key is understanding why and how slack time works and why it is valuable, so you can achieve similar effects using adjusted or completely different methods.

Considering that a general goal of slack time is improvement you can introduce dedicated time slots for that or include improvement features in your backlog. The effect might be pretty similar and you may feel that you have more control over a process.

What more, you may want to plan for improvement activities not leaving it to the random nature of slack time. Again, that’s fine for me even though personally I wouldn’t call that slack time.

We may argue over naming, whether something already can be called slack time or not, but I’m not going to die for that really. Especially if we agree on purpose of these activities.

I hope this helps to understand the concept of slack time – what it is, how it works and why it is valuable. Should you have any ideas what is missing or wrong here please leave a comment below. I’ll update the post.

{ 0 comments }

Pitfalls of Kanban Series: Abusing WIP Limits

May 8, 2012
Thumbnail image for Pitfalls of Kanban Series: Abusing WIP Limits

This is another problem that comes in different colors. It’s either simple acceptation of WIP limits violation, no matter how commonly it happens, or setting WIP limits so high that a team never gets even close. Now, I don’t say that violating WIP limits should be forbidden at all. Pretty far from that. I just [...]

Read the full article →

The Project Portfolio Kanban Story: Better Board

May 1, 2012
Thumbnail image for The Project Portfolio Kanban Story: Better Board

When applying Kanban on project portfolio level you’re dealing with different challenges than in case of standard Kanban implementation on a team level (if there even is such a thing). Both the flow dynamics and task granularity is very different, thus you need to focus on different aspects when designing Kanban board. This is basically [...]

Read the full article →

Pitfalls of Kanban Series: Kanban Board Not Up To Date

April 26, 2012
Thumbnail image for Pitfalls of Kanban Series: Kanban Board Not Up To Date

This is something I see very often and at least in a couple of flavors. The problem can be a team member who haven’t really bought the whole thing and see little value in updating all these stickies on the board every time something changes. It can be more a whole team’s thing – Kanban [...]

Read the full article →

Pitfalls of Kanban Series

April 26, 2012
Thumbnail image for Pitfalls of Kanban Series

One of tricks I sometimes use when coaching teams that are starting with Kanban is I tell them why they shouldn’t adopt it. Challenging the team in such way helps me to indicate whether there is buy in as this is crucial thing to deal with issues the team will face. I do that knowing [...]

Read the full article →

You Can Deliver Late

April 24, 2012
Thumbnail image for You Can Deliver Late

It is a problem that never really goes away. You build your app and at the beginning everything seems to be as planned. Suddenly you realize you are late. For the sake of this post it doesn’t really matter whether late means 6 more months in 18-month long project or a day in a week-long [...]

Read the full article →

The Project Portfolio Kanban Story: Why Standard Board Design Is Not a Good Choice

April 20, 2012
Thumbnail image for The Project Portfolio Kanban Story: Why Standard Board Design Is Not a Good Choice

When I was starting my journey with Kanban on project portfolio level I based on a classic board design I knew from my work with Kanban within project teams. I basically tried to map value stream to the board but on a different level. The effect was sort of predictable. It was also naive. The [...]

Read the full article →

How Much Work In Progress Do You Have?

April 17, 2012
Thumbnail image for How Much Work In Progress Do You Have?

One of common patterns of adopting Kanban is that teams start just with visualization and, for whatever reasons, resist applying Work In Progress limits at the very beginning. While, and let me stress it, resignation from introducing WIP limits means drawing most of improvement power out of the system I understand that many teams feel [...]

Read the full article →

Instant Feedback Culture

April 12, 2012
Thumbnail image for Instant Feedback Culture

There is said a lot about feedback. We continuously learn how important it is and how to deliver it in constructive way. Yet still, for many of us, me included, delivering feedback is difficult. I already hear you nodding your heads and saying “yes, especially critical feedback is a hard part.” Well, no. Not at [...]

Read the full article →