We’ve been thinking a lot recently about what makes a developer. How would we describe the average, common or garden developer? What traits does it take to make a good developer? Why do some, seemingly bright and successful people made poor devs?
There isn’t really a certain person that makes a good developer; they can come from anywhere, any educational background and be of any age and gender. We do however, believe that certain personality traits make for better developers than others…
These traits, whilst not a definitive list of ‘things’ that a developer must have seem to be present in the vast majority of the developers we know, work with and look up to.
Developing software can be a stressful, frustrating task. It’s often lonely and will regularly challenge your self belief. Without the ability to keep going when the situation isn’t looking good and believe in your ability as a developer it’s quite likely you aren’t going to make it through week one!
Knowing When To Throw In The Towel…
Sure, good developers need to keep at problems to get them solved but there is great wisdom in knowing when to give up. We don’t mean, give up, pack your bags and head home!
A good developer will know when to cut their losses on a particular solution or path of exploration and try something new. It’s often these places where one is forced to re-think their entire solution that problems get solved in really great ways.
Not Accepting ‘Because it does’ or ‘You don’t need to worry about that’ As An Answer
Often, when some responds to a question about how something works in this way it means they don’t know. That’s fine, we aren’t saying that every developer should know every single line of the system’s code. They should, however want to know how it works though.
If developers never attempt to learn more of how the system works then knowledge can be lost forever when people move on. Good developers should strive to understand as much as possible so that they can thoughtfully solve future problems.
This also brings us nicely to our next point…
Learning Is Your Responsibility
Learning should never stop. Good developers realise that they will never know everything but they should still try to learn everything. By doing this they open up their minds to different thought processes, giving them a wider range of tools when it comes to problem solving.
They also keep up-to-date with current trends and technologies…things change.
Not all development work is about writing code. Gone are the days where developers could sit alone in a room writing code until it was finished and then hand it over.
The world of modern software requires a developer to communicate with a wide range of personalities in an easy and effective manner. From project managers and product owners to peers and graduates, a great developer is able to be understood without being too verbose and get their thoughts across without angering. An ability which eludes many…
Nobody likes a show-off! The best developers value themselves as coders but don’t overvalue their own opinions. To be a great developer one must realise that it’s possible to be wrong and that by accepting that every suggestion could be a good solution to the problem no matter who makes it, the best solution is often found. And what do the best solutions mean? No, not prizes…the best code!
The Code Isn’t For You
The truly great developers realise that lines of code are written by them not for them. Code is really written for users, teammates and the poor guy that’s going to have to maintain it!
By realising this it changes the focus, instead of potentially having the ‘good enough’ mentality it builds a mentality that forges clean, readable and reusable code which is highly performant. Rather than obtuse code that nobody understands, but is really cool because it uses the latest neat language feature!
So, there you have it. What we really believe goes into making a truly top class developer.