The thing that a lot of people forget is that software development - if it is done right, and particularly if it is "advanced" - includes a lot of creative and exploratory problem-solving activity, rather than just (at the risk of mixing metaphors) following a cookbook process to recreate wheels. And it is the creative and exploratory processes that I enjoy, whether it is in design, coding, or debugging.
The key to being a really good developer is to embrace the creative and exploratory processes, not to avoid them.
Unfortunately, a few too many product designers and project managers view software as a cook-book activity (in other words, they expect to tell the developers what to do, and expect them to just translate directions into code). But, if you can get product designers and project managers who engage the software people in the creative process, the job is more satisfying, and the products produced also tend to be a lot better.