Programming with Passion
Is Technology Infatuation Imperative for Building Better Systems?
People are puzzling. Over the course of my first six months managing humans, I’ve found that everyone has different interests and drivers. Not everyone will adhere to the programmer stereotype of the introvert sitting in a cupboard typing furiously. Following a series of fortunate events this week I’ve been reflecting on the importance of passion in software development. Does excitement for solely coding make a strong developer? If not, is it possible to fan the enthusiasm flame within our programmers to improve the products we build?
Money, it’s a gas
The first event of this week that got me considering passion was the above quote appearing on my Twitter feed this week. It certainly divided opinion. Many did think they wouldn’t be programming as a career if they didn’t enjoy writing code. However, many objected to pleasure being their primary motivation. The reply that stuck with me most was that money was a bigger factor than enjoyment. Turns out when you program for a living you expect to be paid cold, hard cash for your efforts!
Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program.
Money is one thing, but given the range of careers out there that pay, there must be another light that draws the moth to that coding flame. Otherwise why not pick any random 9–5 job in your desired wage bracket and go nuts? People tend to be drawn to fields to which they naturally excel. Therefore it’s safe to say that when picking how to spend over forty hours of your week, you’re going to pick software development if you are motivated to build software.
Technology is Not Enough
The next event of the week got me thinking about the differences between good and great developers. It’s not very often that a pint in the sun results in such a profound moment of thought.
Strong technical skills are certainly important. Given the fast pace of technology enhancements, even in my short six years of working, great developers evolve. They get excited about building software the right way. They scour resources for new technology to integrate into their systems. They sell the value to colleagues, and spread the word organically. Nevertheless, programmers need more. They need to be passionate about the subject domain as well as the technology.
Our best developers exhibit inquisitiveness on client processes. To provide value, you need to be comfortable asking questions. However, what you do with the answers can distinguish between good and great engineers. Directly automating the existing process shows understanding of what is done today. Only by understanding why the process is completed today, and the goal of the process itself can great developers distinguish themselves. That way you can propose the most valuable solution, and provide process optimisations where required.
The final event of this week centres around mechanisms to encourage passion. Like any skill, it is important to consider the nature versus nurture argument. Can passion be taught, or is it an attribute we need to evaluate when hiring a programmer?
With good developers, it is possible to nurture if they can see the value. Passion can often be attributed to extrovert behaviour, but a productive team does not just contain extroverts. Teams diverse in thought, experience and personality are found to be more productive. Even when I was at university, significant research into personality composition of teams using metrics such as Myres Briggs had already been undertaken, which proved useful for my research studies.
Measuring passion is difficult as not everyone exhibits enthusiasm in the same way. Good managers will figure out the subtle cues you disclose to determine if your current workload is engaging. Faking enthusiasm is difficult if you don’t believe in the message you need to convey.
The answer lies in finding those inspirational characters that you can use to engage with developers and nurture their enthusiasm. One effort we have been focused on this week is how to identify role models at different levels within the Technology division, and share their inspirational stories. Those at the top are certainly inspirational, but if you’re just starting they can be challenging to empathise with. Role models should be advertised at all levels to instil that passion. But be warned, unless you find both the technical challenge and business domain interesting, your passion will eventually fizzle out no matter who is around to inspire you.
Thanks for reading! Claps are always appreciated.