What Makes a Great Software Developer
Most pundits who attempt this question focus on the personal characteristics of the developer as an individual. Accordingly, some say it’s about technical skills, some about abstract reasoning, some about the ability to work in a team, some about an improvement attitude, some about hard-working dedication, some about systems thinking… yadda yadda.
I have a different take.
Dr. Deming has taught us that circa 95% of the performance of an organization is attributable to the system (processes, technology, work design, regulations, etc.) and just 5% are attributable to the individual. If we accept this (and I certainly do), then all the discussion about attributes of the individual becomes essentially moot.
If we extract an outstanding developer from one system (e.g. the team, business, in which they “have performed well”) and place them into another system, their performance will depend almost entirely (95%) on the new system within which they are now working. And NOT on their own personal attributes, skills, talent, or whatever.
This realisation can be a bitter pill to swallow; not only for you, dear readers, but also for the developer in question.
Frederick Herzburg is famous for (among other things) saying “If you want people to do a good job, give them a good job to do.”
Many times, the effect of the system on the performance of an individual can be masked, or hidden entirely, by similarities in the “from” and “to” systems. This is quite common, given the preponderance of “Analytic” organisations, with consistently poor scope for effective working.
The one ray of light in all this? If a particular developer has skills related to changing the system, and can negotiate the minefield that is “changing how the work works”, then as the system changes, they – and many working with them – will “perform” that much better. And most likely feel much happier for it, too.
BTW All the above applies not only to developers, of course, but just as much to other job titles in an organisation, management included.