Product Crafter Emilio Carrión

Stop beating around the bush

The Art of Focus

Humans are absent-minded by nature, our brains tend to beat around the bush looking for the path with less resistance and, sometimes, we get lost in the immensity of the forest.

Losing focus is a common thing that happens to all of us (although to some to a greater extent than others, I raise my hand as the first to lose it always). Losing focus is unfortunately something we are very good at. That’s why we have to practice so we don’t lose it and work to focus on our tasks to do them in the best possible way.

The consequences of losing focus

Losing focus is an event that is scientifically called “beating around the bush”. It is a complex situation that requires a person who is not very motivated by what she is doing and a stimulus attractive enough to throw all her productivity down a cliff.

You’re doing a routine task, cleaning up some code, reading documentation from a library you use, updating a dependency and… Wait, is that a new JavaScript framework? You have to read all the documentation now and start playing with it.

“Do you already have the changes?”, the tech lead asks.

“What changes?”

Exactly. You’ve been beating the bush 🌿.

Losing focus is unfortunately easy. And unfortunately, it doesn’t just affect our productivity as developers, which makes our users (and business) sad. It also affects the quality of our software.

You’re developing a new feature. You’re reading the requirements and realize that the assignment has quite a few things to consider. Well, users need all those requirements, and luckily, you have a good memory. You start writing the tests that cover each and every one of them, you implement the changes to turn them green. You only have a couple of requirements left to cover and… Who do you say brought a cake? Ana’s birthday? Let’s congratulate her…

“I’ve tried the changes and they’re not working quite right” the product owner tells you.

“Excuse me?”, you coming back with the second piece of cake. “If I’ve covered all the cases with tests…”

Exactly. You’ve been beating around the bush again 🌿.

When you develop software you have to focus on what really matters, solving the problem you’re trying to cover. To do this, we need to focus on the requirements and what our users need. Losing focus and implementing the product halfway will make your users (and business) sad again (for the second time in the same article).

And losing focus not only affects the quality of our software, but we can also impact its complexity and maintainability (which defines the money it costs to iterate and add new functionalities).

You’re with your team doing mob programming, testing a new way of storing information to make queries more efficient. You are trying a few solutions that more or less convince you, they fulfill what you are looking for since they reduce the time of the requests enough and… What? Did you found a new database? And we can set up a cluster of nodes that will make us gain 10% latency? Let’s assemble it, right now…

“Does anyone know what that rack does in the kitchen? And where have you been these last two months?”, the CTO asks.

Exactly. The bush 🌿.

Ways not to lose focus so much

As I’ve discussed in previous articles, in many ways developing software is like taking care of a garden. And since we’re beating around the bush, it’s best to get some good pruning shears. So here are some tips and tools to lose focus less and emphasize what matters most:

  • Do small steps: Making small steps is essential in software development. It reduces complexity, allows you to iterate and get feedback more frequently, and allows you to focus. If every task you do is well-defined and manageable in size, it will be much harder for you to distract yourself with something else.
  • Do TDD: I recommend it in one out of every two articles (and someday I’ll write one about it) but doing TDD is the cornerstone of all the development I do and it’s the most powerful tool I know to make good software. In addition to making you focus on the requirements you’re covering, it allows you to focus on one thing only: turning the damn test green.
  • Do one thing at a time: related to the above. We’re horribly bad at doing more than one thing at a time. The odds of going off the rails when you do more than you can take on are exponential with the number of tasks you have to pay attention to. So, let’s do only one at a time and we’ll beat around the bush less.
  • Learn to stop: This is a skill that experience teaches you and is almost as powerful as doing one thing at a time. We have to learn to stop, to understand and accept that we have gone too far, and to be able to realize and not continue.
  • Learn to go back: in addition to stopping, we also have to know how to go back and accept that we have made a mistake. And that’s okay, going backwards can be a good way to get out of the mud and get our work back on track. It’s never too late to start over.

And finally, some practical tips:

  • Implement a focus time: If you have a hard time concentrating, set a period of time in which you are in absolute focus. You can put on your headphones and isolate yourself from the rest of the team, or you can go into a room and solve a task that got stuck. The important thing is to make the conscious decision that, for example, the next hour is going to be you and that task, nothing more.
  • Implement that focus time as a team: the focus doesn’t have to be individual, practice in the same way by pairing or mob programming with the rest of the team. Focus on a task and make an effort not to beat around the bush until you’ve finished it.
  • Learn to say no: many times the loss of focus does not come from us but from the context that surrounds us. Learning to say no will help you focus on the task at hand. So the next time someone comes to distract you with something that can wait, practice politely saying no. When you don’t need that focus, you’ll help them.
  • Establish routines: And implement routines in your team. Checkpoints where you refocus your efforts and get back on the right track. My engineering team, for example, we do 5-minute syncs every morning to focus on what we’re going to do that day. This type of routine allows us to regain focus if we have lost it and focus on what matters.

Focus is essential to reach our goals. Don’t beat around the bush and you’ll get what you set your mind to.

TL;DR

Losing focus is unfortunately a very common occurrence among software developers. Our minds tend to wander easily, leading us to implement half-baked requirements, affect the quality of the code, increase its complexity, and even deviate completely from the original goals. However, maintaining a solid approach is critical to making good software and achieving our goals.

The key is to learn to avoid “beating around the bush.” Taking small steps, doing TDD, doing only one task at a time, and knowing how to stop and back up can be good tools to achieve this.

Losing focus can lead us down harmful paths, but by following these lessons and applying discipline, we can avoid beating around the bush and stay focused on what really matters: making quality software and achieving our goals. A solid approach is the key to success.