There has been a lot of discussion recently about how agility forces truthfulness, it exposes the realities of a project, and the importance of feeling pain earlier.
It was also during this time in the last week that I lost a co-worker to cancer.
Somehow, I found a link between the two topics.
I won't go into the medical definition of cancer and what causes it since many of us have been affected by it through the experience of a loved one.
How does cancer relate to software development?
Early detection, diagnosis, and treatment of cancer is critical in increasing the chances of putting it into remission.
Early detection, diagnosis, and correction of problems on a software project is critical in increasing the chances of successful deployment.
The longer cancer is left unchecked, the less likely there will be a full recovery and the higher probability it will come out of remission later.
The longer a major issue is tolerated on a project, the more likely the team culture is damaged and will not recover its rhythm because it has lost trust in peers or the environment around them.
I don't know if I'm stretching for this metaphor or not, but it just seems that there is a corollary here.
Early detection is critical in both cancer and software projects and agile provides mechanisms to insure the team (not just the mangers a.k.a. doctors) is empowered to be part of that detection process.
Is it possible that technical debt builds up like freckles and moles on the arm? At first they are benign and harmless, but when they build up the concern should be high?
Is the elephant in the room the malignant tumor lurking in silence soon to kill its host?
Next time you see the warning signs, get it checked out and taken care of. It might save you or your project.