Addressing Technical Debt in DevOps?Projects
Krishnadutt Panchagnula
Accelerating Startups become Scaleups by building Secure, Scalable Infra, Data and CI/CD Pipelines | Platform Engineer | Cloud Devops Engineer | Site Reliability Engineer | Golang Developer | Observability | Finops
While developing products in DevOps teams, we take decisions on which features to develop, how to ship them quite quickly, in order to meet the customer requirements. Often these decisions causes more problems in the long run. These kind of decisions lead to “Technical Debt”.
Tech debt is phenomenon which happens when we prioritise the speed of delivery now, by forgoing everything like code-quality or maintainability. Although the agility of delivery of products is key to stay relevent in this agile world, but we have to make decisions also that the changes are sustainable.
In this article, we'll talk about what technical debt is, how to handle quick decisions during development, and give examples to help you understand how to avoid future issues.
Tech debt is the extra work we has to be done later because of the technical decisions that we make now. Although it was coined by software developer Ward Cunningham in 1992, but it's still holds relevance .
Usually, Technical debt occurs when teams rush to push new features within deadlines, by writing write code, without thinking about other considerations such as security, extensibility etc. Over the time the tech debt increases and becomes difficult to manage. The only way to deal with tit then becomes to overhaul the entire system and rewrite everything from scratch. To prevent this scenario we need to continuously groom the tech debt and to that we need to understand the type of tech debt we are dealing with.
Causes of Tech?Debts:
Prudent and deliberate: Prioritising swift shipping while postponing dealing with their consequences is deliberate debt. This can be taken up when the product is still in MVP phase or the benefits of quick delivery outweigh potential risks.
Reckless and deliberate: Inspite of knowing how to craft better code, prioritising rapid delivery over quality leads to reckless and deliberate debt.
Prudent and inadvertent: Prudent and inadvertent debt occurs when there's a commitment to producing high quality code, but this solution was discovered after the feature has been shipped.
Reckless and inadvertent: Reckless and inadvertent debt arises when team tries to implement the coding best practices without actually understading how or why to implement it. This often leads the teams making a different kind of tech debt.
Given these different causes for tech debts, lets try to understand the types of tech debts. These can be broadly categorised under three main heads
领英推荐
Types of Tech?Debts:
Code Related?Debts:
Architecture Debt:
People/Management Debt:
Managing and Prioritizing Tech?Debt
Technical debt is something that happens when teams are developing products in aglie way. It's like borrowing against the future by taking shortcuts now. But if the team knows about this debt and has a plan to deal with it later, it can actually help prioritise tasks. Whether the debt was intentional or not, it is crucial that the team grooms the technical debt during a backlog refinement session.
Here's how you can categorise these tasks:
When building a new product/feature or facing tight deadlines, it quite common to choose speed delivery over the quality or code sustainability in the long run. Striking balance between the need for quick solutions while maintaining the long term vision for sustainable development practices is the key. Managing technical debt effectively can help ensure the success of your projects in the long term.