And then there are those other situations, when you really need to finish that piece of software as other people are already waiting for you and you continuously get interrupted by your mates or by ad-hoc meeting requests, incoming IM messages etc...At the end of the day you mostly wrote a couple of lines and you're frustrated.
Zach Holman especially highlighted this during his presentation of "How Git Works" at QCon this year.
The best solutions happen when you're in the zone.
Slide 24 (if it doesn't redirect automatically)
Therefore, they want developers to be in the zone (slide 54) as long as possible. At GitHub they go even further:
- Minimize distractions
- No technical meetings (no standup, daily or planning meetings)
- No in-person distractions (instead, ping over chat)
- No managers (they just distract )
While some of these concept might be difficult to realize in your
day-to-day reality some should really be considered. Therefore, establish some kind of "respect for the zone". Clearly show your peers your currently "in the zone" and therefore you wouldn't like to be interrupted. How?
Show you're in the zone!
- Wear a cap?
- Take on your earplugs?
- Add an IM status message?
And on the other side respect people being in the zone. Don't
distract/interrupt them when it is not really necessary. We have async
ways of communicating: email, IM pings...
But you also need to make sure you minimize distractions on your own.
Prevent IMs from popping up, switch off all those social tools blinking
and presenting you the latest activities of your peers, etc...Put on
some music that helps you keeping focused.
Make sure you remain in the zone yourself!
Try to consider some of these aspects in your working environment!