Why does management spawn death march project? Yourdon has researched the issue thoroughly and in his book, Death March, he outlines the following reasons:
- Politics, politics, politics
- Naive and/or devious promises made by marketing, senior executive, inexperienced project managers, etc.
- Naive optimism of youth: "We can do it over the weekend"
- The "startup" mentality of fledgling entrepreneurial companies
- The "Marine Corps" mentality: Real programmers don't need sleep
- Intense competition caused by globalization of markets
- Intense competition caused by the appearance of new technologies
- Intense pressure caused by unexpected government regulations
- Unexpected and/or unplanned crises-e.g. your hardware/software vendor just went bankrupt, or your three best programmers just died of bubonic plague
The unfortunately reality of a death march is that while education can prevent crunch time, it may be impossible to stop these projects from being created.
Most software developers avoid politics, but they are inevitable in human organizations, particularly within management. As power struggles play out, enemies are made and axes ground. Some projects are created to doom a manager that has stepped on the wrong toes. Other managers take their team and charge into a death march project to prove themselves to higher-ups. In some companies extracting long hours from employees is a positive, rather than a sign of mismanaging assets.
Naivety can create projects with unreasonable demands or resources. Think of the sales person who promises the customer a product in 6 months that the tech manager said would take a year all because he thought the manager pads the numbers. Similarly, a vice president might not understand the complexity of a problem and assign a staff of half the requisite size and budget.
On the flip side, many young employees are unaware of their limits. Never ask the hotshot young programmer how long a project will take. He or she might be able to crank out the core program in 3 months, but what about testing, error handling, interface design, and quality assurance? And if the hotshot gets promoted to project leader prematurely?
Employees joining a startup typically are aware of the risks and long hours involved and, at some point, the potential benefit outweighs the cost. Almost by definition in this make-it-or-break-it world, a startup company is a death march project.
If "real programmers don't need sleep", real people certainly do. Real people also have real lives, with real demands and real responsibilities. Some companies have a culture that is excessively demanding and only works because the employees self-select that environment.
Global competition is reaching new heights and technologies shift rapidly underfoot. In order to stay toe to toe with foreign business, many companies believe they have to cut their resource allocation. To stay with technology, products need to be delivered before the next big thing hits. Consequently, many projects start under funded and with unreachable schedules.
This could also be called "not doing the homework." Unfortunately, it is common for management to ignore new legislation as it is being produced until a firm, rapidly approaching deadline has been set. A good example of this is the Health Insurance Portability and Accountability Act of 1996 (HIPAA) whose deadline's caught many health care providers by surprise as their IT departments struggled to reform their systems.