Rubber ducks

Have you ever been in a situation where you have a problem or a question, and simply by explaining it to another person, you find the solution yourself? And not because the other person did anything in particular...

In fact, “the other person” doesn´t even have to be a person at all. It can even be an object, like a rubber duck for example.

yellow duck toy beside green duck toy

And I say rubber duck because this is exactly the name that´s been given to this technique in the IT world: the rubber duck debugging method.

This method proves really useful when you´re programming and get stuck trying to resolve an error (or bug) that´s preventing your application from behaving as it should. The idea is to explain the situation to the rubber duck, and to do it in great detail because of course, the duck knows absolutely nothing about your application. So you have to explain the context, the exact problem you´re trying to solve, how you´re trying to solve it, the code you´ve written line by line… And very often what happens as you´re going through it with such a level of detail is that you suddenly realize where the problem is, and how you can solve it.

Super cool, right?

You might be wondering: ¿why a rubber duck? Honestly, I don’t know, maybe it all started out as a joke, but the truth is that this method is as useful as it is simple (once you get over the awkwardness of talking to a duck, or any other inanimate object of your choosing), and can be used not only for debugging code but for life in general.

I imagine this technique works so well because it forces you to take the problem out of your head and see it from the outside, from a different perspective, so you stop going about it in your head the same way again and again. Moreover, the action of going through it step by step and out loud helps you to focus on details that you may have overlooked before, that way increasing the chances of identifying the real problem and finding a solution.

What do you think? Are you willing to give it a try? Perhaps next time I see a rubber duck in a shop, I´ll buy it to keep it here by my computer :-)

Balancing

Has it ever happened to you that the day feels too short? That it's nighttime already, and you still have a list of things you would like to do? And that you find it difficult to choose what to do today and what to leave for another day?

That's me at this very moment :-)

notebook with four blank tasks for today

Should I...

  • Do some yoga and stretching, to relax and feel better physically?
  • Spend some time studying for my course, so that I'm not rushing at the end?
  • Write another blog post, and keep up the momentum?
  • Or go to bed already, so that I'm fully rested tomorrow?

Those are the four options coming to my mind right now, and that's without counting the "mandatory" tasks, which are already done for today (those ones I've learned there's no point in postponing - the sooner you get rid of them, the better, and the less stress).

As you can imagine, today I opted for writing this post, not without pondering over it for a good while as I finished other tasks... Sometimes I find it a bit difficult to decide: on the one hand, knowing myself, I don't want to fall into the trap of always choosing the easy option, and leaving the one that involves more effort to the last minute. On the other hand, I don't want to dedicate too many hours to a single thing when I also want to make progress on others. And also, I know that as soon as I start doing any of them, time will very likely fly...

So what can I do? Well, keep balancing as best as I can.

The way I've figured out for the moment is setting up a weekly plan. On Sundays, I write down a task list for the following week, including X yoga sessions (replaceable by walks on days when the weather is nice), the course exercises, the blog posts, etc. I'm not assigning specific days for each task, I simply get to them as I see fit during the week, and tick them off (and oh how good it feels to tick off a task!).

That way I add more intention to my days, I make progress in all the areas I want, I can adapt to unforeseen events or take a break if I need to one day, and given that there's usually a bit more free time during the weekend, there's also the chance to finish certain things if I haven't been able to finish them earlier.

So far this my second week using this system, and of course I know that I won't always complete everything. But I think it's very useful as a reference, and it helps me to keep making progress, which at the end of the day is what matters most.

And you? How do you find balance?