Dec 01, 2019

The Art of Effortless Development

TL;DR

  • We are happiest when we are in flow—an effortless but productive period of intense focus
  • By being more mindful of when we are in flow, we can protect our most productive times to be happier developers

Now tell me who can stop me?

I'm in the zone.

Competitions none.

In a league of my own.

—Lyrics from In the Zone, by PL

Steph Curry is the latest player to transform the game of basketball.

At 6'3" he's tiny, at least for the NBA. When he enters the zone, he seems to effortlessly sink three-point shots from almost anywhere.

He not only transformed Silicon Valley's Golden State Warriors into NBA champs, but he also disrupted the game for all NBA players and teams. He proved that you don't need to be a big man in the center to win the BIG game.

You can do it from the outside by getting into the zone. And players and teams have been practicing and taking more three point shots ever since.

So what can developers learn from Steph Curry? And what does it mean to be in the zone?

steph curry
Source: SLAM

The Definition of Flow

In the 70s, Dr. Mihaly Csikszentmihalyi, a leading authority in positive psychology, defined "the zone" as a state of "flow," which can often be seen in athletes, artists, and developers.

Dr. Csikszentmihalyi studied what makes people happy, and he found that people are happiest when in flow.

We've all experienced periods of effortless focus, when we look up, time has passed, and we've accomplished a body of work. There's a joy in that effortless but productive passage of time and a lingering sense of accomplishment.

So how can developers identify and leverage flow?

Data Behind Developer Flow

Developer live in a digital world filled with digital tools. As a result, we can track data, such as keystrokes per minute, from text editors or IDEs, and visualize them in heatmaps to look for typical patterns of peak quantitative activity averaged across all days. We can also look for patterns across specific days of a week (e.g. week days).

heatmap

Developer flow is when we do our best development work, which can include collaboration, research, design, architecture, reviews, debugging, and of course coding.

Code flow is a narrower subset—when we are coding most effectively, when we have eyes on screens and hands on keyboards. We can quantify code flow by tracking metrics such as keystrokes per minute, characters added, characters deleted, and characters pasted across work days and weekends.

Why Measure Code Flow?

Flow is when we harness our ability to focus, when we make the best, most effective use of our time to work. By measuring code flow, we can identify our natural focus times during the day.

And by identifying repeated flow bands during the day, we can begin to harness the power of flow. We can purposefully protect time on our calendars and be more mindful of using our flow bands for our most important work.

Humans are cyclical in nature. We have circadian rhythms that affect our sleep times, stages, and quality. And we have natural times of the day when we focus best.

That's why we find advocates that recommend devoting our earliest time in the morning to our most important work. But for developers, who are often night owls, there may be powerful flow bands late in the evening as well.

Flow is the union of happiness, productivity, and work.

flow diagram
Flow.

Find your flow to become the best developer you can be, and who knows what industry you might disrupt.

Want to get more of these in your inbox?

Subscribe for weekly updates from the Software team.