There are good and bad programming tasks in all fields. But the kind of "complex simple software" the GP talks about, where the actual task is mind-bogglingly simple but there are hundreds of edge cases in the requirements, is a lot less fun to write than something with more cohesive requirements (i.e. where you don't have to match what an existing business does)
there's a challenge in how do you structure and organize edge-case logic such that the core application design needn't be entirely redesigned every time a new requirement is revealed or an existing one needs to be altered. When the client comes to you with changes in requirements, having built an architecture that can turn on a dime is a rewarding experience.