I was reading a blog article titled, Love thy coworker; thy work, not necessarily and it had a very interesting quote in it:
Perhaps you disagree with my ideas on motivation. If so, here’s an idea on boundaries that I hope is uncontroversial. Telling me how I should feel about my job infringes on my boundaries, which is to say that it’s none of your business. If however I do a shoddy job and it becomes your problem, then I’m infringing on your boundaries, so you’re absolutely entitled to complain about it.
I agree with this completely in theory, but in practice, people without passion do a shoddy job. There’s many reasons why.
Before I dive into these reasons, we have to recognize that software engineering is usually a team sport. Even if you’re siloed in your corner and are the only one who ever works on your piece of code, there’s someone who depends on that code. The quality of that siloed person’s work affects others because, all things being equal, they will get their requested feature slower if the code is poor quality. That’s because it’ll be more difficult to change.
Above I was talking about quality but the topic is about passion. So why am I bringing up quality? Because in my experience, there’s a strong correlation between a person’s passion and the quality of their work. In other words, apathetic people produce shoddy work.
Passionate people keep their skills up to date. Who’s more likely to read that new Uncle Bob article in their free time? The coworker who’s passionate about what they do, or the coworker who’s doing it for a paycheck? The affect will be higher quality code.
Passionate people are happy to learn a new technology that may make them more productive. Apathetic people prefer and influence those around them to keep using the same tools they already know. They do this because there’s a high learning curve to learning a new technology so it’s easier to keep doing what you’re doing. When these apathetic people win these arguments, the whole code base can suffer. For example, 100 lines of code in one framework may be a single line of code in another.
Passionate people prefer the company of other passionate people. If they have an opportunity to leave the company to work some place where more people are passionate, they’re likely to take it. This will have a net negative effect on code quality for the reasons mentioned above and lead to shoddy work.
The author did have a bullet point that stated:
Someone’s attitude towards work does not predict the quality of their work
But, I didn’t really see anything in the article that explained why. Anecdotally, I’m hard pressed to think of someone who was passionate but did bad work and someone who was apathetic and did great work. I’d like to hear an argument for why passion and quality aren’t linked.