The norm of programming is really to flip between "trivial 5 minute task" and "requires a day off to contemplate". And in the industrial context, it's evident that most of software is built to restate a preexisting belief - this is good, if we make an app that does it, it's better. This means disengaging from the philosophical problem of whether it's actually "good" and contemplating it until the resulting belief structure has grown so unwieldy and contradictory that it is a technical challenge to maintain it. But selling a preexisting belief is one of the best markets to be in: if you're selling to artists, you sell software that looks like a paint canvas. If you sell to musicians, you sell software that looks like studio gear from 50 years ago. If you sell to investors, you sell a thing that looks like money. What you can't sell(easily) is: new ways of making visuals, new ways of describing and performing music, new ways of explaining credit and value transfer in an economy.
Hence there is an awful conundrum; if you are experiencing a lot of flow, a lot of "wind in your sails", the whole thing is almost certainly on the wrong track and you'll only wake up to it later, because it means your ability to contemplate went out the window. The problem is not just that you can write something bad this way, you can even be praised and given access to more resources if your wrong belief is shared!
That is probably why software has this underlying tendency towards mysticism and cargo cults, in fact; "It's a good practice." "Why?" "It makes me feel good and the customer likes it." "What's the benchmark?" "I get paid, and it hasn't failed yet."