Software: The need to iterate | DigitalBuff

digitalbuff.dev
4 min read
standard
Good software is the result of many iteration cycles.
Software: The need to iterate

"This codebase is a mess, how did we get here?" "This user interface has no consistency, it feels like every feature is its own app."

These are common cases of code rot, or application rot, where the initial version was delivered and the developers never looked back. It's a hard thing to combat, because even while you iterate you have to do it at the same pace as new features are being added, otherwise it's a slow rot that creeps in without you immediately noticing.

small incremental iterations

Most iterations are not work you plan and estimate as a thing of itself. Sometimes you do when it's a major refactor with clear business benefits, but not always is the benefit as immediate. Continuous small code refactoring or other tweaks/improvements to the software product are the best strategy to combat code rot and maintain the quality of the software product. Their immediate impact is relatively low, but their long-term impact is the difference between a good and a bad software product. You want these small but continuous increments because they are easier to integrate, get feedback on and they don't pile up until it suddenly halts development of new features.

But how do I get the time to do all these iterations you talk about?

When the feature backlog is breathing down your neck, it might seem challenging to perform the required iterations to maintain and improve quality.

The good news is that small iterations are not something that is planned in a software project. But how is this good news? It means that it is your responsibility as a software developer to continuously apply these refactoring cycles while implementing the features. This also means that when you estimate work for a feature, you take into account some time for necessary refactors. It's not something you express explicitly during estimation sessions, it's just part of the work required to implement the feature. So this…
Read full article