I might not write the best software; but, I love the software that I write. Even when I hate it and I'm embarrassed by it and I wish I could find a better way to solve a problem, I still love it. My software is like my baby; and when it's in trouble, my maternal instincts kick in and I have to save it like some ferocious mamma-bear. And sometimes, saving my babies doesn't necessarily align well with my manager's goals or the product roadmap. And, that's OK.
| || || |
| || |
| || || |
Now, I'm not suggesting that you ignore your product roadmap. And I'm certainly not suggesting that you make a habit of defying your product and project managers. After all, we are a team and we have to work together towards a common goal. I'm only proposing that a healthy team is one composed of healthy engineers; and, a healthy engineer is one that explicitly takes time to foster a positive emotional connection with his or her own work.
I strongly believe that some amount of time every week should be set aside for this habit, regardless of deadlines or JIRA prioritization. Not only does this provide a refreshing context switch, it allows every engineer to fulfill tasks that have a completely intrinsic value. This invigorates the mind and the soul and will almost certainly provide benefits for the greater good.
For me, this meditation often takes the form of bug fixing. Every week, I try to fix at least one bug that has nothing to do with the product roadmap. In my heart, I know that every bug leads to a poor user experience (UX). And, even if a bug only affects one in a thousand users, I know that - for that user - this bug is very real and leads to very real frustration and sadness. I know that the user affected by this bug doesn't care about the product roadmap; or, that some shiny new feature will be released in four months. This user only knows that the product has disappointed them - it has let them down.
But, I can do something about that! I can create a better user experience for that user. I can literally improve someone's life. And when I fix bugs, I feel a tremendous amount of joy and ownership and pride and emotional connection with both my work and my users. And this energy soaks into every cranny of my day and, I truly believe it makes me a better employee and teammate.
I think all software engineers have this instinct. I think it's a huge part of why we get into this business - so we can give birth to our desires and our ideas and our passions. But, if you don't allow yourself time to embrace this instinct, you literally have to teach yourself not to care. And if you removing caring from the picture, that vacuum will almost certainly be filled with toxic, corrosive emotions. And that's not good for anyone - not your company, not your team, and certainly not your end users.
Even if you're inclined to do it, sometimes It's very hard to have a connection with the project and team, when the manager sucks, lacking any ethical or technical skills.
Sometimes it's better to navigate to better waters.
Yeah, totally agreed. A bad manager can be an absolute toxic ingredient in any environment. Sometimes, you have to remove the toxic people. And, if you can't do that, you have to remove yourself :|