I have been on numerous software projects over the years, and I am glad to say that the overwhelming majority over those have been successful. On time, on budget and meeting the requirements.
However, there have been those gnarly projects that simply would not go away, they would render our project timelines obsolete, or expectations fell way short in some unforeseen way. These kind of projects either die a quick, dramatic and embarrassing death or, regretfully, go on to create products that we end up supporting forever and regretting every moment of its existence. The consistent theme to this type of abject failure is in deploying a brilliant solution to a problem you did not fully understand.
Creating your own Nemesis
These project if left unchecked follow the grand tradition of DC and Marvel Universe villains, where the path of the hero and his greatest nemesis are intertwined and symbiotic. So I wanted to quickly jot down how you can quickly tell if you might be the author of software that will end in your own destruction :-
- It was conceived from an oozing, toxic blend of narcissism and cynicism.
- Its veraciously consumes precious (technical) resources.
- It is growing exponentially and will soon be beyond the control and influence of its creators (aka project team).
- You gave the project a creepy nickname that has caught on, and now that name represents everyone's genuine despair.
- You have lost some of your very best engineering talent because no one could manage the growing threat.
What would you add to this list? Have you had any projects like this?