What is a "great" developer?
2019-01-19
What makes a good developer is very subjective. It can be tremendously difficult to give practicable advice simply because circumstances can vary so much and require a vastly different take or perspective directly impacting the principal of execution. There is also no shortage of those offering very broad, impracticable guidance and it can be frustrating for a new engineer, or someone looking to improve upon themselves and their work.
With that said, what actually makes a great developer?
At a start-up, a great developer is someone who is be able to abstract a tremendous amount of business complexity and create something just-in-time, that only just works, that may fall over eventually but if it does, only after an acquisition.
In an Enterprise, a great developer is someone who is able to affect significant social change through conversation and relationships. They will have an above average level of patience and a healthy disregard for the status quo and challenge preconceived ideas. They will have a knack for being able to decide which swords are worth dying on and those that are not.
In a solo endeavour, a great developer is (depending on the product) one who is concerned about the customer, product, and sales more than the technology. They can appreciate or are obsessed with the numbers, and have an above average level of intrinsic motivation and discipline. Being a developer that others like to work with is very, very low on their priorities.
Do you notice a common omission? I haven't even really started to talk about how much you know about technology X and it's correlation with being a great developer. It's important, but your success as a developer is not (commonly) tied to how much you know about something. If you're a Principal Engineer (in the typical sense), a consultant, or working in an extremely specialised development field this can change but these roles aren't just something you fall into. You will normally have to dedicate yourself solely to specialising in a specific field or technology to achieve these highly academic roles.