I have several email accounts and send/receive so much email that Thunderbird and Outlook are pretty much the only clients that don't crash on a regular basis.

Recently, I started a new job working remotely and I'm realizing more than ever that emails and IM's are starting to get really annoying.

An email every few minutes and desktop alert + sound to go with it makes it to easy to lose focus on my task at hand and look at my inbox. While I loved this feature, it's become the Achilles heel of my productivity.

Email is inherently designed to queue messages so you can get to it at a time of your convenience. But in practice, this never seems to be the case.

If you like getting work done, like I do, you learn to appreciate inspired laziness as the positive character trait it can be. And I take this one step further: I turn off notifications entirely, checking them only during breaks.

There are a few ways that you can use this to your advantage and harness it for maximum productivity.

Choosing what not to do

Today's world is a combinatorial explosion of possibilites. The signal-to-noise ratio keeps increasing, and unlike computers; we can't simply upgrade our minds.

Choosing what not to work on is just as important, and arguably more important than choosing what to work on. This is laziness being used to increase efficiency.

Why spend days doing in-depth research on ten different approaches to solving a problem when you could've easily discarded eight of them based on some key criteria?

Cut to the key goals. Cultivate the skill of discarding approaches as quickly as you can. It's a lot faster to download code than it is to write it.

Balance communication with isolation

Every day, constant communication is the norm - via phones, email, video calls, you name it. The price of this constant communication is a serious uptick in interruptions.

For some fields, like management, interruption is how things get done. But for computer science, specifically software development, it's poison. If we can't get into a flow state, it's difficult to be productive; so communication has to be carefully managed and often, deferred.

This is something I believe holds true for most kinds of work, especially those that involve a lot of "brainwork" - like writing, for example.

People don't scale

Truly lazy developers let their machines do the work for them. This is partially motivated out of self-interest; but smart developers know that people don't scale; machines do. If you want something done the same way every time, and with any semblance of reliability, you want the human factor removed as much as is reasonably possible.

On an interview with n8n, community member Tephlon said something that I think captures the essence of this:

Do things exactly three times; once to learn it, the second time to perfect it, and the third time to automate it.

For every problem I encounter, I ask myself – how can I make sure that I never have to deal with this ever again? If I can fix it so that nobody else has to, then that's a wonderful side-effect too.

Like I've stated in the past:
Don't celebrate the creation of code, celebrate the creation of solutions.

Don't delude yourself

Now, there's a fairly clear distinction between inspired laziness, as described above – it makes everyone's lives easier, and just plain not getting off your butt.
And only you know what you are.