Improve Developer Productivity using Work Blocks
Efficiency & Flow
I used to work hard to get things done effectively. I was always working, but it wasn't effective. In the end, I was left drained and discouraged. The frustration led me to research time management techniques. I recently started experimenting with work blocks. I realized it helps me get things done sooner and enables me to measure my efforts and identify a potential way to improve them.
Illusion of time
Time is an imaginary concept used to measure the distance between two events. Simply applying time-based metrics will not help a developer who does a collaborative, creative, and complex task. Though there are several frameworks and techniques to improve productivity, it takes discipline to perceive time properly and strategy to use it judiciously. The 24-hour day is all we got, and it's seldom enough. Before you know it, the day is gone, and you're still far behind in your project.
A research study on software engineer productivity found that developers' happiness can lead to higher learning abilities, improved focus and productivity, and lower mental fatigue. Unhappiness, however, can lead to delays in process activities, sloppy work, and breaks in the flow of work.
There are several definitions, frameworks, and measurements of developer productivity, and the SPACE framework provides an excellent way of gauging developer productivity. Satisfaction, Performance, Activity, Collaboration, and Efficiency are the key aspects of the SPACE framework. It defines efficiency and flow as the ability to complete work or make progress with minimal interruptions or delays, individually or through a system.
[excerpt from SPACE] For individual efficiency (flow), it's important to set boundaries to get productive and stay productive—for example, by blocking off time for a focus period. Individual efficiency is often measured by uninterrupted focus time or the time within value-creating apps (e.g., the time a developer spends in the integrated development environment is likely to be considered "productive" time).
Thanks for reading Dev Den! Subscribe for free to receive new posts and support my work.
What are work blocks?
A work block is a dedicated block of time on a calendar that measures accomplishments. First, it’s important to know that a work block isn’t a unit of time but a unit of work accomplished.
Purpose: Work blocks are specifically designated periods set aside for focused work on a specific task or project.
Prioritization: Work blocks are often used to prioritize and manage time more effectively, to be more productive, and to meet deadlines.
Monitoring: Work blocks serve as a unit of measurement over a week/day to quantify a developer's effort
A work block is a specific and purposeful time slot on the calendar, whereas normal calendar events can be anything from a meeting to a birthday party.
How to use work blocks
You should always break big tasks into smaller ones, called the Act of decomposition, so you can finish in a work block or, at most, three work blocks. The duration of a work block can be one, two, or three hours, depending on the sociological and technological conditions. However, the duration shouldn’t be less than 25 minutes, and there are times my focus blocks are as long as three hours. Using the Pomodoro clock to measure focus time is also an option. I use the free version of the Centered app to stay in the flow state.
I create events on my calendar with a short description which is easy enough to categorize my work block. For example, last week, I worked on some pull requests (pr), real-time synchronization (real-time), and other activities, which you can see in the image below.
Here is an Interface I built by syncing Google Calendar with Airtable.
(built with Airtable)
I strongly believe in what Peter Drucker says "What gets measured gets improved". Monitoring the developer's effort and finding the effort's outcomes is important. I monitor my input metrics through work blocks, and here are the numbers I measure each week to understand my efficiency and flow. There are several tools and techniques to measure the output metrics, which I will cover in the future.
This gives me a weekly snapshot of (top left to right)
How many work blocks have I completed
Total number of work block minutes
The average duration (mins) of my work block
A bar chart with a distribution of work blocks grouped by my description
A pie chart to show the amount. of mins spent on each category of work block
A line chart to show the work blocks across different dates in a week
Final bar chart to show when I am more active at a time of a day
Here are the references and tools mentioned in my article,