Agility Potion +1:
Working with obstacles

in Coding 3 minutes read

Exasperation or disappointment are typical feelings. It does not surprise me anymore how people usually react to unexpected roadblocks. You really wanted to make it happen but now you can’t and it’s all just because that little thing stopped you. The harded you wanted it, the more intense this feeling was. I had moments like that too—a lot of them. Over the years, though, I learned that they don’t matter If I deal with the feeling fast and start thinking about moving forward. It’s all that matters.

I know I can work on my way of approaching this kind of situations. Though I’ve found more productive ways to restore my focus—objectively look around to see what the situation really is. Are my feelings right? Sure, I’m fully entitled to them.

Am I exaggerating?


What should happen next? I see two options:

  • I am simply blocked. I pause my work until obstacle will be resolved
  • I am blocked only on some part of the task, but there are other parts that I can work on

The problem with the first option is that it means creating an artificial delay. Until the obstacle is removed, I can’t pick up where I left off. To visualise, If the work until finding the obstacle took me 4 weeks, waiting takes another 3 weeks, and then I need another 5 weeks to finish what I’ve started. This means 12 weeks until something can be accomplished. Just because I perceived the task in a binary way: blocked or unblocked. It might be true, but I’ve seen that in most of my cases it’s just an illusion.

The second option gives me the ability to move forward. There is always a chance that the blocked part of the task will be resolved while I work on other parts. In that scenario I get back to the previously blocked issue, finish it and accomplish the task. In the best case scenario everything is done in 9 weeks instead of 12. Code is shipped to customers 3 weeks earlier!

The only change that had to happen was the attitude.

In one of role playing games you could drink one of your potions. To move faster? Agility Potion +1, usually the green one in your backpack. In real life? Articles, books, workshops, experiments, more coding!

In reality I’m not recommending usage of any other potions, however, there are some noted applications that may prove me wrong…

Ballmer Peak (xkcd)

Unstuck option in World of Warcraft

…and far more advanced remedies (on your own responsibility).

I consider work flexibility to be as important as other skills. Taking care of code quality or increasing performance means little if I am not working on the task at all. This does not mean that I am less productive in general. There is always a possibility to have another thing to do while waiting for someone else to finish their job. This, however, means that providing value to the customers will be delayed and that’s the exact opposite of the primary goal of my job.

My friend, Łukasz Przybył once mentioned to me that it’s good to always have a side project of some sort, so you can work on it if you really can’t move forward with your current assignment. This helps you switch contexts without spending too much time on looking for something else to do. I’ve found it helpful and you might, too, in case when there is no way to drink any potion.

Constant practice, experiments and honing your craft provide satisfaction and the feeling of achievement. Drinking potions like the Agility one will give you an idea of the range of possibilities for every situation you encounter.

Having a whole set of recipes, brewing and sharing them is something we all need.

Interested in more potions? Here’s the list:

Interested in getting through obstacles?
There’s entire book on how Obstacle is the way.