One of the sure signs of a dedicated and passionate programmer, sys admin or DBA, is that their passion inevitably invades their private life. Writing code, monitoring server-based systems or looking after databases, is not something they think about only during office hours. They probably have an elaborate IT setup in their basement at home, where they spend some of their spare time secretly working on a new programming language, virtualizing servers, or testing out new database design theories.
It’s common, when recruiting, for interviewers to seek out evidence of this passion; tales of writing their first identity transformation pipeline in Pascal, aged 15, or how they were a stone’s throw away from inventing a markup language for the internet, when Tim Berners-Lee beat them to it.
However, occasionally, when I read advice about what to look out for when hiring a developer, I feel that a line is being crossed. Looking for evidence of youthful passion is one thing, but it seems that these days, on top of having acquired the obligatory 7+ years experiences in C#, 5+ years experience in SQL Server, and so on, we expect our programmers to have spent all of their “free time” selflessly contributing to numerous open source projects, blogging tirelessly about domain-driven design and ruby-on-rails, and answering forum questions on MSDN. It seems to me that we’re reaching the stage where, in order to demonstrate their skill and dedication, a developer must have done more or less nothing else in their life except sit in darkened rooms, staring feverishly at a computer screen.
I don’t think this is attitude is good for the long term health of the industry. No wonder many developers “burn out” at such a young age! Where is the work-life balance in all of this? Just as you wouldn’t, or shouldn’t, discriminate against a developer on grounds of age, so I don’t think you should discriminate on the grounds that they don’t choose to spend all their free time bashing out open source projects.
I’ve met many highly-talented developers and DBAs who have a completely different set of interests outside of work. On the whole, they are able to learn what they need to do their jobs within their work hours and, quite rightly in my opinion, expect the company they work for to support most of their training needs.
In my experience, the best and most productive developers bring life experiences to their programming. The programmer with artistic leanings can teach your team a lot about the subtleties of UI design. The programmer who spends his free time managing the accounts for a local charity probably has better insight into how to write an effective accounting application than the one who spends his time researching Persistence Ignorance, the Agile mindset, JRuby, Mockist TDD, object neighborhoods, or polymorphic aggregate roots.
As our current Geek of the Week Gail Shaw noted, we need to stop this cult of overwork. It is harmful and unsustainable. Yes, it is important in an interview to test out a programmer’s mettle, seek out evidence of their passion for what they do. But equally it’s important to find out what life experience they bring with them and maybe, as Phil Factor suggests, challenge them to a game of table tennis.
As always, we’d all love to hear what you think. The best contribution to the debate, added as a comment to this blog, will receive a $50 Amazon voucher.