Whether in scenarios of accelerated growth or even in the unfortunate moment of layoffs that we are going through, developer hours are one of the most expensive and valuable resources for companies. In this way, productivity and efficiency become significant advantages for professionals and teams.
But what is the difference between productivity and efficiency? I liked the definition I found in this post:
While productivity aims at more results with the same effort, efficiency aims at less effort, maintaining the same result.
In this series of posts, I will present some tips on how developers and companies can improve their productivity and efficiency in tasks and projects, guaranteeing their jobs, profits, and job satisfaction.
In this text, I will write about what developers can do to improve their productivity and efficiency. And in part 2, I will focus on what the team and the company can do.
First and foremost, this content results from my experiences as a developer, technical lead, and tech manager and the result of reading over the last 25 years.
And you’re not going to say anything about how to measure productivity???
Indeed, one of the issues that always comes to mind when we talk about this is, “how are we going to measure whether we are improving?”. Performance measuring is a complex subject, and I will leave it out of these posts, but I highly recommend reading two necessary materials about it:
That said, let’s get to the topics.
Master your tools
I’m a big fan of Norse culture and mythology, and a few years ago, I came across a text that I like to quote from time to time. These are the Viking laws, and one fits perfectly in this context. It’s “Keep your weapons in good condition.” It refers to the fact that a Viking warrior could go into combat at any time, so having your weapons always in good condition could be the difference between life and death.
Less dramatic in our daily lives, the tools (weapons) we use can be crucial to increasing our productivity. Take the time to study the language you use, the editor or IDE, and your operating system. Create and use shortcuts and code snippets, and make scripts for repetitive tasks like application build. Learn to use the operating system’s terminal and create shell scripts or tools like make.
As for task automation, I like to use a rule. When I need to run a task for the first time, I do it as quickly as possible, usually manually. If the same job appears a second time, I still run it manually, but I start paying more attention to it, as it is no longer an exception and becomes a coincidence. If it appears again, it becomes a trend, and at this point, I create a script, so I don’t have to carry out the process manually from then on. Using this rule, I avoid premature optimization.
I stopped relying on my memory and started writing down everything I learned and did. With that, my head is freer to create new things.
Create a record of your learnings. I created this site for this purpose and have been doing this for the last 20 years. But you don’t have to do this in public. Instead, you can write it down in a text document, in Google Docs or Notion. The important thing is that you can easily find it when needed. For example, I have several notes stored of stuff I use daily:
By the way, to add this image in the text, I looked in my Notion on how to do it because I didn’t remember which was the correct directory to save them ;)
Another thing I’ve been doing that has been beneficial is taking notes in a document when reading a complex post or book. Key points from the text, comments, etc. Doing this has helped me absorb knowledge better and helps me find information when I need it:
And one last item I can include in this category is the “Brag Document,” as Julia Evans wrote in her fantastic post about it.
Complexity is a massive problem of technology nowadays, and it’s usually within our control, at least partially. I highly recommend two seminal books about this topic:
I certainly couldn’t exhaust this subject, but I hope these topics make sense for you as they have for my experience. And I’m open to discussing more suggestions and adding new posts to this series with tips from readers.