One of the reasons for which 70% of software projects fail is that they catch a disease called "Running Developer" and die from it.
A project suffering from this disease and not diagnosed in time may survive for many months or even years. Its breathing becomes eventually laboured until it stops.
Happily, "Running Developer" is a disease you can diagnose. Maybe with the help of an expert.
Or maybe you misunderstand the symptoms and the patient dies anyway.
You can look for symptoms in the code the "Running Developer" produces:
You can observe the developer working habits.
You just throw a glance at the developer.
You enquire about deadlines.
You investigate team dynamics.
The working environment influences
Many of these symptoms relate more to the environment than the developer.
Many projects catch the "Running developer" disease, they are never diagnosed and die.
You can perform an autopsy to learn how to prevent the disease next time.
When you perform the Y-Incision to gain access to the organs of the deceased project, you find them scattered all over the place.
You wonder how it was possible that the project could still be alive when such a disaster was raging inside.
With the liver in the place of the heart, the spleen where there should be an ear, blood vessels instead of hair, the project was pretending to defeat the laws of physics to carry on.
Developers were busy trying to fix things. They tried everything: taking a foot and putting it in an ear, making a hole in the belly and have a hand pass through it, whatever.
They had to stop when they realised that nothing could save the patient.
Sometimes it's even worse. The disease is even harder to identify.
The project seems to enjoy great health.
There is a wonderful, robust structure that doesn't impede improvements.
The code works and it's clean enough that it's not a problem to add features or solve issues.
The project dies of sudden death.
"Running Developers" never stop to ask questions. They strictly do what they are told. They implement what the client wants. They don't try to understand what the client needs. It would be a waste of time and time is as scarce as unicorns.
The client gets an application they will never use because it doesn't do what it needs to do.
The disease is difficult to diagnose because its symptoms may not be recognized.
You may even mistake them for good things.
The "Running Developer" shows you a lot of working code very quickly because he skimps on structure, documentation and testing.
He works long hours. These symptoms may seem nice to have. You may misread them as a forerunner of success.
The disease will kill the project all the same.
If diagnosed in time, the disease may react well to a change in the working environment. Sometimes this is not possible and the patient will die anyway.
Other times you will find that the "Running Developer" has working habits that will ruin the project anyway even if you fix the working environment because habits are hard to die.
The Agile set of values and principles may be used to create a healthy working environment that doesn't offer fertile ground for the disease to develop.