How much do I get interrupted and how can I get more focused as a developer?

This is a guest post by our developer intern Riordan Panayides, who has been investigating the potential applications to the business of consumer grade EEG headsets.

The Problem

You're in the zone. Headphones in, Visual Studio open, pumping out code like a boss. Then, all of a sudden a notification appears. Slack, email, a colleague tapping you on the shoulder, your flow is ruined. What was I doing again?

Distractions in the workplace can spoil your productivity and ultimately impact the profit of your business! Studies show that once interrupted, programmers can take 10-15 minutes to resume working at their previous level. Obviously, this isn't ideal so we wanted to see if there's a way of measuring your focus or attention, and helping you to identify and minimise distracting influences.

The Solution

Enter the creatively named "Attention Visualizer". The aim with this app was to create a simple interface for workers to record their attention level as reported by the Neurosky Mindwave Mobile (http://store.neurosky.com/pages/mindwave) EEG headset, save screenshots at a customizable interval, and highlight periods of attention loss. This should help users modify their working practices to be more focused, by making efforts to remove or lessen known distractions.

To begin with, we created a UI prototype using Axure RP , a feature rich prototyping tool. This interactive demo helped to narrow down features for the app and give a really good impression of what the final product should look like and how it should behave.

Axure Prototype

The Axure Prototype.

After agreeing on the prototyped features, I set about creating the app. For this, I used C# and WinForms, and built on my previous work <a href="http://www.earthware.co.uk/blog/can-eeg-headsets-be-used-for-software-usability-testing/" target=_"blank">logging data from the headset for a study on mental effort Once they have recorded a session, the user can review it by looking at a graph which highlights possible periods of distraction and recovery, and examining screenshots taken at that time to examine the source of the interruption.

Reviewing a Session

Reviewing a Session, a distraction is highlighted in red and the recovery time in green.

The user can also examine a range of sessions over time, resulting in statistics such as average attention, the number of interruptions and average recovery time.

Analyzing multiple sessions

Analyzing multiple sessions.
I packaged the app in a Windows installer using the free Wix Toolset for easy distribution, so the app could be tested in the office.

Conclusion

Since the development time for this project was only about six days, there are some more features I would have liked to add. These include more robust error handling, some performance optimisations such as screenshot scaling, smarter interruption detection, and a feature that automatically records the active program to make identifying distractions even simpler.

Even without these improvements, I believe this app could be a useful resource for workers and managers alike and aid increasing productivity in the office.

If you're interested in doing more to increase your productivity at work, check out this great article for some strategies for focusing in an office enviroment.