How to learn not to accumulate technical debt – experts answer

In product development, the speed at which changes are delivered is one of the key metrics. However, it is often impossible to describe the future architecture of the project at the beginning of work. Therefore, the accumulation of technical debt is a natural and inevitable process, but subject to certain rules it is completely solvable.

Firstly, debt accumulation needs to be taken under control: set up a special section in your task tracker (board, tag, task type) so that technical debt tasks can be evaluated, planned and prioritized just like any other. The team lead or team lead is usually responsible for maintaining such a technical backlog.

Secondly, it is better to agree on the need for such work in advance with everyone, primarily with product managers and customers. Often this is the most difficult moment, since you need to convince them to spend valuable time on developers not on new product features that will help them outperform competitors, but on activities that are incomprehensible at first glance without an obvious result. In my practice, the best argument was the ever-increasing duration of the implementation of simple-looking tasks – the developers knew how many difficult places in the code they would have to get around, how many new crutches to place, and put these parameters in the overall assessment of the task. After several such plans, the product managers themselves suggested the team take refactoring tasks.

Thirdly, technical debt work is like cleaning. To ensure cleanliness, regularity is needed. Depending on how your process works, you can take one such task in a sprint or do subbotniks once a month, but you shouldn’t delay cleaning – it’s much easier to wipe the dust once a week than to scrub the whole week once a year an apartment.

Fourth, do not forget about the metrics in your applications that will help identify technical problems where they are not visible with a simple look at the code: measure the performance of queries and rendering; profile confusing places to see if there really is a problem; Do not neglect static analyzers to detect errors and excessive complexity.

And most importantly, love and respect your technical duty. After all, if it does not accumulate, then your project has stopped developing.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *