O que separa um bom desenvolvedor de um excelente?

What separates a good developer from an excellent one?

Such an easy question to ask, right? Everyone knows that a great developer is one who has enough experience and knowledge to work on any project that comes their way. Combining years of work in the field with knowledge of different tools, languages ​​and technologies is what makes software engineers truly excellent. Or (…)

Bom desenvolvedor se tornando ótimo

Such an easy question to ask, right? Everyone knows that a great developer is one who has enough experience and knowledge to work on any project that comes their way. Combining years of work in the field with knowledge of different tools, languages ​​and technologies is what makes software engineers truly excellent. Or so you would think.

If the answer were so obvious, you wouldn't be reading this blog post (nor would we have written it). Yet here we are, so there must definitely be something more. Just accumulating projects and information does not necessarily make an engineer excellent. There are other things that make them really stand out from their peers.

Good vs. Great developers

If you asked lead developers what kind of person they would like to have on their team, most would likely list a few common characteristics. Things like excellent technology skills, problem-solving skills, and knowledge of programming best practices would certainly come first. Some would say they would love to see passionate people working for them, as well as engineers who enjoy working in teams.

These are all great as they are a desirable set of characteristics that developers should have. However, these are just the building blocks of a great developer. Truly great engineers go beyond these skills and into exceptional territory – after all, great developers are a rare breed. They are extremely productive, even more so than good developers. That's because they're always pushing that little bit further, refining their unique talent day by day.

It may seem like great developers are born geniuses who must be found, not trained. Of course, there are people with innate talent for whom everything seems easier, from learning new languages ​​to keeping code clean. But that doesn't mean engineers can't aspire to the same greatness. It may be more difficult and require a little more work, but every software engineer can be great as long as they know what to focus on. Here are some tips on this.

The Path to Greatness

The roadmap to success in any field is always paved with effort and hard work. Without this, even the most talented people will inevitably fail. This, of course, also applies to software development. Engineers who want to up their game will have to put in extra effort to become the elite they want to be, which entails several things. Leaving aside the more obvious aspects of all this (mainly, knowing about technical matters), here are other things that great developers have in common.

An unrelenting thirst for knowledge

In most people's minds, the best professional is the one who knows everything. The idea of ​​someone having encyclopedic knowledge about everything combined with common sense and sharp logic à la Sherlock Holmes seems to be everyone's goal. Who wouldn't want to overcome the most difficult challenges with just a glance?

However, knowing everything is an impossible ordeal. There is always a new technology, a new tool, a new approach to learning. So, instead of knowing everything, the best professionals (including great developers) adopt a mentality of constant learning. As all the things they know today may change, adapt or become obsolete later, they are always looking for new things.

They recognize that they don't know everything or that what they know is an undeniable truth. They are not afraid to ask for help and learn from any resource available, be it an online video, a new book, a conference or a new addition to the team – even if that person is below them, hierarchically speaking.

Paying great attention to communication

Have you ever played Pictionary with your friends and been perplexed by how your teammates can't figure out what you're drawing even when it's crystal clear? So you already know how difficult it is to communicate something clearly and unambiguously. Even if you've never heard of Pictionary (really?), you've certainly had those frustrating moments when you were absolutely sure you were explaining yourself, only to discover that the person you were talking to had no idea what you were doing. meant. .

Whenever we say something (or draw, in the case of Pictionary), we put a lot of things at stake. Most of it is basic information sprinkled with our own logic. So, whenever we say something, we always know what we mean, so we can't imagine that the other person can understand what we are saying. However, it happens – a lot. This shows that communication is a complicated thing that we cannot take for granted.

Apply this to the world of software development and you will see why communication is so important to the entire process. Software development deals with a good degree of abstraction (especially arising from languages ​​and development processes), but also takes into account aspects from psychology, design and business, to name a few. Understanding all of this to arrive at a cohesive solution is a huge challenge, for which great developers are very capable.

Why? Because they can communicate with all parties involved to deliver concepts and goals clearly, as well as to propose a work roadmap. They can understand customer requirements and translate them effectively to other team members. It also works the other way around – they can take complex technical issues and explain them in layman’s terms to the customer. Thus, communication makes it easier for everyone to work together in harmony and deliver more value.

A balanced approach to the product

Developers can be divided into two categories. First, there are developers who would do anything to make the software work, no matter what it takes. These engineers don't mind fixing code after code, reusing old lines, or using shortcuts or unconventional ways of doing things. They are pragmatists with only one thing in mind – that the final product works.

And then there is the second category, in which developers aspire to produce the best software ever created. They spend a lot of time trying to fix every little bug or optimizing the smallest details. They want their final product to look impeccable while providing an excellent user experience. They are perfectionists.

While both approaches have their advantages and disadvantages, leaning too much towards either side will certainly harm the final product. Pragmatists work in such a way that their products can become bloated or nearly impossible to maintain or update. Perfectionists, on the other hand, spend so much time worrying about details that the product, in their eyes, is never finished. Neither approach is good for business.

This is why great developers are adept at balancing both extremes. For one, they rely on peer review and client feedback to understand the issues in the program they are working on. They know how to take criticism without ever making it personal, and they know when criticism is helpful and when it goes nowhere.

Furthermore, they know when to stop development. They can identify when the software is ready to launch, taking into account the market and customer needs, the target audience and the technical aspects of it all. In short, they know when to take shortcuts to launch the product and when to focus on a solution that requires more work.

Ready to become a great developer?

As you can see, the skills that separate a good developer from a great one are things that anyone can work on. Firstly, you need to maintain a learning attitude to stay up to date with the latest trends and at the same time be open to learning from anyone and anything. Additionally, you need to work on being more empathetic – listening to other people's opinions and putting yourself in their shoes.

This will help you grow in your development skills and gradually transform you into a better professional. Just remember that you need to be constant and patient to see your efforts yielding results. The road is what matters and you will need to stay focused and strive because, as you may have already realized, greatness is not simple to achieve.

Related Content

Back to blog

Leave a comment

Please note, comments need to be approved before they are published.