{"id":2346,"date":"2015-03-04T10:17:28","date_gmt":"2015-03-04T09:17:28","guid":{"rendered":"http:\/\/www.prasadgupte.com\/blog\/?p=2346"},"modified":"2020-08-15T07:57:53","modified_gmt":"2020-08-15T05:57:53","slug":"technical-debt-assessment-framework-product-managers","status":"publish","type":"post","link":"https:\/\/www.prasadgupte.com\/blog\/technical-debt-assessment-framework-product-managers\/","title":{"rendered":"Technical Debt Assessment framework for Product Managers"},"content":{"rendered":"<p>a.k.a. Why &amp; How Product Managers must assess, account &amp; groom technical debt<\/p>\n<h2>Context<\/h2>\n<figure style=\"width: 210px\" class=\"wp-caption alignright\"><img loading=\"lazy\" decoding=\"async\" class=\"\" src=\"http:\/\/galorath.com\/wp-content\/uploads\/2011\/05\/technical-debt-300x235.jpg\" alt=\"Technical Debt explained (c) galorath.com\" width=\"210\" height=\"164\" \/><figcaption class=\"wp-caption-text\">Technical Debt explained (c) galorath.com<\/figcaption><\/figure>\n<p style=\"text-align: justify;\">When I started conceptualizing a new product 5 years back, the concept of technical debt only existed in theory. Over a period, the pressure of time &amp; customers, drove features\u00a0cuts, compromises, and unfortunately, some quick-and-dirty solutions. Post the short-term wins, its not too long before technical debt surfaces and forces a resolution.<\/p>\n<h2 style=\"text-align: justify;\">Triggers<\/h2>\n<p style=\"text-align: justify;\">Technical debt is taken up for\u00a0short-term advantages such as shorter time-to-market, and preserving\u00a0capital. But in the long run, it reduces productivity, time available for new feature development and, God forbid, might keep you from <a title=\"Henrik Berglund - Crossing the Chasm\" href=\"http:\/\/www.slideshare.net\/khberglund\/crossing-the-chasm-henrik-berglund\" target=\"_blank\" rel=\"noopener noreferrer\">crossing the chasm<\/a>.<\/p>\n<p style=\"text-align: justify;\">While\u00a0Product Managers balance out the short and\u00a0long term benefits\/impact of every\u00a0product decision, it is important that they keep track of the debt that is being baked in with every story. At the same time, having some framework to preempt the debt that\u00a0is inadvertently introduced\u00a0and proactively manage it as a roadmap item.<\/p>\n<h2 style=\"text-align: justify;\">The Debt Assessment Framework<\/h2>\n<p style=\"text-align: justify;\">Fowler\u00a0categorizes <a title=\"Technical Debt - Wikipedia\" href=\"http:\/\/en.wikipedia.org\/wiki\/Technical_debt\" target=\"_blank\" rel=\"noopener noreferrer\">debt<\/a> as Reckless v\/s Prudent, or Deliberate v\/s Inadvertent. While this classification answers the &#8216;how&#8217;, it doesn&#8217;t provide\u00a0visibility into &#8216;what&#8217; and &#8216;where&#8217; of\u00a0debt is added. Without further classification, accounting debt is like having a balance sheet with just one account for liabilities. I would like\u00a0to further\u00a0categorize all the debt that is deliberately added and assess its risk upfront. Here&#8217;s how:<\/p>\n<div class=\"table-responsive\"><table  style=\"width:100%; \"  class=\"easy-table easy-table-default table-striped table-condensed\" >\n<caption>Risk assessment for (deliberate) technical debt<\/caption>\n<thead>\r\n<tr><th  style=\"width:100px;text-align:left\" >Type<\/th>\n<th  style=\"text-align:left\" >Potentially lacks..<\/th>\n<th >User Visible<\/th>\n<th >Sales Risk<\/th>\n<th >Ops Risk<\/th>\n<\/tr>\n<\/thead>\n<tbody>\r\n<tr><td  style=\"text-align:left\" >Business value<\/td>\n<td  style=\"text-align:left\" >Comprehensiveness in all business scenarios, Browser\/Language support, Super admin rights, etc.<\/td>\n<td >Y<\/td>\n<td ><span style=\"color: #ff0000;\">Y<\/span><\/td>\n<td >N<\/td>\n<\/tr>\n\r\n<tr><td  style=\"text-align:left\" >User Experience<\/td>\n<td  style=\"text-align:left\" >Simple task flows, help cues, consistent design, mobility,\u00a0Usability or A\/B testing<\/td>\n<td >Y<\/td>\n<td ><span style=\"color: #ff0000;\">Y<\/span><\/td>\n<td >N<\/td>\n<\/tr>\n\r\n<tr><td  style=\"text-align:left\" >Performance<\/td>\n<td  style=\"text-align:left\" >Quick response, High availability, Clustering, CDN, Load\/Stress test suite<\/td>\n<td >Y<\/td>\n<td ><span style=\"color: #ff0000;\">Y<\/span><\/td>\n<td >Y<\/td>\n<\/tr>\n\r\n<tr><td  style=\"text-align:left\" >Maintainability<\/td>\n<td  style=\"text-align:left\" >Data redundancy,\u00a0Recovery, Migration, Configuration management, Sizing estimates, Documentation<\/td>\n<td >N<\/td>\n<td >N<\/td>\n<td ><span style=\"color: #ff0000;\">Y<\/span><\/td>\n<\/tr>\n\r\n<tr><td  style=\"text-align:left\" >Design\/Architectural<\/td>\n<td  style=\"text-align:left\" >Portability, Modularity, Coding standards, &amp; styles, Web services, Latest component versions; Has glue or duplicate code<\/td>\n<td >N<\/td>\n<td >Y<\/td>\n<td ><span style=\"color: #ff0000;\">Y<\/span><\/td>\n<\/tr>\n\r\n<tr><td  style=\"text-align:left\" >Test Automation<\/td>\n<td  style=\"text-align:left\" >Comprehensive coverage of\u00a0functional\/unit tests, either brittle or missing<\/td>\n<td >N<\/td>\n<td >N<\/td>\n<td ><span style=\"color: #ff0000;\">Y<\/span><\/td>\n<\/tr>\n<\/tbody><\/table><\/div>\n<p style=\"text-align: justify;\">If you&#8217;re wondering why (missing) features and defects don&#8217;t show in the list, that&#8217;s because they\u00a0are the fundamental work units for development and not actually debt.<\/p>\n<h2>Practical use<\/h2>\n<p style=\"text-align: justify;\">Using\u00a0the above framework\u00a0as checklist for all new feature development, even non-technical Product managers can easily assess<!--more-->the\u00a0technical debt being accumulated\u00a0and the potential risk thereof.<\/p>\n<p style=\"text-align: justify;\">The simplest solution is to include these 6 parameters as flags in your requirements management tool against every feature &amp; defect &#8211;\u00a0PRD, Excel or Jira doesn&#8217;t really matter. This guarantees a thought to debt as each backlog\u00a0item is groomed, and allow the team to decide &#8211; as a collective &#8211; if they want to take up debt.<\/p>\n<p style=\"text-align: justify;\">If you&#8217;d like a more <a href=\"http:\/\/reinertsenassociates.com\/technical-debt-adding-math-metaphor\/\" target=\"_blank\" rel=\"noopener noreferrer\">mathematical approach to this metaphor<\/a>, follow the <a href=\"http:\/\/reinertsenassociates.com\/technical-debt-adding-math-metaphor\/\" target=\"_blank\" rel=\"noopener noreferrer\">link<\/a>.<\/p>\n<p style=\"text-align: justify;\">Using this data to\u00a0report on areas where debt is stashed is good use.\u00a0Using it to hold people accountable for debt, is <span style=\"color: #ff0000;\">bad use <\/span>and against the usage policy of this framework.<\/p>\n<h2 style=\"text-align: justify;\">Result<\/h2>\n<p style=\"text-align: justify;\">Quantification of technical\u00a0debt\u00a0is an invaluable metric to the Product development lifecycle. While there is no\u00a0benchmark on acceptable\u00a0debt, it can at least serve as an indicator of how debt\u00a0changed over time &#8211; more like tracking kill-rate of defects.<\/p>\n<p style=\"text-align: justify;\">As we move from Vision &gt; MRD &gt; PRD &gt; User stories to cover breadth &amp; depth, the definition\u00a0of MVP could force us to target breadth first. In such situations, top management and sales is likely to carry a wrong picture of the depth. This is where data around technical debt comes handy in\u00a0defining a pragmatic\u00a0sales &amp; marketing pitch, and set revenue targets accordingly.<\/p>\n<p style=\"text-align: justify;\">With\u00a0sales\u00a0&amp; operational risk now associated with every backlog item, product owners can better prioritize their\u00a0roadmap by weighing debt items against ranked features &amp; defects.<\/p>\n<p style=\"text-align: justify;\">Keen to learn about how you manage debt &#8211; please comments below.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>a.k.a. Why &amp; How Product Managers must assess, account &amp; groom technical debt Context When I started conceptualizing a new product 5 years back, the concept of technical debt only existed in theory. Over a period, the pressure of time &amp; customers, drove features\u00a0cuts, compromises, and unfortunately, some quick-and-dirty solutions. Post the short-term wins, its &hellip; <a href=\"https:\/\/www.prasadgupte.com\/blog\/technical-debt-assessment-framework-product-managers\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Technical Debt Assessment framework for Product Managers<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":2354,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[134,183],"tags":[984,259,985,983,604,982],"class_list":["post-2346","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-engineering","category-innovation","tag-framework","tag-product-management","tag-product-owner","tag-risk-assessment","tag-roadmap","tag-technical-debt"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/www.prasadgupte.com\/blog\/wp-content\/uploads\/2015\/04\/IMG_20150303_214807.jpg","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/www.prasadgupte.com\/blog\/wp-json\/wp\/v2\/posts\/2346","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.prasadgupte.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.prasadgupte.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.prasadgupte.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.prasadgupte.com\/blog\/wp-json\/wp\/v2\/comments?post=2346"}],"version-history":[{"count":1,"href":"https:\/\/www.prasadgupte.com\/blog\/wp-json\/wp\/v2\/posts\/2346\/revisions"}],"predecessor-version":[{"id":3542,"href":"https:\/\/www.prasadgupte.com\/blog\/wp-json\/wp\/v2\/posts\/2346\/revisions\/3542"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.prasadgupte.com\/blog\/wp-json\/wp\/v2\/media\/2354"}],"wp:attachment":[{"href":"https:\/\/www.prasadgupte.com\/blog\/wp-json\/wp\/v2\/media?parent=2346"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.prasadgupte.com\/blog\/wp-json\/wp\/v2\/categories?post=2346"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.prasadgupte.com\/blog\/wp-json\/wp\/v2\/tags?post=2346"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}