Atomic Habits in Software Development

Table Of Contents

Compound interest is both a powerful and apt analogy for when it comes to devising your workflows. Improving a process' efficiency and efficacy by 2% can feel negligible. But when the procedures you’re optimizing are daily habits, the overall impact of these changes can produce staggering results.

With the right combination of alterations, tooling and automation, you can alleviate your pressures along with freeing up capacity within your team, all without compromising on the quality of your output.

When discussing productivity, it’s almost impossible to go without mentioning James Clear and his seminal New York Times bestseller, Atomic Habits. The work has been heralded as a user manual in crafting routines that extract the most value out of your daily activities. The core principles boil down to the idea of reducing the friction between tasks to aid your transition into a flow that overtime becomes second nature.

With development time having a clear impact on the velocity of the entire process of building and shipping successful software products, it’s no mystery that it’s written about and pondered ad nauseum.

There isn’t six months that goes by without a new “hack”, “plug-in” or “extension” that claims to be the ultimate secret weapon to gaming your brain. While these solutions often do indeed deliver on their promises of being able to help you boost your productivity, it’s usually due to them abiding by one core principle - being easily repeatable.

Eat Sleep Code Repeat

One of the fundamentals behind Clear’s formula for success is repetition. The idea that you can program yourself to repeat the same habits again and again will naturally yield incremental improvements over the long-term. It’s simple math and the reason why CI/CD and iterative development processes are responsible for some of the most successful products on the market.

The magic to this approach isn’t simply to do the same thing repeatedly but recognize the natural deterrents that crop up in our day-to-day actions that can make a routine more complicated than it has to be.

After all, when you’re training for a marathon, you don’t simply lace up your shoes and set out on a 26.2-mile jog. You’ve got to train up, get your sleep the night before, and create the optimum conditions to succeed.

Consider how you can make the actions that you want to do the most repeatable as possible. Context switching is often the biggest enemy of long stretches of productive development time. To combat its detrimental effects on your daily development efforts, you can go beyond blocking out some time and hoping for the best.

As an inspiration, here are three habits for productive software development.

Change Your IDE to Suit Your Project Type

Your current set-up might be the most familiar, but it potentially could be slightly unfit for purpose. As humans, we’re notorious creatures of habit and gravitate towards what we know rather than making an honest, objective assessment of whether or not our choice is the best tool for the job.

When you start a new project, use it as an opportunity to rethink your setup. There won’t always be a lot that you can change, given that as a team, you need to be working with collaboration in mind, but it’s definitely worth taking a minute to rethink your habits to suit the work you’re doing.

Combine Your Knowledge Repository with Your IDE

Whenever you start a new project, you can always expect to lose some time getting up to speed and completing all of the peripheral tasks that fall outside of actual build time and code reviews. But the trend in terms of time loss often tracks as an exponential upwards curve, with the result that the average engineer loses nearly half of their time to task switching as soon as they have three projects on their plate.

With this in mind, think about how often you actually need to leave your editor. Built-in knowledge repositories like Foam and Org Mode can help you build even more processes within your editor environment than previously possible. When it comes down to it, typing an extra command or looking at a different part of the screen is less likely to interfere with your workflow than exiting into an entirely different view.

The same goes for your note-taking app. If you haven’t already switched to Obsidian or Bear, then it’s definitely worth considering. Going with a markdown-first application for your notes will make documentation a breeze.

Use a Stream Deck to Switch Windows Quickly

Now that you’ve chosen the three windows that you’ll be switching between, albeit as few times as possible, you can now look at the sort of hardware that’s going to be the most useful. Multiple engineers can attest to the noticeable differences they’ve experienced ever since adopting a streaming deck for general everyday working purposes:

If a deck isn’t for you, perhaps think about a set of hotkeys or trackpad shortcuts that you can program to create a sense of continuity when context switching can’t be avoided.

Optimizing your workspace may appear to be an art form, particularly when said set-up results in a delectably smooth deployment. However, it can, in fact, be boiled down to a precise science. Using a series of integrations, LaunchDarkly Software Engineer Dan O’Brien explained in a recent talk how he uses feature flagging to enhance his workflows inside Trello and Jira to minimize the friction he experiences when jumping between tasks ultimately.

One Size Does Not Fit All

While all these tactics can produce noticeable improvements, the essential point to focus on is optimizing your workflow for you. If a habit can’t fit naturally into your routine, it might not be a good fit for you.

Remember to focus on making your processes easy to repeat and replicate across different areas in your organization. Practice realism to ensure you don’t end up setting yourself up for failure and, most importantly, reward your efforts.

Even if you didn’t manage to sprint the entire 26 miles on your first go, as long as you’re ending the day in a better place than it started, you’ll be able to carry forward this trend of continuous improvement and reap the benefits in no time.

Do you have your own stories around how you’ve worked to perfect your workflows and achieve peak productivity across your team? If so, we’d love to have you join us at our third annual conference, Trajectory, which takes place November 9-10, 2021. Registrations are now open! Click here to sign up for your place and join us for this year’s virtual event.

Written By:

Jessica Cregg

Written By:

Jessica Cregg

Jessica is a Developer Advocate at LaunchDarkly where she speaks about change and writes about the human implications of engineering decisions. She also writes for a selection of tech publications and works with Coding Black Females to improve equal and equitable representation within the technology industry.

Recent Posts

Creating and Publishing an NPM Package with Automated Versioning and Deployment

In this step-by-step guide, we’ll create, publish, and manage an NPM package using TypeScript for better code readability and scalability. We’ll write test cases with Jest and automate our NPM package versioning and publishing process using Changesets and GitHub Actions.

Read more

Offloading File Transfers with Amazon S3 Presigned URLs in Spring Boot

When building web applications that involve file uploads or downloads, a common approach is to have the files pass through an application server.

Read more

One Stop Guide to Java Functional Interfaces

Introduction to Functional Programming Functional programming is a paradigm that focuses on the use of functions to create clear and concise code.

Read more