Codealike Focus: Discover and Improve your Coding over Time
What’s Focus Level?
It’s a metric which models your level of concentration while coding and can be used to track your performance over time.
We do not follow up on what happens when you abandon the IDE so abandoning is taken as an inactive interval for the focus estimation. Even if we could follow up on that, the question would be: how could we know whether those tasks are actually related? Yes, eventually we are going to get there. 😉
How is it estimated?
This metric is computed using a formula which considers a combination of active and inactive statuses over time.
Active states include periods of coding, debugging, and compiling states, while any other condition is considered an inactive state.
The focus value represents a percentage, so it assumes a value in the interval of 0-100.
The formula to estimate these values is comprised of two functions: one to model a surge in focus that is applied during active intervals and another that represents a decay in focus, which is applied during inactive intervals.
The growing function models three different stages while coding:
Setting up, warming up or recovering time: An initial period when you need to set up or recover your mental context in order for your focus level to rise. This happens when you start the session or after a prolonged interruption.
Effective coding time: A quasi-linear area of growth that starts after the setup and extends until the point of saturation, where your capacity to sustain concentration levels off. During this interval, any increase in the active time strongly contributes to an increase in your focus level.
Saturation interval: This occurs when you are continuous coding and your focus is affected by a drop in concentration/mental fatigue. During this segment, focus increases, but at a slower rate.
The decay function models the effect of context switching on your performance. There are two different types of decay behaviors:
Slow decay interval: This applies during the first minutes after interruptions. Since Codealike tracks activities that take place inside the IDE, this slow decaying interval tries to avoid heavily penalizing those coders who permanently go IN and OUT of the IDE, like developers working on UI. Eventually, when the sources of information allow us to model the focus with greater detail, we will be able to better discriminate among different types of interruptions.
Fast decay interval: After the first few minutes of interrupted work, extra inactive time accelerates the focus decay, and will also reset the focus to zero after more than twenty minutes of inactivity. This parameter is still in the process of validation.
What does it tell me about my work behavior?
A focus curve can show you the periods of the day when you were able to reach “the zone”.
“The zone“ is the state in which your entire cognitive effort if focused on a particular task. When you’re there, the outside world disappears and you are at peak efficiency, getting things done at work.
Comparing focus curves, you can discover how your performance is affected by:
Interruptions like meetings, calls, lunch
Environmental factors, such as music, noise levels, distractions in your work environment
Working styles like pair programming
It can also display the working time-cycle for each member of your team
How can I improve my focus level?
The focus metric promotes continuous work without interruptions. The more the activity, the higher the focus level.
Short interruptions have a lower impact on the focus level than longer interruptions; but research shows that interruptions in general hurt your productivity.
Why not show the focus value in real time?
Accessing real-time analytics of the focus value seems like a great feature at first. However, it would contradict Codealike’s aim. We want you to kick ass, so showing any additional high frequency information while you code could be a disruption trigger and harm your concentration instead of helping it.
As a design criterion, Codealike must be as unobtrusive as possible.