Caveat: Most of my experience and my close friends’ experiences are from small-medium companies, not giant corporations that can just throw >resources> at problems.
One of the most difficult things in all of software development is task management when $number_of_people > 1.
We have people whose only job is to babysit other people’s tasks and making sure they get done in the right order even if today’s right might be tomorrow’s left.
The main reason this is a big problem in our industry is that tasks are almost exclusively wholly virtual: written atop a 30 email long FWD:RE:RE:RE:FWD:RE thread, input into a specific app made for tracking tasks like Trac or JIRA, or - worst case scenario - present only in the minds of the tasker and taskee.