14 April 2021

So… what makes a good developer?

In the past 20 years I’ve been able to work with many developers. Together we’ve worked on very large to the tiniest of projects, from huge corporate applications to simple web forms that deliver enormous business value. From beautiful new ‘greenfield’ applications to software written long before I was born.

During this time I noticed a number of things …

1️⃣ Find the actual problem 🤕

You can make beautiful and complex applications, with loads of functions… but if you don’t solve a problem or the wrong problem, it is all worthless.

The best developers ask questions, many questions, critical questions, sometimes confronting questions. Great developers want to talk to end users about the problems and annoyances they’re experiencing. They do not want to hear which solutions have already been devised, but which problems lie at the root.

Only when that is clear can you come to a good solution.

Good developers are often good communicators and are not afraid to be heard and/or stand out.

2️⃣ Curiosity 💡

Writing software is one big adventure, where things are constantly happening that you don’t quite understand. From strange errors and crashes to odd results or spontaneous hick-ups.

Many developers are satisfied when the code (sort of) does what is expected. However, there are also developers who keep going, who want to know what is going on behind the scenes.

Just because you are using a tool or framework to solve a certain problem doesn’t mean you don’t need to know what that tool is actually doing. How it all works.

Great developers have an intrinsic motivation and big curiosity. They always search, read and puzzle on. They want to be able to explain everything, all the magic needs to go. You may be a little slower at first… but when an error occurs or something crashes, they are the ones who can explain it and eventually fix the problem.

That knowledge, that curiosity, is worth its weight in gold 💎

3️⃣ Be positive, be open, be honest… be a teamplayer 👌

Every software project has a phase where things start to go wrong. Deadlines creep closer, those stupid users make impossible demands, everyone keep changing their minds. The managers are complaining next to your desk…

There are developers who can’t really deal with this, they don’t want to change, stick to the original plan. Also, they take changes and remarks personally.

Remember: Software development is teamwork!

You build something for but also with the users and the managers. You all have a common goal.

When users suddenly want something different from what you first thought of, agreed upon or perhaps already built… it might feel like a problem just popped into existence. However, something has gone wrong much earlier in the process. This could and maybe even should have become apparent from earlier conversations, initial designs or prototypes. Nor is there any point in looking for a culprit, if there even is one.

As a developer you are part of a much larger team. In order to work optimally in that team, it is important that you remain positive, that you are open and honest about what you do and what you expect from other people. Don’t hesitate to say “no” and keep asking questions.

Have you put a lot of time into a certain piece of code, but it doesn’t work? Or it is no longer necessary? Has someone come up with a better way to fix the problem? They don’t like your idea? I want to work with developers who can deal with this, who can and want to learn from this 🧠

We all know developers in these situations who spend the rest of the day sulking behind his / her desktop. Don’t be that person.

🤔 Do you recognize yourself?

Do you recognize yourself in what is described above? Are you that optimistic, curious, enthusiastic, decisive developer?

Perhaps we’ve get the perfect job for you as a (Java) developer at OpenValue.

Roy van Rijn

Director at OpenValue Rotterdam, Java Champion, JavaOne Rockstar, founder of the Rotterdam JUG, public speaker, blogger, loves: agile, cryptography, math, algorithms!