I think everyone agrees that when we don't verify as we go, and
we don't integrate as we go then we build up a cost to be paid
later. That cost is fixing bugs in code that was wrote months ago.
That cost is in /big bang integration/. The term is Code Debt.
Agile processes help keep code debt down.
But what about Market Debt. Getting behind in the market, maybe
you aren't releasing features fast enough, or you are missing big
sales events, and such as that. I call that "Market Debt".
Do all activities that keep code debt down also keep market debt
I am going to try to show how agility keeps code debt down and
market debt down. By this we should get more buy in from sales
and marketing. The more buy in the better!
Design By Use - Keeps code debt down by /integration first/
Test Driven Development - Keeps code debt down by writing only
the code that is needed, instead of trying to anticipate how
someone /might/ call your system.
Continuous build - keeps code debt down by verifying the
product is integrated and has only the code that was needed.
Quick Meetings - keeps code debt down by reporting what is
necessary and allows them to get back to /work/ quicker.
Dashboards - keep code debt down by showing progress, and
not just any progress, but meaningful progress.
Customer Acceptance - Prioritizes and organizes the right
functionality for the right time frame.
Design By Use - Keeps market debt down by faciliting the
earliest release of end to end functionality.
Test Driven Development - Keeps market debt down by
delivering the /right/ system.
Customer Acceptance - Keeps market debt down by considering
the window of opportunity and the delivering of quality software
for the time frame the customer has identified as important, or in
other words, delivering to the market.