How to hire a good software developer … or does Common Lisp make you an Artist?
I have experienced a lot of interview processes over my career - very few of them have been very good. As a candidate, the most innovative and enjoyable was a processes driven by the Applied Platform. Those guys have a lot to say on thoughtful candidate assessment and on data-driven hiring processes – so I think their insights are somehow related to this post.
In my experience, engineering teams tend to fall back on a perennial hiring process when it comes to software developers – a hiring process which often has a natural bias against the primary quality we seek in potential candidates … creativity.
Let’s face it, commercial software development is neither engineering nor science. It is as much rooted in the Humanities as STEM subjects. Furthermore, the classic Right-brain / Left-brain dichotomy (Hemispheric Dominance or Asymmetry) is now generally regarded as too simplistic a model to describe the subtle characteristics of individuals. But we seem to persist in using such a primitive approach when assessing candidates for software engineering roles.
Programmers are surely right-brain … right? Let’s just get them to write FizzBuzz!(They can use a language of their choice - of course).
Over my professional career I have worked in both the Creative Arts and in the ‘technical’ field of Software Engineering. Anecdotally, I can categorically state that there are real parallels between the people, practices and processes employed within these two seemingly different areas of human collaboration and innovation. So, I am intrigued by the possibility that insights into human creativity from the fields of psychology and neuroscience may have some answers to the question: ‘what makes a good software developer?’
How about this rephrasing of the generally accepted Standard Definition of Creativity from Anna Abraham for a start:
Recommended by LinkedIn
First and foremost, [creativity] reflects our capacity to generate ideas that are original, unusual or novel in some way. The second element is that these ideas also need to be satisfying, appropriate or suited to the context in question.
When hiring a software developer, I would take those qualities over an ability to write FizzBuzz any day of the week. (Although, if the candidate did complete the task using Common Lisp I would probably be suitably impressed).
So, have I just been repeatedly unlucky with my experience of interviews? or do we need to systematically improve the approach we take to assessing candidates for software engineering roles?
Interesting. Thanks Ken, hope you are doing well!