It is important to stay focused on your programming task during the day otherwise you make mistakes, bugs get into production and your code advices are of a poor quality.
I worked with lots of different developers with various skills and personalities and there is a common correlation between the developer’s ability to focus on one task at the time and the amount of bugs and issues of their final code. Therefore, by improving your concentration you become much better developer.
You have received an email.
Johny mentioned you in #food channel.
Files were synchronised successfully.
All those half-transparent little balloons in the corner of your screen, popping up, making noise and disappearing are making your day harder and more tiring.
Every time I pair with a developer and a notification shows up I am surprised how distracting it is. And every time there is a notification I guarantee that the developer looks at it and read it.
These distractions are a waste of your mental power and drain energy out of your body resulting in mistakes and a lot of context switching. They create a false sense of urgency and lead into a lot of unnecessary context switching.
Turn them off. It can wait. And if the server is burning, you’ll know in time.
The ability to multitask is a fallacy. As a programmer you are building things in your mind — imaginary castles — and transferring them into series of bytes inside the computer.
One can only hold one castle at a given moment. If you are working on multiple things at once, you have to build your castle again, again and again. You might be efficient at building it, but you still have to build it which is way worse than dealing with just one and staying focused.
If you need to work on 3 different things during the day, set yourself a schedule. Work on the first one for 2 hours in the morning, the second one around lunch and the third one in the afternoon. You won’t feel as busy (don’t mistake as productive) but you will get them done.
But people can still come and talk to me, ask me questions unrelated to my castle; you might oppose, and that is perfectly fine as there is a simple way of dealing with that.
“Let me just finish this and I’ll catch up with you in 5 minutes”.
That’s a perfectly fine magic answer, so don’t look annoyed and just use this phrase. And catch up with the person in 5 minutes (if you don’t catch up you’ll become a jerk and if for some really important reason you can’t, let the person know that and apologise).
In 5 minutes, you can either finish what you are currently doing or get yourself into the state of mind where it will be easy to carry on the task when you get back. Write some notes, save your progress, add some todo comments and you might be surprised that when you come back you will have a new perspective and actually solve the problem faster.
Also, you can help your colleagues with the same issue by approaching them with a question whether now it’s a good time to talk or whether you should come in 5 minutes.
There is one more thing when it comes to dealing with people.
Please, please, give them your full attention and presence.
Don’t look at the screen at something unrelated, don’t reply to chat messages while you are talking with someone else. Firstly, it’s rude and secondly you’ll screw up both conversations.
Same applies if you are in the middle of deep conversation with your remote colleague, let the person know that you are going to catch up in a reasonable amount of time and then follow up.
It doesn’t matter how short your attention span is and whether you can stay focused for 5 or 50 minutes. Try to increase it, reduce all distractions and communicate it well to your colleagues. I’m pretty sure that you improve as a software developer and the relationships with your colleagues become much better.