Lobsters Attack the Gut Instinct EquationFiled Under Quality Controls, Thought Stuff
A recent analogy comparing software maintainability with a lobster triggered a moment of inspiration about the Gut Instinct Equation.
From the Gut Instinct Equation we know that progress is not linear. What I am now pondering is if this is because of the cost of maintenance. Even on greenfield projects this cost starts coming into play once you write one line of code. For each added feature, you must maintain the integrity of every feature you wrote before it.
Could it be that the developer on the project never realizes that the system is unmaintainable, much like a lobster in a slowly heating pot. The lobster has no idea what’s coming.
Slowly over time, much like the lobster, the team slowly finds itself grinding its wheels. Productivity has not decreased, in fact, they are probably starting to work overtime even. Costs are starting to very slowly spiral in terms of labor per feature. Bugs might be incrementally getting worse. The team, however, hasn’t noticed any drastic change in the project or the way they work. – Evan Hoff
After reading the above analogy, I became very aware that perception is not always reality. Perceived progress stays linear because ensuring previously built features don’t break is a subconscious and automatic response. However, the cost of doing feature maintenance increases with refactoring, more testing, or just the time to slow down and think.
If this is the case, TDD and unit testing becomes very important. Having the comfort of unit tests allows developers to do fearless refactoring, quicker testing, and reduces the drag time pondering if something will break.
Remember young grasshopper…you may not be a grasshopper at all…but a lobster in a pot!