What all the "not fun" stuff you're referring to has in common, is extraneous complexity.
We don't pick a framework so that we can spend hours trying to figure out why our model of what it does is different from what it actually does. We run ./configure so we can run make, not so we can spend time determining why running autoconf results in the functionality we're expecting to use getting stubbed out.
And so on. The amount of time we have to spend on things which aren't the problem can grow arbitrarily large. Manifesting a solution to the actual problem, with all of its intrinsic complexity, that is fun.
We don't pick a framework so that we can spend hours trying to figure out why our model of what it does is different from what it actually does. We run ./configure so we can run make, not so we can spend time determining why running autoconf results in the functionality we're expecting to use getting stubbed out.
And so on. The amount of time we have to spend on things which aren't the problem can grow arbitrarily large. Manifesting a solution to the actual problem, with all of its intrinsic complexity, that is fun.