In software development, the number of effective work hours is not the same as the number of hours you are at work. I'm going to be upfront and say it is never as high as you think it is.
This article is meant to give you a feel for what your effective hours might actually be.
Effective development hours calculation
Let's start with this formula for calculating effective work hours.
E = W - (D + C + M)
E: Effective development hours per dayW: Work hours D: Time for daily non-development dutiesC: The time penalty for context switching x the number of non-development dutiesM: Time lost for morning inefficiency
We'll fill these in as we go...
The 8hr working day
Let's assume that you are working for 8hrs, not including your breaks. Developers tend to be encouraged to estimate tasks based on this full day.
If I was fingers-on-keyboard effective 100% of the time during all work hours, then a task that I estimate for 1 day should be my maximum theoretical output of 8hrs. But this is never the case.
E = 8 - (D + C + M)
Let's deduct time for detractors
Here are 5 non-development items (with some average numbers based on my experience).- Emails (15min)
- Standup (15min)
- Meetings (30min - may be more or less depending on the day)
- Meetings within a sprint are likely to include:
- Scope/requirements/design discussions
- Architecture discussions
- Backlog grooming
- Sprint planning
- Sprint review (and possibly a demo)
- Sprint retrospective
- Misc.
- Helping others (e.g. to debug, code review, aid decision making) & misc duties (15min - may be more or less depending on your role)
- Random chatter (15min)
These 5 non-development items mean that 1.5hrs are deduced from each day on average.
Now your day only has 6.5hrs.
So you are 100% effective for 6.5hrs right? No!
E = 8 - (1.5 + C + M)
What about context switching?
The multiple distractors have a cost.
Every time you change tasks, it takes time to ramp up to full speed. We call this getting into a flow state. According to Very Well Mind it can take around 10-15min to ramp up. For some tasks it could take a lot longer!
For the sake of this discussion, let's keep this conservative. Those 5 detractors require 15min each, totalling 1.25hrs. Note that this assumes that you only check your emails once per day, and help someone once per day.
Now your available time is 6.5 hrs - 1.25hrs = 5.25hrs
E = 8 - (1.5 + 1.25 + M)
It gets worse!
In my experience, those 5 items are spread throughout the day, and mornings are particularly inefficient. Here is an example schedule.
- 9am - Get to work and settle in
- 9:15am -9:30am - Check emails
- At this point you already lost 15min of the day
- 10:00am - 10:15am - Standup
- But what happened to the 30min between checking emails and standup?