- procrastination (trying to get in the right mood/alignment of stars before getting work done)
- burnout
- senior architects forecasting the work of junior people
- sales teams selling the world without consulting the execution team that has to build it from scratch
- management that doesn't know what it wants
- management that doesn't know technical constraints
- management that doesn't know how to manage
- tech teams not knowing what they're doing but being confident they'll figure it out
- unrealistic, arbitrarily set timelines
- realistic non-arbitrarily set timelines
- lack of skill awareness
- lack of self awareness
- politics
- lack of care for the outcome
- greed
- misaligned incentives (compensation for time spent working instead of outcomes or speed of work)
- a really good TV show running at the same time
- lack of team morale or discipline
- perfectionism
- and my favorite:
Team staying till 11pm every day for three months because of a boss who stays till 11pm for three months, trying to outstay them so he can have fun with his mistress.
Until you have the luxury of outcome ownership in place of task ownership, crunch mode is hard to love. When you become a product owner, deadlines become your best friend because they force both you and your team to optimize the work, avoid feature bloat, and get creative about your approach to the problem.
I set a crunch time for myself every day I start working on a new feature. No going to bed until I get a functioning solution, even if it's not the best ultimate scenario. While I'm sleeping, beta users are verifying my assumptions (if they like the feature, I polish it. If not, I've only spent a day in the wrong direction.)