The thing is that programming is kind of boring on one level. And kind of easy sometimes too. So I think it's natural to not always want to do something boring and easy. The times I program continuously in longest stretches is when the programming gets incredibly difficult, aggravating, and stretches the limit of your brain (fun). The problem is that the boring parts are normally what lead to the greatest number of features that make things useful, and the hard parts are those small things that make everything work but might not actually do all that much. The trick is to get good at the boring work and hammer it out in a consistent, quick, and maintainable rhythm. And pushing yourself to achieve that pacing and to not make mistakes makes things more difficult, and thus more engaging.
The rest of it (domains, tools, dev/prod environment, testing, marketing, researching, brain storming, etc) doesn't really matter. The only important thing in this category is sales: talking to actual customers, selling, closing sales, and making them happy. Granted the other stuff is fun and involves surfing the web and playing around with new gadgets, and it's work that must be done, but its enjoyability is far disproportionate to its importance.
The rest of it (domains, tools, dev/prod environment, testing, marketing, researching, brain storming, etc) doesn't really matter. The only important thing in this category is sales: talking to actual customers, selling, closing sales, and making them happy. Granted the other stuff is fun and involves surfing the web and playing around with new gadgets, and it's work that must be done, but its enjoyability is far disproportionate to its importance.