What Makes a Good Developer Great

Don’t settle for good enough. Words of advice from a Technology Director.

Level Studios
Prototypr

--

As a young developer eager to grow in my career, I wanted to know what to aim for to become a senior developer. I asked my managers and mentors, and was surprised to find out that it’s not just about learning and mastering technologies (you need to do that just to stay relevant). It’s about teamwork, communication, and attention to detail. Any developer with a little bit of industry experience can say what the marks of a good developer are, but it’s that extra step that will set you apart as great.

A good developer tests her code to make sure it works.

A great developer tests her code to make sure it doesn’t NOT work.

This isn’t just a twist of words — there’s a significant difference between positive and negative testing, and both are essential in software engineering. Everyone tests to make sure their code does what they intended it to do when they wrote it. But that’s only the first step. Thinking through the potential risks of failure through different use cases or user behavior and coding defensively to avoid those issues will help to make your application air-tight.

A good developer helps to set code conventions.

A great developer follows code conventions, even if she didn’t get her way when setting them.

This is a big one. The goal in this is to achieve the mystical hive mind as a development team, and conventions are crucial in working toward that ideal. It takes maturity and commitment to excellence to compromise your way of doing things for the good of the team to produce more cohesive and consistent work. The strongest people on the team will understand the importance of team collaboration and consensus.

A good developer writes clean code.

A great developer writes clean code, then cleans it up again and documents it.

If it’s “good enough,” it isn’t. Hold a high standard for your work and remember that the next time you read it you won’t have the same context built into your head, and others looking at the code will need some pointers as to why you did it the way you did. Think about the ways to best organize your code, and revisit it after you’ve written other components that go with it. It’s all about the polish. Refactor to make it elegant and efficient. Also, document your work. This is so important. Your team’s standards and conventions should impose certain uses of code commenting. To really get the idea across to other developers using your code, clearly document what it does and how to use it (with examples) through a readme file or even a wiki.

A good developer can solve a problem independently.

A great developer recognizes the value of the expertise on her team and taps into that power when necessary.

While it’s important for an engineer to work independently, it’s well understood that everyone needs some direction at some point in a project, or even just a little help. A junior engineer may need more hand-holding in day-to-day tasks. Someone more senior may need clarification on requirements or direction in terms of performance optimization. There’s no shame in needing direction. The most important thing is to not be afraid to ask questions, and once your path has been made clear, you can work at it until you hit another roadblock. Nobody benefits from being a lone ranger. You’ll get frustrated at your lack of success, and those driving the overall project will be frustrated at the lack of progress. A mature, self-assured developer knows her strengths (and weaknesses) and isn’t afraid to ask a team member to lend a hand instead of trying to be the hero.

A good developer learns the tools of the trade and uses them effectively to streamline her workflow.

A great developer customizes her tools to add efficiencies and improve her workspace and workflow.

Take time to improve processes using the same skills used in your work. This can also help with some of the above items, such as linters to check your code for accuracy and convention or testing tools to automate your testing processes.

A good developer reviews her team members’ code to ensure quality.

A great developer provides detailed, justified, constructive criticism in code reviews to ensure that her fellow developers are growing in their knowledge and expertise.

Understand the importance of communication and setting/upholding a high standard. Graciously pushing your colleagues to improve gives them a clear path in their career, and it will set you apart as a leader. This takes us back to collaboration — for the greater good, but also an investment in the knowledge and success of your team.

These are all skills and habits that are built over time. I’m a firm believer in “fake it ‘till you make it” (we all start somewhere), but also believe that “you can’t fake the funk.” There’s no shortcut or six easy steps. Real finesse and expertise is developed over time. They say it takes 10,000 hours to master a craft. Anyone can choose to go deep or go wide, and while wide gives the appearance of big-picture understanding and depth gives the appearance of specialized expertise — really, you need both. Embrace the journey in your career and appreciate the process of growth as you become more seasoned in your craft. But regardless of whether you’ve been in the game for 10 years or one month, don’t settle for good enough. Be the great developer on your team and watch others follow your lead.

Josh Demolar is the Group Technology Director at Level, a purpose-driven digital design firm.

--

--