← Back

The 10 habits of a good software developer

A good developer improves code quality, pays attention to details, works well in teams, and adopts habits that make a real difference in productivity and craftsmanship.

HabitsCoaching

Although my current responsibilities do not allow me to spend the entire workday programming or writing code, I can still say (without hiding my gray hairs) that I have been in this profession since I was young, first as a hobby and then professionally, of course, and up to this day.

Although I spend a lot of time on business and entrepreneurial development activities, and also managing the development team at Solid Stack, it is rare for a year to go by without me actively participating in two or more product or project developments, apart from my personal code repositories and my entrepreneurial projects.

It is amazing how certain skills, after being repeated over and over again, end up becoming part of the natural way you do things: what used to require some effort eventually becomes easy, even automatic, through repetition and learning.

I read some time ago that 40% of what we do on a daily basis is governed by habits. Therefore, the only thing we need to do is delegate to them what matters most in our life and strive to maintain good habits; and if not, let the authors of Rich Habits Poor Habits tell you, a book I read recently and liked very much (unfortunately, despite being a bestseller, it still has no Spanish translation).

If you want health, create healthy life habits; if you want prosperity, create better financial habits; and if you want to program better every day… well, that is it: with work and some effort, incorporate the following habits that, in my opinion, define a good programmer:

#1 Write testable code.

Easy to say, but not so easy to practice. In my penultimate job, The Practical Book of the Agile Programmer, I describe the most important techniques for developing code that can be covered by tests (clean code, refactorings, design principles, etc.).

#2 Take care of the details.

Writing code is like writing a novel, and we already know that the newspaper metaphor tells us that code should be read from top to bottom. Taking care of every detail of the code you write (correct and coherent indentation, no unnecessary comments, etc.) is a sign of quality.

#3 It does not mind removing part of the code if necessary.

We have to accept this: as a software project evolves, and as design improvements are made, parts of the code will inevitably become obsolete and must be removed or deeply modified. Nothing is worse than trying to keep everything alive simply because you think it took you hours to develop it, thereby making the solution dirtier.

#4 Work on the planned tasks and not on others, and deliver on time.

Programming well (in the context of a project with a work team) requires sticking to some kind of methodology that sets the development pace, timelines, cycles, and phases. If a certain functionality has been agreed upon, a good professional follows through and commits to completing it on time.

#5 Continuously review what can be improved.

We are no longer just talking about refactoring: many aspects of a solution can be improved. The accumulation of small, incremental improvements will bring the project to the level of quality you desire.

#6 Read projects created by others.

There is nothing better than learning from more experienced programmers. On GitHub, you have thousands of code repositories you can use as examples.

#7 Do not reinvent the wheel.

I know we like to invent a new mechanism for writing log entries…, but get used to using solutions that already exist for the project aspects where they fit.

#8 Think that you work as a team.

This means that someone else on the team may need to pick up your work at some point. Try to leave it in the best possible state to make things easier for whoever comes after you.

#9 Avoid knowledge islands.

Job security does not exist; becoming a standout and in-demand professional does. It is very sad to see how certain attitudes lead some people to hide information from the rest of the team so that they are the only ones who know how to handle this or that issue. Without realizing it, this attitude turns them into slaves to the same project they will eventually come to hate. The antidote is to gain experience by participating in different projects over time.

#10 Collaborate with the rest of the team.

Software development is a deeply collaborative activity; if you do not know how to collaborate with your colleagues, or do not want to, sooner or later you will have to look for another job.

And I could mention one final habit as important as the previous ones: leave things better than you found them.

I could list many more, but I assure you that these habits (a real declaration of principles) summarize what defines a good professional.