What Makes the Best Developer
I’ve been struggling on this topic for a while, what makes the best developer, what are the coding chops they need, the background, the soft skills they need to make an impact.
I’ve read a number of articles espousing what you need to be a great developer, for me — it’s always come down to four traits — Drive, Delivery, Initiative, and Leadership.
From Day 1 to Day whatever in your career in software development through being a junior developer to team lead to manager to director to whatever — every developer should always be espousing these traits on a regular basis.
I become so disenfranchised when I hear someone say — “I’m not a leader, I’m not good with people, I guess I’ll stay here and code” and even worst when the response to this comment is — “Okay so they are going to be a coder for a long time, this is great, let’s keep them in this lane”.
Wrong statement, wrong response.
Every developer should be living and breathing these traits every day.
Drive is your passion, how hard can you push yourself to get something done. Can you get there on your own? Do you need help? Are you willing to seek out that help? Are you languishing in your current job? Are you willing to go look for that next jump and go through all those ups and downs of good and bad interviews to get there?
That new platform that everyone is using? Do you have the Drive to tinker away at it at night to demo for the rest of the team to get them onto it?
Before you can lead anyone or anything, can you lead the Army of One? Can you lead you? Are you willing to take that Drive and do something with it? Setting a plan, creating goals, pushing yourself when no one else will?
How many times have you heard a developer say — “I’ll learn this new thing when I have a project to learn about it”? They might as well be saying — “When someone tells me to do it, then I’ll start doing it, not before then”. That is what you are up against, people don’t have the Initiative to lead the Army of One.
At the heart of being a developer is your ability to deliver. Finishing that last feature, getting that hotfix to the customer, finishing that requirements document, etc, etc. The list is never ending and neither is your delivery — that’s why it matters so much. When you’re a developer, delivery is code, but as you grow to become a Team Lead or Manager or some other fancy title — your ability to deliver takes on a whole new meaning as you are now focused on the delivery of your team, what they can do, what they can accomplish, how they can get there.
If you can lead yourself, you can lead the deployment of a feature on a customer site, work with a team to get something done, decide on what’s needed to improve Product Management relations — these are all leadership tasks and they are much more important than having a fancy title that says leader in it.
And you can (and definitely should) be doing this every day. There is no reason for you not to be starting now.
You. Are. A. Leader.
As you progress through more roles in your career these traits take on different meanings and implementations and can take you down a variety of paths. But if you focus on each of these traits, each day in your work — you will see a shift in what you develop, what you create and how you grow. Not only that, you’ll see a fundamental shift in your team as you help them grow too.