October 17, 2019 // By Jeff Nordquist
Over the past couple months, I’ve been thinking about why developers love writing code. What is it that keeps us at the computer, in the office, or on WebEx every day? I came up with four reasons:
- Puzzles: We love solving puzzles.
- Products: We care about what we’re building, and who we’re building it for.
- People: We respect and admire our teammates, and love learning from them.
- Pride: We value a job well done, and the effort that goes into it.
So, let’s put those pieces together.
Postscript: What does this mean for us?
It’s safe to say that no job is perfect. And even the jobs that are great for us at one point might not be such a good fit later on. From time to time, it’s healthy to step back and think about where we are, and how those four factors apply to our current situation. Here are a few thoughts from various points of my career:
First job out of college
- Puzzles: Every day I learned something new. The scope of what we were doing seemed so vast I couldn’t see the big picture, but I learned to focus on the tiny pieces in front of me and grew from there. Loved it!
- Products: The products were interesting; not a lot of passion but it was fine.
- People: The guy who sat next to me mentored me very patiently in C++ as I asked super-basic questions about pointers, memory management, and compilation errors. He made it a lot of fun. (Many years later, when he got laid off, I was thrilled to be able to bring him aboard my new team.)
- Pride: I still get teased for emailing my mom after fixing my first defect: “Mom - I fixed a bug!” I was proud - finally I’d gotten inside real-world production code and made it better. So, yeah.
Music job I had for 10 years
- Puzzles: I solved puzzles at every level - development, tech leadership, management, and more. Sometimes the joy was dampened by schedule pressure - we couldn’t really solve the big puzzles, but rather find ways to work around them. And the puzzles all started to look the same after a while. Still - lots of puzzles.
- Products: A+. Loved them. Favorite products I’ve ever worked on.
- People: I was surrounded by over 100 people who all shared a love of what we were doing, and everyone’s hearts were in the right place. And they were mostly musicians, and musicians are cool.
- Pride: Lots of personal pride and opportunities to help others feel proud of their accomplishments.
- Puzzles: Every new client brings a new set of puzzles. I’ve worked in a wide variety of languages, technologies, and applications. I really enjoy the challenge of learning these new things quickly so I can start making a difference right away.
- Products: Hit or miss. You don’t always get to choose what you work on. Some are interesting, some are fun, and some are just a paycheck. On those last ones, I still give it everything I have, but it can require a more conscious effort.
- People: One recent team really stands out. Everyone is supportive and brimming with curiosity and passion for putting out high-quality code. I learn things from them every day.
- Pride: No matter how I feel about anything else, I do everything I can to make the project succeed. I’m usually happy with the result. Some teams (including the one mentioned above) have a culture of recognizing hard work, just via informal conversations and nice emails, and I love being a part of that and helping to build others up.
Whew! Why did I write all that? To get you thinking about your career. Each project above was a mix of highs and lows. When you think about your career, do any jobs or projects stand out as being truly exceptional? When you think of your favorite project, what was it that made you love it so much?
If your current job is missing that ingredient - what can you do to make it better? How can you change things so that you LOVE writing code again?
Thanks for reading this series. I hope it’s helped give you some clarity, or at least some things to reflect on. I’d love to hear your thoughts! You can find me on Twitter @jeffnordquist.