{"authors":[{"name":"Martin Stühmer","url":"https://daily-devops.net/authors/martin/"},{"name":"Jendrik Brack","url":"https://daily-devops.net/authors/jendrik/"}],"description":"Recent content in Azure DevOps for CI/CD and Agile on Daily DevOps \u0026 .NET","favicon":"https://daily-devops.net/images/logo_hu_6465d873dfa490cf.png","feed_url":"https://daily-devops.net/tags/azuredevops/feed.json","home_page_url":"https://daily-devops.net/tags/azuredevops/","icon":"https://daily-devops.net/images/logo_hu_5926de77762241ba.png","items":[{"authors":[{"name":"Martin Stühmer","url":"https://daily-devops.net/authors/martin/"}],"content_html":"\u003cp\u003eWhatever our role, be it developer, IT professional or architect, we try to avoid technical debt. If this is not possible from the outset, or if we decide to accept this technical debt for a limited period of time, we usually lack the tools to do so. This is where this article may help.\u003c/p\u003e\n\n\n\n\n\u003ch2 id=\"what-is-technical-debt\"\u003e\u003ca href=\"/posts/illuminate-technical-debt/#what-is-technical-debt\" title=\"What is technical debt?\"\u003eWhat is technical debt?\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eTechnical debt is a metaphor used to describe the costs and risks incurred as a result of decisions or omissions. It is important to note that this metaphor can be applied to all types of technical debt.\u003c/p\u003e\n\u003cp\u003eFirst, there is \u003cstrong\u003earchitectural debt\u003c/strong\u003e, which is usually based on a decision made by an individual architect or group of architects. Then there is \u003cstrong\u003eimplementation debt\u003c/strong\u003e, which is probably the most common in most projects, as it is also identified through source code analysis. And then there is the \u003cstrong\u003etest\u003c/strong\u003e and \u003cstrong\u003edocumentation\u003c/strong\u003e debt, which is far too often neglected.\u003c/p\u003e\n\u003cp\u003e\n\n\n\n\n\n\n\n\n\n  \n  \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u003cfigure class=\"responsive\"\u003e\n  \u003cpicture\u003e\n    \n      \n      \n    \n    \u003cimg\n      src=\"/images/what-colors-is-your-backlog-kruchten.svg?v=cbed4f593fdd5d7d97b708ff8f33da51\"\n      alt=\"What colors is your backlog?\"\n      loading=\"lazy\"\n      \n      decoding=\"async\"\n      width=\"1444\" height=\"1444\"\n      title=\"Phillipe Kruchten - https://pkruchten.files.wordpress.com/2012/07/kruchten-110707-what-colours-is-your-backlog-2up.pdf\"\n      copyright=\"Phillipe Kruchten - https://pkruchten.files.wordpress.com/2012/07/kruchten-110707-what-colours-is-your-backlog-2up.pdf\" /\u003e\n  \u003c/picture\u003e\n  \n  \u003cfooter\u003e\u003csmall\u003ePhillipe Kruchten - https://pkruchten.files.wordpress.com/2012/07/kruchten-110707-what-colours-is-your-backlog-2up.pdf\u003c/small\u003e\u003c/footer\u003e\n  \n  \n\u003c/figure\u003e\n\nWhatever the type of technical debt, the common denominator is that it tends to cause problems in projects and later in operations. In July 2011, Phillipe Kruchten described them as \u0026ldquo;invisible negative elements in the backlog\u0026rdquo;.\u003c/p\u003e\n\u003cp\u003eHowever, they are rarely recorded and visualized.\u003c/p\u003e\n\n\n\n\n\u003ch2 id=\"how-can-i-still-make-them-visible\"\u003e\u003ca href=\"/posts/illuminate-technical-debt/#how-can-i-still-make-them-visible\" title=\"How can I still make them visible?\"\u003eHow can I still make them visible?\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIn most projects, it is individuals or a small group of individuals who are aware of individual Technical Debts. However, these projects usually have another thing in common: when these technical debts are addressed, they are postponed or even dismissed.\u003c/p\u003e\n\u003cp\u003eTo avoid this, Technical Debts need to be tracked in the same way as requirements or defects. All you need is a person with administrative rights in Azure DevOps or comparable platforms.\u003c/p\u003e\n\n\n\n\n\u003ch2 id=\"extension-of-the-azure-devops-process-templates\"\u003e\u003ca href=\"/posts/illuminate-technical-debt/#extension-of-the-azure-devops-process-templates\" title=\"Extension of the Azure DevOps process templates\"\u003eExtension of the Azure DevOps process templates\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eAzure DevOps provides the ability to visualize technical debt by extending process templates. The Microsoft article [Customize a process template] (\u003ca href=\"https://learn.microsoft.com/en-us/azure/devops/reference/process-templates/customize-process?view=azure-devops\" target=\"_blank\" rel=\"noopener external noreferrer\"\u003ehttps://learn.microsoft.com/en-us/azure/devops/reference/process-templates/customize-process?view=azure-devops\u003c/a\u003e) details how to inherit and extend a process template to achieve the following result.\u003c/p\u003e\n\u003cp\u003e\n\n\n\n\n\n\n\n\n\n  \n  \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u003cfigure class=\"responsive\"\u003e\n  \u003cpicture\u003e\n    \n      \n        \n        \n\n        \n          \n        \n\n        \n\n        \n        \n\n        \n        \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n  \n  \n  \n\u003csource\n  srcset=\"/posts/illuminate-technical-debt/azure-devops-process-templates-544x111.webp?v=8d9af73128053bf12e79a9a910bdec83\"\n  type=\"image/webp\"\n  media=\" (max-width: 575.98px)\" /\u003e\n  \n  \n\n\n\n\n\n\n  \n  \n\u003csource\n  srcset=\"/posts/illuminate-technical-debt/azure-devops-process-templates-544x111.png?v=f138a1d35f81eb1c94e190694d99c3be\"\n  type=\"image/png\"\n  media=\" (max-width: 575.98px)\" /\u003e\n  \n  \n\n\n\n\n        \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n  \n  \n  \n\u003csource\n  srcset=\"/posts/illuminate-technical-debt/azure-devops-process-templates-672x137.webp?v=f77240208a267ede01ad7ba67d8111fa\"\n  type=\"image/webp\"\n  media=\" (max-width: 767.98px)\" /\u003e\n  \n  \n\n\n\n\n\n\n  \n  \n\u003csource\n  srcset=\"/posts/illuminate-technical-debt/azure-devops-process-templates-672x137.png?v=c62698be0bfc91fdaaa7dce809015f72\"\n  type=\"image/png\"\n  media=\" (max-width: 767.98px)\" /\u003e\n  \n  \n\n\n\n\n        \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n  \n  \n  \n\u003csource\n  srcset=\"/posts/illuminate-technical-debt/azure-devops-process-templates-896x182.webp?v=301a2d3e0dc3d923117bae4e1d24d94e\"\n  type=\"image/webp\"\n  media=\" (max-width: 991.98px)\" /\u003e\n  \n  \n\n\n\n\n\n\n  \n  \n\u003csource\n  srcset=\"/posts/illuminate-technical-debt/azure-devops-process-templates-896x182.png?v=c61cf536954ee7ebb57a90f5933cbc27\"\n  type=\"image/png\"\n  media=\" (max-width: 991.98px)\" /\u003e\n  \n  \n\n\n\n\n        \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n  \n  \n  \n\u003csource\n  srcset=\"/posts/illuminate-technical-debt/azure-devops-process-templates-1104x224.webp?v=ba7177e89e0191052e1f13719f93da32\"\n  type=\"image/webp\" /\u003e\n  \n  \n\n\n\n\n\n\n  \n  \n\u003csource\n  srcset=\"/posts/illuminate-technical-debt/azure-devops-process-templates-1104x224.png?v=b6ef52b236efe2029b6041fe258dc5ee\"\n  type=\"image/png\" /\u003e\n  \n  \n\n\n\n\n        \n\n\n\n\n\n\n      \n      \n    \n    \u003cimg\n      src=\"/posts/illuminate-technical-debt/azure-devops-process-templates.png?v=07ef92b07b784fd85b4eb91ec33eddf1\"\n      alt=\"Azure DevOps Prozess Templates Erweiterung\"\n      loading=\"lazy\"\n      \n      decoding=\"async\"\n      width=\"1444\" height=\"1444\"\n      \n       /\u003e\n  \u003c/picture\u003e\n  \n  \n\u003c/figure\u003e\n\u003c/p\u003e\n\u003cp\u003eIn this case, the extended process templates AgileRCDA and ScrumRCDA were simply extended by an additional WorkItem type, which will be used in the future to record and visualize technical debt. In 2011, Kruchten already used the color black for the color scheme of technical debt.\n\n\n\n\n\n\n\n\n\n\n  \n  \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u003cfigure class=\"responsive\"\u003e\n  \u003cpicture\u003e\n    \n      \n        \n        \n\n        \n          \n        \n\n        \n\n        \n        \n\n        \n        \n\n\n\n\n\n\n        \n\n\n\n\n\n\n        \n\n\n\n\n\n\n        \n\n\n\n\n\n\n        \n\n\n\n\n\n\n      \n      \n    \n    \u003cimg\n      src=\"/posts/illuminate-technical-debt/azure-devops-workitem-technical-debt.png?v=cf328b57fb1eb531943745c3671c492f\"\n      alt=\"WorkItem Type: Technical Debt\"\n      loading=\"lazy\"\n      \n      decoding=\"async\"\n      width=\"1444\" height=\"1444\"\n      \n       /\u003e\n  \u003c/picture\u003e\n  \n  \n\u003c/figure\u003e\n\u003c/p\u003e\n\u003cp\u003eFor later prioritization and sorting, it is advisable to pass additional parameters to the WorkItem type, such as\n\n\n\n\n\n\n\n\n\n\n  \n  \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\u003cfigure class=\"responsive\"\u003e\n  \u003cpicture\u003e\n    \n      \n        \n        \n\n        \n          \n        \n\n        \n\n        \n        \n\n        \n        \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n  \n  \n  \n\u003csource\n  srcset=\"/posts/illuminate-technical-debt/azure-devops-workitem-technical-debt-settings-544x145.webp?v=fab732c602641b73883dce8c1b304a4c\"\n  type=\"image/webp\" /\u003e\n  \n  \n\n\n\n\n\n\n  \n  \n\u003csource\n  srcset=\"/posts/illuminate-technical-debt/azure-devops-workitem-technical-debt-settings-544x145.png?v=ed5e00c199145fa56e8ffeeb123a1865\"\n  type=\"image/png\" /\u003e\n  \n  \n\n\n\n\n        \n\n\n\n\n\n\n        \n\n\n\n\n\n\n        \n\n\n\n\n\n\n        \n\n\n\n\n\n\n      \n      \n    \n    \u003cimg\n      src=\"/posts/illuminate-technical-debt/azure-devops-workitem-technical-debt-settings.png?v=7e567c600ecc2d9fe97aa179a4779f95\"\n      alt=\"WorkItem-Typ: Technical Debt - Settings\"\n      loading=\"lazy\"\n      \n      decoding=\"async\"\n      width=\"1444\" height=\"1444\"\n      \n       /\u003e\n  \u003c/picture\u003e\n  \n  \n\u003c/figure\u003e\n\u003c/p\u003e\n\u003cp\u003eThis creates the technical foundation based on the process templates, and within the project only the technical debt type work items need to be recorded.\u003c/p\u003e\n\n\n\n\n\u003ch2 id=\"summary\"\u003e\u003ca href=\"/posts/illuminate-technical-debt/#summary\" title=\"Summary\"\u003eSummary\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eThe Azure DevOps extension (or alternative platforms) presented here takes only a few minutes to extend and deploy. But it will have the desired effect by the next sprint meeting. That\u0026rsquo;s because the black work items of the \u0026ldquo;technical debt\u0026rdquo; type quickly give the impression of a tombstone and provide the necessary visibility.\u003c/p\u003e\n\u003cp\u003eDon\u0026rsquo;t be surprised if the tombstones start to pile up after a few weeks. Your colleagues and team members know about other Technical Debts that you probably haven\u0026rsquo;t noticed yet.\u003c/p\u003e","date_modified":"2026-05-25T22:16:53+02:00","date_published":"2023-04-12T17:00:00+02:00","id":"https://daily-devops.net/posts/illuminate-technical-debt/","language":"en","summary":"Learn how to make technical debt visible, measurable, and manageable using platforms like Azure DevOps with practical tools, metrics, and strategies.","tags":["azuredevops","extensions","rcda","technicaldebt"],"title":"Illuminate Technical Debt with .NET Analyzers \u0026 Metrics","url":"https://daily-devops.net/posts/illuminate-technical-debt/"}],"language":"en","title":"Azure DevOps for CI/CD and Agile on Daily DevOps \u0026 .NET","version":"https://jsonfeed.org/version/1.1"}