It is SHOCKING beyond words to me what accepted dogma it is that the human resources/devs only work on one thing at a time, they start at the beginning, plan, write, test, & code review the thing, and then move on.
It's a huge waste of human potential. Background processing is vital. Getting hit by the various silly hurdles in the path to shipping- having to go from the elation of getting something done to having to switch to an entirely different set of less fun tasks to get it shipping. Yet our processes, our industrial processes, are oriented towards assurity, towards treating us "human resources" like machines, to making us complete full units of work.
It's hard for me to tell exactly where this sprung up from, how it is so deeply deeply rooted. I tell my managers outright I think it's a wasteful & outright damaging practice, but that I understand that it's the expectation, that every other company acts like fools too, not just them. I don't argue, but I am quite clear that you will get much much much less out of me when I don't have some autonomy, when I have to drag, roll, push, row, swim each rock, one at a time, from end to end. Again, I'm not sure how such a demeaning & menial form of completing single-task-at-a-time happens, especially when no one in management or upper ranks is expected to live like this. My top theory is just that it's convenient for management purposes. That company's are bad at assessing progress, that we're afraid of situations that aren't ultra-well scheduled & predictable, and that we treat programmers like cogs in a machine because we're too afraid to try for better.
Creative procrastination is amazing. Not only are programmers out doing great things, but the task they're more obligated to do goes from irrelevant & stupid to something they just don't ever want to think of again. The internal pressures builds over time, even for the irrelevant everyday crap of development, until we're finally jazzed to just get it done. By procrastinating, we bank up some motivation. And we've gotten a lot of passive processing in. Productive procrastination is one well-known example, but I feel like it's just the tip of the iceberg. Having some different tasks to switch between, having a wheelhouse of obligations, allows enormous relief, allows a much higher average output to be maintained, in my view. I'm kind of in a lull of personal projects right now, because I completed some stuff, and don't have a lot of in-flight options to pick up & work between. Everything feels so slow & getting going again has been such a chore, I feel it so much. Being able to trade off, switch around, chase what feels good is a huge huge productivity increase.
More than anything what amazes me is how conventional & dogmatic companies are. They seemingly all chase the same malgining evil controlling exploitation of human-resources, and not a once has a company seemed to even understand that there are trade-offs. The whole industry is exactly the same; controlling & top-down, one-at-a-time. The people who invented Amdahl's law, surprisingly, seem utterly unable to grasp it's application to humans & our motivations. We all have diverse & wide execution units, but we are treated like in-order single-stage processors. If this were just the predominant way of treating engineers/human-resources, I'd find it unfortunate, but that it is almost entirely the rule, that it is universally expected, that there are so few systems or experiments for doing anything else: the status quo is pathetic & cruel, and lacks even the basic legitimacy to have explored other ideas.