The cool part about being a developer is getting to solve new and interesting problems. I feel extremely lucky, in a world full of mundane jobs that quickly fall into repetitive routine, that I get paid to brainstorm and create. It's challenging and rewarding, especially when I see something I created working and being used. I've been working on a new product (well, a new version of an old product) for the last year and that's been awesome - most of what I do is new and interesting. But it wasn't always so.
At my last job, I worked almost exclusively on a legacy product that was around before I got there, and I was there nearly 8 years. Most of my job consisted of shoe-horning new functionality in, trying to speed things up a bit, and fixing lots and lots of bugs. In retrospect, those bugs were always creeping in because we had very few tests and the project was so tightly coupled it made it difficult to add new tests. There are things we do at my current company, like requiring tests and creating pull requests to get team feedback on new code, that would've benefitted us there.
But even now, working on a new product, there are times I want to grumble. The same conversation about some element of architecture comes up, or the team goes round and round on a solution to a problem, and there's still no clear 100% right fix. Or we thought we had a problem solved, thought it was engineered well, and then it rears its ugly head again in some new way. The same things that happen everywhere.
I was feeling pretty crabby during one conversation about a month back, and maybe I wasn't the only one, because one of my coworkers picked up on the general vibe and made a comment that's stuck with me. Yeah some of the problems are annoying, but we get paid to sweat the details. And it's true. At the end of the day, whatever company we find ourselves at, they've hired us to solve a problem. The owner is directing the company, salespeople are selling the product, marketing is advertising it, etc, etc.
But the actual product, making that happen, that's up to us.
I'm not saying that makes it any easier to rehash certain things, or to have to think about the same problem yet again, but it's something to think about. We get paid to have the tough (sometimes frustrating) conversations. We dig and research and trial and error, and eventually figure out how to make someone's idea a reality, because if we don't then it just won't happen. And there's something pretty empowering about that.