If a member of the team wears their headphones, they are working on a problem. Do not disturb them by talking to them directly. Instead if you require assistance use Slack. If you see walk-ins, also ask them to use Slack.
Plan answer periods
When working intensely, breaks are important. Before heading off to a break, take a look at Slack and email to see if anything requires your attention.
“Flow, also known as the zone, is the mental state of operation in which a person performing an activity is fully immersed in a feeling of energized focus, full involvement, and enjoyment in the process of the activity.” (Wikipedia)
We aim to spend as much time of our work day being productive in our work with minimal interruptions, while also providing the opportunity for communication to occur as needed or required.
7 flow conditions
1. Knowing what to do
Issues should be clearly defined, discussed and understood fully by the person working on it, including the technical strategy for delivering the feature, but also the business reasons behind the problem.
2. Knowing how to do it
The person working on the issue must feel capable of delivering the issue to completion.
3. Knowing how well you are doing
The person must get a way to track their progress as they are working on the issue such that they can reasonably well estimate their percentage of work done and if they are on the right track. Our primary mode of development work is test-driven development, which supports this.
4. Knowing where to go
The person working on the issue must have a clear understanding of the next few steps they work on, that is to know what requirements are still missing.
5. High perceived challenges
Nobody likes to work on boring routine task regularly. Flow is maximized when the perceived challenge is appropriately high and the person feels like they are doing something new and perhaps exciting.
6. High perceived skills
The person working on it is most productive if they can perceive their skill set of the problem domain to be high. Working on challenging (or even simple) tasks if you feel like you are still a beginner or have not yet grasped the scope of something is a huge detriment to productivity. To aid this, we try to sometimes offer pair-programming where appropriate, especially to new developers.
7. Freedom from distractions
Workspace should be free from distractions as much as possible, such that the developer can concentrate on the issue they want to solve with their full attention.