Title: Agile complaints and Technical Debt Date: 2011-02-03 18:57 Author: eamonnfaherty Category: agile Tags: agile Slug: agile-complaints-and-technical-debt
One complaint I have often heard is:
Agile projects produce code that is under engineered.
I do not think this is a fault of agile methodologies. I think this is
down to the management of the code base. This is where the self managing
team needs to step up. The team needs to know when to refactor/invest in
their code base. They need to know how to communicate with the business
if deadlines are too tight and they need to think where they are going
wrong if their code is inflexible so that it doesn’t happen again.
The main cause of under engineered code I have seen is people not thinking about the cost of change. This reminds me of a quote from my old technical architect:
Make a decision at the latest, most responsible time
This is really not that easy. I don’t think it is always possible to make a decision at the most responsible time. Sometimes there is not enough time to realise when the most responsible time is and sometimes you do not have enough information to make the decision. The result of this is what I used to see as technical debt. I used to see technical debt as the mistakes made when you were lazy or when you made a bad decision. It wasn’t until recently that I have seen every piece of code as technical debt. This reminds me of a quote from another technical architect I worked with:
The best code is no code
I now see this as:
No code = no technical debt = low cost of change
This may sound like I do not want to write any code, which is very far from the truth. I am starting to see the implications of writing code and all of the baggage that comes with it.