{"componentChunkName":"component---src-templates-page-page-tsx","path":"/technical-debt-whitepaper/","result":{"data":{"contentfulPage":{"__typename":"ContentfulPage","id":"7f0d6efd-1d20-56f0-9d59-70732c6e31a2","metaTitle":{"metaTitle":"Opportunity cost of technical debt | TinyMCE White Paper"},"metaDescription":{"metaDescription":"The cost of technical debt can be huge and put at risk your development team capacity. We’ll dive deep into questions you’re possibly asking yourself and learn how smart organizations handle it."},"canonicalTag":null,"pageSlug":"technical-debt-whitepaper","pageTitle":null,"pageDescription":null,"pageBody":[{"__typename":"ContentfulText","id":"590b66fd-d7be-5f26-b81f-f2c63d878106","heading":null,"headingStyle":null,"spec":null,"content":null,"buttons":null}],"ogImage":null,"setkaCss":["https://www.tiny.cloud/setka/common_css_1634572086.css","https://www.tiny.cloud/setka/UzB_S9samuslkVBz1MATdQ.css","https://www.tiny.cloud/setka/TyTXej6UrCZPNOSRDBOIpw.css"],"setkaHtml":{"body_html":"<div class=\"stk-post stk-layout_12col_25837 stk-theme_46128\" data-stk=\"{&quot;images&quot;:[{&quot;id&quot;:201255,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:201254,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:201253,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:201252,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:201251,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:201250,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:201249,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:201248,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:201127,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:200819,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:200818,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:200817,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:200815,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:200813,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:200734,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:200729,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:200726,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:200722,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:200721,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:200720,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:200719,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:200718,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:200717,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:200716,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:200715,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:200714,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:200713,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:200712,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:200711,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:200710,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:200709,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:200708,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:198641,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:198639,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:198637,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:198634,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:198631,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:198630,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:198628,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:198627,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:198626,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:198625,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:198551,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:198550,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:198549,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:196537,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;},{&quot;id&quot;:196514,&quot;alt&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;}]}\" data-ui-id=\"post\" data-ce-tag=\"post\" data-reset-type=\"class\" data-layout-type=\"limited\" data-editor-version=\"3.2.5\"><div class=\"stk-grid stk-layout__overhangs_both stk-theme_46128__mb_0\" data-ce-tag=\"grid\" data-stk-css=\"stk4ZhpJ\"><div data-col-width=\"12\" class=\"stk-grid-col stk-grid-col_last stk-theme_46128__pad_ver_4\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\" data-stk-css=\"\" data-stk-css-m=\"\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"10\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><h1 class=\"stk-reset stk-theme_46128__color_46128_custom_color_2 stk-theme_46128__style_font_style-1670842336750\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Opportunity Cost of Technical Debt</strong></h1></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"10\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><hr class=\"stk-reset stk-theme_46128__separator_divider-1498128612642\" data-anim-m=\"false\"/></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"10\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\" data-stk-css=\"stkwHwea\"><p class=\"stk-theme_46128__style_font_style-1663317301352 stk-reset\" data-ce-tag=\"paragraph\">Minimize Your Rich Text Editor Development</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"10\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><hr class=\"stk-reset stk-theme_46128__separator_divider-1498128612642\" data-anim-m=\"false\"/></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div></div></div><div class=\"stk-theme_46128__mb_3 stk-grid stk-layout__overhangs_both\" data-ce-tag=\"grid\" data-stk-css=\"stkV1fe2\"><div data-col-width=\"12\" class=\"stk-grid-col stk-grid-col_last stk-theme_46128__pad_ver_2\" data-ce-tag=\"grid-col\"><div class=\"stk-theme_46128__mb_15 stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"1\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><p class=\"stk-reset stk-theme_46128__color_46128_custom_color_2\" data-ce-tag=\"paragraph\">1.0</p></div><div data-col-width=\"9\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><h3 class=\"stk-theme_46128__style_medium_header stk-reset stk-theme_46128__color_46128_custom_color_2\" data-ce-tag=\"paragraph\"><a class=\"stk-reset\" href=\"#stk-1\">Introduction</a></h3><p class=\"stk-theme_46128__style_accented_text stk-reset\" data-ce-tag=\"paragraph\">All Successful Technology has Debt</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-theme_46128__mb_15\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"1\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><p class=\"stk-reset stk-theme_46128__color_46128_custom_color_2\" data-ce-tag=\"paragraph\">2.0</p></div><div data-col-width=\"9\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><h3 class=\"stk-theme_46128__style_medium_header stk-reset stk-theme_46128__color_46128_custom_color_2\" data-ce-tag=\"paragraph\"><a class=\"stk-reset\" data-gtm-vis-has-fired-10171822_255=\"1\" href=\"#stk-2\">The Speed of&nbsp;Change</a></h3><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"4\" class=\"stk-grid-col\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__style_accented_text stk-reset stk-theme_46128__color_46128_custom_color_3\" data-ce-tag=\"paragraph\">2.1 <a class=\"stk-reset\" href=\"#stk-2-1\">Does Being Agile Increase Tech Debt</a>?</p><p class=\"stk-theme_46128__style_accented_text stk-theme_46128__color_46128_custom_color_3 stk-reset\" data-ce-tag=\"paragraph\">2.2 <a class=\"stk-reset\" href=\"#stk-2-2\">Is&nbsp;Open Source a&nbsp;Plus or&nbsp;Minus for Tech Debt?</a></p><p class=\"stk-theme_46128__style_accented_text stk-theme_46128__color_46128_custom_color_3 stk-reset\" data-ce-tag=\"paragraph\">2.3 <a class=\"stk-reset\" href=\"#stk-2-3\">Complexity Breeds Constant Reinvention</a></p><p class=\"stk-theme_46128__style_accented_text stk-theme_46128__color_46128_custom_color_3 stk-reset\" data-ce-tag=\"paragraph\">2.4 <a class=\"stk-reset\" href=\"#stk-2-4\">Rich Text Editors Live a&nbsp;Fast Life</a></p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"4\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset stk-theme_46128__style_accented_text stk-theme_46128__color_46128_custom_color_3\" data-ce-tag=\"paragraph\">2.5 <a class=\"stk-reset\" href=\"#stk-2-5\">Opportunity Cost of&nbsp;RTE Technical Debt</a></p><p class=\"stk-theme_46128__style_accented_text stk-theme_46128__color_46128_custom_color_3 stk-reset\" data-ce-tag=\"paragraph\">2.6 <a class=\"stk-reset\" href=\"#stk-2-6\">Even the Best Creates Cruft</a></p><p class=\"stk-theme_46128__style_accented_text stk-theme_46128__color_46128_custom_color_3 stk-reset\" data-ce-tag=\"paragraph\">2.7 <a class=\"stk-reset\" href=\"#stk-2-7\">Hard Choices are Opportunities</a></p></div></div></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"1\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><p class=\"stk-reset stk-theme_46128__color_46128_custom_color_2\" data-ce-tag=\"paragraph\">3.0</p></div><div data-col-width=\"9\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><h3 class=\"stk-theme_46128__style_medium_header stk-reset stk-theme_46128__color_46128_custom_color_2\" data-ce-tag=\"paragraph\"><a class=\"stk-reset\" href=\"#stk-3\">The Unfortunate Truth</a></h3></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div></div></div><div class=\"stk-grid stk-theme_46128__mb_2\" data-ce-tag=\"grid\"><div data-col-width=\"12\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col valign-middle\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\" data-anim-m=\"false\" data-stk-css=\"stkbZFSO\" data-anim=\"true\" data-anim-name=\"preset-slideInLeft\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\">1.0</p></div><div data-col-width=\"2\" class=\"stk-grid-col valign-middle\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\" data-anim-m=\"false\" data-anim=\"true\" data-anim-name=\"preset-slideInLeft\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\"/></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><h2 class=\"stk-theme_46128__style_large_header stk-reset\" data-ce-tag=\"paragraph\" id=\"stk-1\" data-anim-m=\"false\" data-anim=\"true\" data-anim-name=\"preset-fadeIn\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\">Introduction</h2></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__style_font_style-1663317301352 stk-reset\" data-ce-tag=\"paragraph\" data-anim-m=\"false\" data-stk-css=\"stk7neDH\" data-anim=\"true\" data-anim-name=\"preset-fadeIn\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\">All Successful Technology has Debt</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-theme_46128__mb_2\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">As&nbsp;they say, money talks.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">So&nbsp;by&nbsp;saying you have technical debt, you’ve achieved an&nbsp;implied level of&nbsp;success.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">It means the product in question is being bought, used, and requires rapid change to support revenue hypergrowth, user demands or product-market fit. But, there’s a sticky trap: innovation and development go hand-in-hand with technical debt.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">In&nbsp;the pursuit of&nbsp;delivering more, faster, your development teams and infrastructure are taking on&nbsp;tech debt. And, the time soon arrives where that debt outranks your growth projects; it&nbsp;begins slowing development and delaying new releases.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Every bug and payoff task carries an&nbsp;opportunity cost.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Whenever your Dev team spends time and resources on&nbsp;those payoff tasks (upgrading, refactoring, repairing), they’re pursuing fewer software improvements and innovations. The potential monetary value yielded from those innovations, is&nbsp;forfeited.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">According to&nbsp;Stripe’s Developer Coefficient report, <a href=\"https://stripe.com/files/reports/the-developer-coefficient.pdf\" target=\"_blank\" class=\"stk-reset\">42% of&nbsp;every developers’ working week is&nbsp;spent dealing with technical debt </a>(13.5 hrs) and bad code (3.8 hrs), which equates to&nbsp;nearly $85 billion worldwide in&nbsp;opportunity cost lost annually. That’s a&nbsp;huge chunk of&nbsp;development time and money.</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-theme_46128__mb_2 stk-grid stk-grid__layout_reverse\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col align-right stk-grid-col_last\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><p class=\"ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><p class=\"stk-theme_46128__mb_0 ce-element--empty stk-element_no-text stk-reset stk-mobile-hidden\" data-ce-tag=\"paragraph\"></p><figure class=\"stk-theme_46128__mb_0 stk-reset stk-image-figure stk-mobile-hidden\" data-ce-tag=\"image-figure\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/f0f137ee-dc76-4c82-a8fb-a09f945a79e4/\" data-image-id=\"198625\" data-image-name=\"arrow.svg\" loading=\"lazy\" class=\"stk-image stk-reset\" width=\"14\" height=\"17\"/></div></figure><p class=\"stk-theme_46128__style_small_text stk-theme_46128__color_46128_custom_color_2 stk-reset align-left-m\" data-ce-tag=\"paragraph\"><a href=\"https://stripe.com/files/reports/the-developer-coefficient.pdf\" target=\"_blank\" class=\"stk-reset\">Source</a> (page 5)</p></div><div data-col-width=\"11\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><figure class=\"stk-reset stk-image-figure\" data-anim-m=\"false\" data-stk-css=\"stkwG0qH\" data-anim=\"true\" data-anim-name=\"preset-fadeIn\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" data-ce-tag=\"image-figure\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/b4221793-6461-4a99-9fef-aeb3e16861d9/\" data-image-id=\"201248\" data-image-name=\"Group 34.png\" class=\"stk-image stk-reset\" loading=\"lazy\" width=\"2228\" height=\"1004\"/></div></figure></div></div><div class=\"stk-grid stk-theme_46128__mb_2\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">The report goes on&nbsp;to&nbsp;say that with “…the number of&nbsp;developers increasing year-over-year at&nbsp;most companies, developers working on&nbsp;the right things can accelerate a&nbsp;company’s move into new markets or&nbsp;product areas and help companies differentiate themselves at&nbsp;disproportionate rates.”</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Perhaps then, the <a href=\"https://www.infoworld.com/article/3635708/technical-debt-will-sink-you.html\" target=\"_blank\" class=\"stk-reset\">post-pandemic software challenge</a> isn’t more new products and features… it’s the ability to&nbsp;walk the tightrope between technical debt and innovation. Too much debt, sucks energy away from innovation and slows growth. Opportunities are lost. Too little debt, and your ability to&nbsp;scale fast, ship fast, and test in-market can be&nbsp;stifled. Value to&nbsp;your users slows.</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-theme_46128__mb_2 stk-theme_46128__mb_default-m stk-layout__overhangs_both\" data-stk-css=\"stkA3QnI\" data-ce-tag=\"grid\"><div data-col-width=\"12\" class=\"stk-grid-col stk-theme_46128__pad_ver_2 stk-grid-col_last stk-theme_46128__pad_ver_1-m\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"1\" class=\"stk-grid-col\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><figure class=\"stk-reset stk-image-figure\" data-ce-tag=\"image-figure\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/d6850d19-acd0-4f0f-8fa4-22685ee864da/\" data-image-id=\"196514\" data-image-name=\"“.svg\" loading=\"lazy\" class=\"stk-image stk-reset\" width=\"58\" height=\"34\"/></div></figure></div><div data-col-width=\"7\" class=\"stk-grid-col stk-grid-col_last valign-middle\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\"/></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-grid__layout_reverse\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><div class=\"stk-theme_46128__mb_05 stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><figure class=\"stk-reset stk-image-figure\" data-stk-css=\"stkqZqyy\" data-ce-tag=\"image-figure\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/17765c31-8161-45d1-8cc9-56a31fa71038/\" data-image-id=\"200709\" data-image-name=\"ph-1.png\" class=\"stk-image stk-reset\" loading=\"lazy\" width=\"600\" height=\"600\"/></div></figure></div></div><p class=\"stk-theme_46128__style_font_style-1663332392241 stk-theme_46128__mb_0 stk-reset stk-theme_46128__color_46128_custom_color_2\" data-ce-tag=\"paragraph\"><a class=\"stk-reset\" href=\"https://twitter.com/kellysutton\" target=\"_blank\"><strong class=\"stk-reset\">Kelly Sutton</strong></a></p><p class=\"stk-theme_46128__style_small_text stk-reset\" data-ce-tag=\"paragraph\">Software Engineer</p></div><div data-col-width=\"8\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><p class=\"stk-reset stk-theme_46128__style_font_style-1663334000661\" data-ce-tag=\"paragraph\">In&nbsp;conversations and writing around technical debt, folks stretch the metaphor. We&nbsp;dive deep into the finance comparisons, we&nbsp;analyze its softer costs, or&nbsp;we&nbsp;just throw our hands up&nbsp;and claim it&nbsp;doesn’t exist. […] To&nbsp;get others in&nbsp;your organization, whether it&nbsp;be&nbsp;your manager or&nbsp;her manager or&nbsp;someone in&nbsp;finance, you need to&nbsp;have a&nbsp;common language.</p><p class=\"stk-reset stk-theme_46128__style_font_style-1663334000661\" data-ce-tag=\"paragraph\">This becomes especially important when discussing opportunity cost. How do&nbsp;you rank technical debt projects against growth projects? At&nbsp;a&nbsp;certain point, we&nbsp;need to&nbsp;quantify “Slowing down development time.”</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-ce-tag=\"grid\" data-anim-m=\"false\" data-anim-zoom=\"100\" data-anim-shift=\"60\" data-anim-rotation=\"0\" data-anim-opacity=\"100\" data-anim-direction=\"top\" data-anim-duration=\"0.6000000000000001\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" data-anim-trigger=\"whenScrolling\" data-anim-sticky-direction=\"top\" data-anim-sticky-offset=\"20\" data-anim-name=\"bcIJE\" data-anim=\"true\"><div data-col-width=\"3\" class=\"stk-theme_46128__pad_round_1 stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-element_no-text stk-reset stk-theme_46128__mb_0\" data-ce-tag=\"paragraph\" data-anim-m=\"false\" data-stk-css=\"stkAhpJ-\"><img alt=\"\" class=\"stk-reset stk-theme_46128__symbol_custom_image_3736723 stk-icon\" src=\"https://ucarecdn.com/31bae7df-74ed-489f-b9ec-b4ae2f4f9271/\"></p><hr class=\"stk-theme_46128__separator_basic_divider stk-theme_46128__mb_05 stk-reset\"/><p class=\"stk-theme_46128__style_font_style-1663332392241 stk-theme_46128__color_46128_custom_color_2 stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Tech Debt Defined</strong></p><p class=\"stk-theme_46128__style_small_text stk-reset\" data-ce-tag=\"paragraph\">According to&nbsp;<a class=\"stk-reset\" href=\"https://www.techopedia.com/definition/27913/technical-debt\" target=\"_blank\">Techopedia</a>, “Technical debt is&nbsp;a&nbsp;concept in&nbsp;programming that reflects the extra development work that arises when code that is&nbsp;easy to&nbsp;implement in&nbsp;the short run is&nbsp;used instead of&nbsp;applying the best overall solution.”</p></div></div></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Wherever technical debt lives, decisions are framed by&nbsp;that debt.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Stakeholder debates rage over whether to&nbsp;manage the debt or&nbsp;become a&nbsp;dead company with pristine code. Meetings echo with refrains like “Yes, we&nbsp;should do&nbsp;something about the tech debt, but we&nbsp;can’t afford to&nbsp;do&nbsp;it&nbsp;now”. Then there’s the development work you’ve taken on&nbsp;that’s beyond your team’s core skill set&nbsp;— <a href=\"https://www.tiny.cloud/buy-vs-build-whitepaper/\" target=\"_blank\" class=\"stk-reset\">building complex components that carry greater risk</a> of&nbsp;build blowouts and debt accrual&nbsp;— that have mushroomed your debt levels.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">What’s the answer?</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Smart organizations are finding ways to&nbsp;sidestep making their debt hole deeper. Their tech debt management plan includes scoping, sourcing and maintaining a&nbsp;reusable tech stack that includes components with built-in scalability.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">They’re minimizing their ‘owned’ tech debt by&nbsp;buying, assembling and integrating those complex components, from specialists.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">So&nbsp;someone else carries the tech debt load.</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div></div></div><div class=\"stk-theme_46128__mb_3 stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"12\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"12\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\" data-anim-m=\"false\" data-stk-css=\"stktSS3j\" data-anim=\"true\" data-anim-name=\"preset-slideInRight\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\"/><div class=\"stk-grid\" data-anim-m=\"false\" data-stk-css=\"stkV6vNO\" data-anim=\"true\" data-anim-name=\"preset-fadeIn\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__style_accented_text align-center stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Download a PDF of this white paper<br>and save it for later</strong></p><a class=\"stk-theme_46128__stk-btn_basic stk-theme_46128__style_font_style-1663332392241 align-center stk-reset\" href=\"https://www.tiny.cloud/technical-debt-whitepaper-opt-in\" target=\"_blank\" data-stk-button=\"1\" data-ce-tag=\"button\">Download</a></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\" data-anim-m=\"false\" data-stk-css=\"stk8ssDX\" data-anim=\"true\" data-anim-name=\"preset-slideInLeft\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\"/></div></div></div></div><div class=\"stk-theme_46128__mb_2 stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"12\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><div class=\"stk-grid stk-theme_46128__mb_2\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col valign-middle\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\" data-anim-m=\"false\" data-stk-css=\"stkxTwXS\" data-anim=\"true\" data-anim-name=\"preset-slideInLeft\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\">2.0</p></div><div data-col-width=\"2\" class=\"stk-grid-col valign-middle\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\" data-anim-m=\"false\" data-stk-css=\"stkQ0hJC\" data-anim=\"true\" data-anim-name=\"preset-slideInLeft\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\"/></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><h2 class=\"stk-theme_46128__style_large_header stk-reset\" data-ce-tag=\"paragraph\" id=\"stk-2\" data-anim-m=\"false\" data-stk-css=\"stk2luzn\" data-anim=\"true\" data-anim-name=\"preset-fadeIn\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\">The Speed of&nbsp;Change</h2></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-theme_46128__mb_05 stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"1\" class=\"stk-grid-col align-right align-left-m\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\" data-anim-m=\"false\" data-stk-css=\"stkA3dFw\" data-anim=\"true\" data-anim-name=\"preset-slideInLeft\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" id=\"stk-2-1\">2.1</p></div><div data-col-width=\"3\" class=\"stk-grid-col valign-middle stk-grid-col_last\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\" data-anim-m=\"false\" data-stk-css=\"stky_iDK\" data-anim=\"true\" data-anim-name=\"preset-slideInRight\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\"/></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"5\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><h3 class=\"stk-theme_46128__style_medium_header stk-reset\" data-ce-tag=\"paragraph\">Does Being Agile Increase Tech Debt?</h3></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-theme_46128__mb_2\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Technical debt is&nbsp;hard to&nbsp;avoid.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">It’s part of&nbsp;the air that every software developer breathes.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">As&nbsp;<a href=\"https://www.mckinsey.com/business-functions/mckinsey-digital/our-insights/demystifying-digital-dark-matter-a-new-standard-to-tame-technical-debt\" target=\"_blank\" class=\"stk-reset\">McKinsey says</a>, “Technical debt is&nbsp;like dark matter: you know it&nbsp;exists, you can infer its impact, but you can’t see or&nbsp;measure&nbsp;it. Product delays, hidden risks, spiraling costs, and even engineers leaving in&nbsp;frustration are all common symptoms.”</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Another characterization&nbsp;— the ‘off-balance-sheet’ accumulation of&nbsp;future development work&nbsp;— doesn’t sound so&nbsp;bad, but it’s almost invisible bloat (especially to&nbsp;non-technical stakeholders) can cripple your long-term ability to&nbsp;deliver value to&nbsp;users.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Tech debt is&nbsp;a&nbsp;ceaseless, clingy cycle.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">As&nbsp;software proliferates, enterprises push harder towards digital transformation. They jostle to&nbsp;increase their agility, keep pace with software-based innovation and customer expectations. That forces accelerated development timeframes and debt accumulation.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Agile product and engineering teams struggle to&nbsp;meet the demands of&nbsp;modern architectures and edge cases (especially those outside their core skill), and cycle through hit-and-miss release schedules at&nbsp;breakneck speed to&nbsp;build secure, reliable applications.</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-theme_46128__mb_2 stk-grid stk-grid__layout_reverse\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col align-right align-left-m valign-middle stk-grid-col_last\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><figure class=\"stk-theme_46128__mb_0 stk-reset stk-image-figure stk-mobile-hidden\" data-ce-tag=\"image-figure\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/f0f137ee-dc76-4c82-a8fb-a09f945a79e4/\" data-image-id=\"198625\" data-image-name=\"arrow.svg\" loading=\"lazy\" class=\"stk-image stk-reset\" width=\"14\" height=\"17\"/></div></figure><p class=\"stk-theme_46128__style_small_text stk-theme_46128__color_46128_custom_color_2 stk-reset\" data-ce-tag=\"paragraph\"><a href=\"https://medium.com/the-liberators/how-to-deal-with-technical-debt-in-scrum-f4ec3481eabb\" target=\"_blank\" class=\"stk-reset\">Source</a></p></div><div data-col-width=\"11\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><figure class=\"stk-theme_46128__mb_2 stk-reset stk-image-figure\" data-ce-tag=\"image-figure\" data-anim-m=\"false\" data-stk-css=\"stk5uoo-\" data-anim=\"true\" data-anim-name=\"preset-fadeIn\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/0b172a3b-cd09-4b6a-8bc8-9a8d2bc02422/\" data-image-id=\"201249\" data-image-name=\"Group 33 1.png\" class=\"stk-image stk-reset\" loading=\"lazy\" width=\"2442\" height=\"1174\"/></div></figure></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col valign-middle\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-ce-tag=\"grid\" data-anim-m=\"false\" data-anim=\"true\" data-anim-name=\"preset-slideInLeft\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__mb_05 stk-reset stk-theme_46128__style_font_style-1663330932645 stk-theme_46128__color_46128_custom_color_1\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">$1.31T</strong></p><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset stk-theme_46128__style_small_text\" data-ce-tag=\"paragraph\">estimated software technical debt (principal only, not including interest) in 2020</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div></div></div></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Let’s attach some hard numbers to&nbsp;the issue.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">A&nbsp;2020&nbsp;report from the Consortium for Information &amp; Software Quality (CISQ) calculated the <a href=\"https://www.it-cisq.org/the-cost-of-poor-software-quality-in-the-us-a-2020-report.htm\" target=\"_blank\" class=\"stk-reset\">Total Cost of&nbsp;Poor Software Quality (CPSQ)</a> in&nbsp;the United States to&nbsp;be&nbsp;$2.08 trillion (T). For comparison, only a&nbsp;dozen countries have an&nbsp;annual GDP of&nbsp;$2 trillion or&nbsp;more.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">The same report noted that the 2020&nbsp;estimated software technical debt was $1.31 trillion (principal only, not including interest), as&nbsp;an&nbsp;additional future cost. Those costs have been increasing at&nbsp;a&nbsp;rate of&nbsp;14% since 2018.</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-grid__layout_reverse\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col align-right align-left-m stk-grid-col_last\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><figure class=\"stk-theme_46128__mb_0 stk-reset stk-image-figure stk-mobile-hidden\" data-ce-tag=\"image-figure\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/f0f137ee-dc76-4c82-a8fb-a09f945a79e4/\" data-image-id=\"198625\" data-image-name=\"arrow.svg\" loading=\"lazy\" class=\"stk-image stk-reset\" width=\"14\" height=\"17\"/></div></figure><p class=\"stk-theme_46128__style_small_text stk-theme_46128__color_46128_custom_color_2 stk-reset\" data-ce-tag=\"paragraph\"><a href=\"https://www.it-cisq.org/pdf/CPSQ-2020-report.pdf\" target=\"_blank\" class=\"stk-reset\">Source</a> (Page 4)</p></div><div data-col-width=\"11\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><figure class=\"stk-reset stk-image-figure\" data-ce-tag=\"image-figure\" data-anim-m=\"false\" data-stk-css=\"stkji4Vw\" data-anim=\"true\" data-anim-name=\"preset-fadeIn\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/54146203-b289-45bc-9ddf-3258275d86bc/\" data-image-id=\"201251\" data-image-name=\"Group 35.png\" class=\"stk-image stk-reset\" loading=\"lazy\" width=\"2440\" height=\"1330\"/></div></figure></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col valign-middle\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-ce-tag=\"grid\" data-anim-m=\"false\" data-stk-css=\"stkGTXXZ\" data-anim=\"true\" data-anim-name=\"preset-slideInLeft\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset stk-theme_46128__mb_05 stk-theme_46128__style_small_text\" data-ce-tag=\"paragraph\">Tech debt is</p><p class=\"stk-theme_46128__style_font_style-1663330932645 stk-theme_46128__color_46128_custom_color_1 stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\" data-gtm-vis-has-fired-10171822_255=\"1\">20-40%</strong></p><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__style_small_text stk-reset\" data-ce-tag=\"paragraph\">of the total value of their entire technology estate</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div></div></div></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">The magnitude of&nbsp;the issue feels worse, when it’s in&nbsp;your own sandbox.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\"><a href=\"https://www.mckinsey.com/business-functions/mckinsey-digital/our-insights/demystifying-digital-dark-matter-a-new-standard-to-tame-technical-debt\" target=\"_blank\" class=\"stk-reset\">A&nbsp;McKinsey study in&nbsp;2022&nbsp;reported that</a> “Some 30&nbsp;percent of&nbsp;CIOs we&nbsp;surveyed believe that more than 20&nbsp;percent of&nbsp;their technical budget ostensibly dedicated to&nbsp;new products, is&nbsp;diverted to&nbsp;resolving issues related to&nbsp;tech debt. Furthermore, they estimate that tech debt amounts to&nbsp;20&nbsp;to&nbsp;40&nbsp;percent of&nbsp;the value of&nbsp;their entire technology estate (before depreciation).”</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">When more and more is&nbsp;spent on&nbsp;refactoring, it&nbsp;slows product innovation. And it&nbsp;lowers morale. That’s not what your Dev team signed up&nbsp;for&nbsp;— they want to&nbsp;work on&nbsp;meaningful projects.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">As&nbsp;a&nbsp;long-time product leader, <a href=\"https://medium.com/serious-scrum/how-to-deal-with-tech-debt-effectively-a28a4d4bb291\" target=\"_blank\" class=\"stk-reset\" data-gtm-vis-has-fired-10171822_255=\"1\">David Pereira recognised the issue in&nbsp;a&nbsp;recent article</a>, “Ignoring tech debt is&nbsp;the right way of&nbsp;building a&nbsp;product no&nbsp;developer wants to&nbsp;work with. […] Building a&nbsp;scalable product requires a&nbsp;strategy. It’s impossible to&nbsp;keep a&nbsp;product maintainable if&nbsp;the only thing you do&nbsp;is&nbsp;adding more features to&nbsp;it. Yet, it&nbsp;doesn’t mean you should build everything scalable from the beginning.”</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">The trick is&nbsp;knowing what to&nbsp;build, what to&nbsp;buy and what specialists to&nbsp;tap.</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"12\" class=\"stk-grid-col stk-grid-col_last\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><figure class=\"stk-reset stk-image-figure\" data-ce-tag=\"image-figure\" data-anim-m=\"false\" data-stk-css=\"stkgUUAm\" data-anim=\"true\" data-anim-name=\"preset-fadeIn\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/b5a7a02a-2371-4407-a0b6-eee2917991db/\" data-image-id=\"198637\" data-image-name=\"stat-4.svg\" loading=\"lazy\" class=\"stk-image stk-reset\" width=\"1014\" height=\"453\"/></div></figure></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col valign-middle\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-ce-tag=\"grid\" data-anim-m=\"false\" data-anim-zoom=\"100\" data-anim-shift=\"60\" data-anim-rotation=\"0\" data-anim-opacity=\"100\" data-anim-direction=\"top\" data-anim-duration=\"0.6\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" data-anim-trigger=\"whenScrolling\" data-anim-sticky-direction=\"top\" data-anim-sticky-offset=\"20\" data-anim-name=\"buqXJ\" data-anim=\"true\"><div data-col-width=\"3\" class=\"stk-theme_46128__pad_round_1 stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-element_no-text stk-reset stk-theme_46128__mb_0\" data-ce-tag=\"paragraph\"><img alt=\"\" class=\"stk-reset stk-theme_46128__symbol_custom_image_3736723 stk-icon\" src=\"https://ucarecdn.com/31bae7df-74ed-489f-b9ec-b4ae2f4f9271/\"></p><hr class=\"stk-theme_46128__separator_basic_divider stk-theme_46128__mb_05 stk-reset\"/><p class=\"stk-theme_46128__style_font_style-1663332392241 stk-theme_46128__color_46128_custom_color_2 stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Who Invented the Term Technical Debt?</strong></p><p class=\"stk-theme_46128__style_small_text stk-reset stk-theme_46128__mb_0\" data-ce-tag=\"paragraph\">Ward Cunningham, the developer of&nbsp;the first wiki and co-author of&nbsp;the <a class=\"stk-reset\" href=\"https://agilemanifesto.org/\" target=\"_blank\">Agile Manifesto</a>, <a class=\"stk-reset\" href=\"http://c2.com/doc/oopsla92.html\" target=\"_blank\">first explained and aligned technical debt,</a> using the metaphor of&nbsp;financial debt.</p><p class=\"stk-theme_46128__style_small_text stk-reset\" data-ce-tag=\"paragraph\">The <em class=\"stk-reset\">principal</em> part of&nbsp;your technical debt is&nbsp;the time saved during initial implementation, while the <em class=\"stk-reset\">interest</em> is&nbsp;the additional time, quality, and risk costs incurred until it’s resolved.</p></div></div></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Taking on&nbsp;<a href=\"https://www.tiny.cloud/blog/cost-of-building-rich-text-editor/\" target=\"_blank\" class=\"stk-reset\" data-gtm-vis-has-fired-10171822_255=\"1\">complex, costly code work</a> that’s outside your dev team’s strategic focus, often produces shortcuts, low-quality, temporary-but-not-really workarounds and other hackey short-term solutions… to&nbsp;get through a&nbsp;launch window.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">But they’re not viable long-term.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\"><a href=\"https://www.mckinsey.com/business-functions/mckinsey-digital/our-insights/tech-debt-reclaiming-tech-equity\" target=\"_blank\" class=\"stk-reset\">McKinsey noted in&nbsp;their CIO interviews on&nbsp;tech debt</a>, that “Some companies find that actively managing their tech debt frees up&nbsp;engineers to&nbsp;spend up&nbsp;to&nbsp;50&nbsp;percent more of&nbsp;their time on&nbsp;work that supports business goals. The CIO of&nbsp;a&nbsp;leading cloud provider told us, ‘By reinventing our debt management, we&nbsp;went from 75% of&nbsp;engineer time paying the [tech debt] ‘tax’ to&nbsp;25%. It&nbsp;allowed us&nbsp;to&nbsp;be&nbsp;who we&nbsp;are today.’”</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Smart dev teams are reinventing their debt management approach.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">In&nbsp;doing so&nbsp;they reduce risk, <a href=\"https://www.mckinsey.com/industries/technology-media-and-telecommunications/our-insights/developer-velocity-how-software-excellence-fuels-business-performance\" target=\"_blank\" class=\"stk-reset\">lift morale and deliver positive value</a>. They avoid taking on&nbsp;the unnecessarily complex development work (and its tech debt baggage) and instead buy and integrate reusable components, from specialists.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Assembling specialist components minimizes the ‘owned’ tech debt they need to&nbsp;carry. The debt that ‘would have’ been generated by&nbsp;building those complex components, is&nbsp;measurably reduced (if&nbsp;not almost eliminated).</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">In&nbsp;its place, the potential gain from on-time launches of&nbsp;new features is&nbsp;realized.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Does it&nbsp;work? Yes. Assembling maximizes the horsepower behind third-party specialization, empowers developers to&nbsp;focus on&nbsp;what they do&nbsp;best, minimizes needless technical debt and delivers the nimbleness to&nbsp;answer market demands for innovation.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Renowned<a class=\"stk-reset\" href=\"https://martinfowler.com/\" target=\"_blank\"> software developer, author and speaker, Martin Fowler</a> nails it&nbsp;when he&nbsp;says: “[…] while you’re programming, you are learning. It’s often the case that it&nbsp;can take a&nbsp;year of&nbsp;programming on&nbsp;a&nbsp;project before you understand what the best design approach should have been. […]</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">That’s a&nbsp;crucial part of&nbsp;reinventing your tech debt management. Don’t needlessly expand your own tech debt through <a href=\"https://www.tiny.cloud/solutions/content-authoring-tool/\" target=\"_blank\" class=\"stk-reset\">complex builds that other specialists</a> have already perfected.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Let the specialists manage the bear traps.</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div></div></div><div class=\"stk-theme_46128__mb_2 stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"12\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><div class=\"stk-theme_46128__mb_05 stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"1\" class=\"stk-grid-col align-right align-left-m\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\" data-anim-m=\"false\" data-stk-css=\"stk8rLdj\" data-anim=\"true\" data-anim-name=\"preset-slideInLeft\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" id=\"stk-2-2\">2.2</p></div><div data-col-width=\"3\" class=\"stk-grid-col valign-middle stk-grid-col_last\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\" data-anim-m=\"false\" data-stk-css=\"stkAyilq\" data-anim=\"true\" data-anim-name=\"preset-slideInRight\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\"/></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"5\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><h3 class=\"stk-theme_46128__style_medium_header stk-reset\" data-ce-tag=\"paragraph\">Open Source: a&nbsp;Plus or&nbsp;Minus for Tech Debt?</h3></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-ce-tag=\"grid\" data-anim-m=\"false\" data-anim-zoom=\"100\" data-anim-shift=\"60\" data-anim-rotation=\"0\" data-anim-opacity=\"100\" data-anim-direction=\"top\" data-anim-duration=\"0.6\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" data-anim-trigger=\"whenScrolling\" data-anim-sticky-direction=\"top\" data-anim-sticky-offset=\"20\" data-anim-name=\"UEJMl\" data-anim=\"true\"><div data-col-width=\"3\" class=\"stk-theme_46128__pad_round_1 stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-element_no-text stk-reset stk-theme_46128__mb_0\" data-ce-tag=\"paragraph\"><img alt=\"\" class=\"stk-reset stk-theme_46128__symbol_custom_image_3736723 stk-icon\" src=\"https://ucarecdn.com/31bae7df-74ed-489f-b9ec-b4ae2f4f9271/\"></p><hr class=\"stk-theme_46128__separator_basic_divider stk-theme_46128__mb_05 stk-reset\"/><p class=\"stk-theme_46128__style_font_style-1663332392241 stk-theme_46128__color_46128_custom_color_2 stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">What’s a&nbsp;digital factory?</strong></p><p class=\"stk-theme_46128__style_small_text stk-reset stk-theme_46128__mb_0\" data-ce-tag=\"paragraph\">Research firm, McKinsey, has dubbed a factory-like tech assembly approach, a ‘digital factory’ – where a&nbsp;company “brings together the skills, processes, and inputs required to&nbsp;produce high-quality outputs. […] The best digital factories can put a&nbsp;new product or&nbsp;customer experience into production in&nbsp;as&nbsp;little as&nbsp;ten weeks. The innovation can then be&nbsp;introduced and scaled up&nbsp;across the business in&nbsp;eight to&nbsp;12&nbsp;months.”</p></div></div></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Old questions still have echoes.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Why would I&nbsp;use open source?</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Here’s the new answer: You likely already&nbsp;do.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Today, it’s everywhere. Companies of&nbsp;all sizes&nbsp;— from small Dev teams to&nbsp;large-scale enterprises&nbsp;— use it&nbsp;frequently. Why? Because when you’re trying to&nbsp;innovate, fast, open source software (OSS) gives you a&nbsp;head start… it&nbsp;always has done.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Open innovation isn’t&nbsp;new. The first “Oxford English Dictionary” was an&nbsp;open-source project, and in&nbsp;the 1950s software was distributed free of&nbsp;charge.<sup class=\"stk-reset\"><span class=\"stk-reset\" data-stk-footnote-link=\"fn53j6t\">1</span></sup></p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Fast forward several decades and with the emergence of&nbsp;the <a href=\"https://www.mckinsey.com/business-functions/mckinsey-digital/our-insights/scaling-a-transformative-culture-through-a-digital-factory\" target=\"_blank\" class=\"stk-reset\">tech assembly approach called ‘digital factory</a>’, open source components are increasingly being used to&nbsp;facilitate faster project completions for both open and proprietary applications. They’re the outlier X-factor that, used cleverly, can positively impact growth and digital transformation.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">The key is&nbsp;knowing which ones to&nbsp;deploy, in&nbsp;wise ways.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Even McKinsey agrees. During the development of&nbsp;their <a href=\"https://www.mckinsey.com/industries/technology-media-and-telecommunications/our-insights/developer-velocity-how-software-excellence-fuels-business-performance\" target=\"_blank\" class=\"stk-reset\">Developer Velocity Index (DVI)</a> they said, “… across the entire group of&nbsp;companies surveyed, a&nbsp;different driver emerged as&nbsp;the biggest differentiator for companies within the top quartile: open-source adoption.”</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-grid__layout_reverse\" data-ce-tag=\"grid\"><div data-col-width=\"4\" class=\"stk-grid-col align-right valign-middle align-left-m stk-grid-col_last\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><figure class=\"stk-theme_46128__mb_0 stk-reset stk-image-figure stk-mobile-hidden\" data-ce-tag=\"image-figure\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/f0f137ee-dc76-4c82-a8fb-a09f945a79e4/\" data-image-id=\"198625\" data-image-name=\"arrow.svg\" loading=\"lazy\" class=\"stk-image stk-reset\" width=\"14\" height=\"17\"/></div></figure><p class=\"stk-theme_46128__style_small_text stk-theme_46128__color_46128_custom_color_2 stk-reset\" data-ce-tag=\"paragraph\"><a href=\"https://tidelift.com/subscription/the-tidelift-guide-to-managing-open-source\" target=\"_blank\" class=\"stk-reset\">Source</a></p></div><div data-col-width=\"7\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><figure class=\"stk-reset stk-image-figure\" data-ce-tag=\"image-figure\" data-anim-m=\"false\" data-anim=\"true\" data-anim-name=\"preset-fadeIn\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/a2f26b55-cde6-42ec-a899-3873fbf4fcba/\" data-image-id=\"201255\" data-image-name=\"Group 27 3.png\" class=\"stk-image stk-reset\" loading=\"lazy\" width=\"1807\" height=\"1399\"/></div></figure></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col valign-middle\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-ce-tag=\"grid\" data-anim-m=\"false\" data-anim=\"true\" data-anim-name=\"preset-slideInLeft\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><div class=\"stk-theme_46128__mb_05 stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset stk-theme_46128__mb_05 stk-theme_46128__style_small_text\" data-ce-tag=\"paragraph\">Open source code makes up</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><p class=\"stk-theme_46128__style_font_style-1663330932645 stk-theme_46128__color_46128_custom_color_1 stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\" data-gtm-vis-has-fired-10171822_255=\"1\">70%</strong></p><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__style_small_text stk-reset\" data-ce-tag=\"paragraph\">of most modern applications</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div></div></div></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Open source is&nbsp;frequently the foundation of&nbsp;innovation across the software industry.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Having <a href=\"https://opensource.org/history\" target=\"_blank\" class=\"stk-reset\">transformed from its once heretical roots</a>, it’s now an&nbsp;essential factor in&nbsp;how enterprises evaluate, use and purchase software to&nbsp;drive their innovation plans. The rationale is&nbsp;simple: OSS lowers development costs, decreases time to&nbsp;market, increases developer productivity, and accelerates innovation.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Billions of&nbsp;lines of&nbsp;code are freely available and shared through a&nbsp;community of&nbsp;creators, collaborators, and maintainers. As&nbsp;a&nbsp;result, most modern applications are built using open source components&nbsp;— in&nbsp;many cases, open source <a href=\"https://tidelift.com/subscription/video/the-tidelift-approach-to-securing-open-source-dependencies\" target=\"_blank\" class=\"stk-reset\" data-gtm-vis-has-fired-10171822_255=\"1\">makes up&nbsp;more than 70% of&nbsp;the code</a>.</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-grid__layout_reverse\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col align-right valign-middle align-left-m stk-grid-col_last\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><figure class=\"stk-theme_46128__mb_0 stk-reset stk-image-figure stk-mobile-hidden\" data-ce-tag=\"image-figure\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/f0f137ee-dc76-4c82-a8fb-a09f945a79e4/\" data-image-id=\"198625\" data-image-name=\"arrow.svg\" loading=\"lazy\" class=\"stk-image stk-reset\" width=\"14\" height=\"17\"/></div></figure><p class=\"stk-theme_46128__style_small_text stk-theme_46128__color_46128_custom_color_2 stk-reset\" data-ce-tag=\"paragraph\"><a href=\"https://tidelift.com/subscription/the-tidelift-guide-to-managing-open-source\" target=\"_blank\" class=\"stk-reset\">Source</a></p></div><div data-col-width=\"11\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><figure class=\"stk-reset stk-image-figure\" data-ce-tag=\"image-figure\" data-anim-m=\"false\" data-stk-css=\"stku4CFB\" data-anim=\"true\" data-anim-name=\"preset-fadeIn\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/1e923b97-0d9b-489c-900d-edd1ddf822b5/\" data-image-id=\"200813\" data-image-name=\"Group 28.png\" loading=\"lazy\" class=\"stk-image stk-reset\" width=\"2228\" height=\"856\"/></div></figure></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col valign-middle\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-ce-tag=\"grid\" data-anim-m=\"false\" data-stk-css=\"stk-Zxc9\" data-anim-zoom=\"100\" data-anim-shift=\"40\" data-anim-rotation=\"0\" data-anim-opacity=\"100\" data-anim-direction=\"right\" data-anim-duration=\"0.8\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" data-anim-trigger=\"scroll\" data-anim-sticky-direction=\"top\" data-anim-sticky-offset=\"20\" data-anim-name=\"NDUOK\" data-anim=\"true\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><div class=\"stk-grid stk-theme_46128__mb_0\" data-stk-css=\"stklevfM\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_last\" data-stk-css=\"stk_ZPps\" data-ce-tag=\"grid-col\"><p class=\"stk-reset stk-theme_46128__style_small_text stk-theme_46128__color_46128_custom_color_2\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">FURTHER INSIGHTS</strong></p></div></div><div class=\"stk-grid stk-theme_46128__mb_05\" data-ce-tag=\"grid\" data-stk-css=\"stkZqJOe\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_last valign-bottom\" data-stk-css=\"stkpuimQ\" data-ce-tag=\"grid-col\"><figure class=\"stk-reset stk-image-figure stk-theme_46128__mb_05\" data-stk-css=\"stkk5ear\" data-ce-tag=\"image-figure\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><a href=\"https://www.tiny.cloud/buy-vs-build-whitepaper-opt-in \" class=\"stk-reset stk-link\" target=\"_blank\"><img src=\"https://ucarecdn.com/daf7eded-dbdd-4092-8bc1-6726e07c00c5/\" data-image-id=\"134877\" data-image-name=\"frame-30-copy-2021110813411567.svg\" class=\"stk-image stk-reset\" loading=\"lazy\" width=\"1138\" height=\"1000\"/></a></div></figure></div></div><p class=\"stk-reset stk-theme_46128__style_font_style-1663332392241 stk-theme_46128__color_46128_custom_color_3\" data-stk-css=\"stkKSbMF\" data-ce-tag=\"paragraph\"><a class=\"stk-reset\" href=\"https://www.tiny.cloud/buy-vs-build-whitepaper/\" target=\"_blank\">Download and read Build vs Buy White Paper →</a></p></div></div></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Digging deeper, the reasoning for open source use is&nbsp;not dissimilar to&nbsp;other third-party SaaS or&nbsp;software purchases. Open source lets you leverage the velocity of&nbsp;your dev team talent&nbsp;— by&nbsp;letting them work on&nbsp;company differentiation instead of&nbsp;<a href=\"https://www.tiny.cloud/buy-vs-build-whitepaper/\" target=\"_blank\" class=\"stk-reset\">projects outside your core strategic focus</a>.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Why reinvent the wheel, when others have already perfected&nbsp;it?</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">With a&nbsp;‘digital factory’ approach, you assemble an&nbsp;agile software stack that comprises both open and closed components, which are curated, vetted, and professionally managed. It&nbsp;saves time, money and boosts your speed-to-market.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">The quality of&nbsp;open source code has certainly improved. In&nbsp;part, that’s due to&nbsp;the <a href=\"https://www.freecodecamp.org/news/the-top-contributors-to-github-2017-be98ab854e87\" target=\"_blank\" class=\"stk-reset\">large software companies now contributing to&nbsp;Github</a>, many of&nbsp;whom use an&nbsp;<a href=\"https://en.wikipedia.org/wiki/Open-core_model\" target=\"_blank\" class=\"stk-reset\">open core business model</a>, apply OSS development methodologies, and use established Quality Control (QC) processes.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">In&nbsp;2018, a&nbsp;Tidelift Open Source Survey highlighted that companies of&nbsp;all sizes <a href=\"https://blog.tidelift.com/open-source-is-everywhere-survey-results-part-1\" target=\"_blank\" class=\"stk-reset\">use open source components in&nbsp;92% of&nbsp;their project applications</a>. Virtually all the organizations surveyed said they use OSS to&nbsp;take advantage of&nbsp;increased productivity, reduced cost and time to&nbsp;deployment.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">It’s obvious that open source continues to&nbsp;drive innovation. At&nbsp;speed.</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-grid__layout_reverse\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col align-right valign-bottom align-left-m stk-grid-col_last\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><figure class=\"stk-theme_46128__mb_0 stk-reset stk-image-figure stk-mobile-hidden\" data-ce-tag=\"image-figure\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/f0f137ee-dc76-4c82-a8fb-a09f945a79e4/\" data-image-id=\"198625\" data-image-name=\"arrow.svg\" loading=\"lazy\" class=\"stk-image stk-reset\" width=\"14\" height=\"17\"/></div></figure><p class=\"stk-theme_46128__style_small_text stk-theme_46128__color_46128_custom_color_2 stk-reset\" data-ce-tag=\"paragraph\"><a href=\"https://tidelift.com/subscription/the-tidelift-guide-to-managing-open-source\" target=\"_blank\" class=\"stk-reset\">Source</a></p></div><div data-col-width=\"11\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><figure class=\"stk-reset stk-image-figure\" data-ce-tag=\"image-figure\" data-anim-m=\"false\" data-stk-css=\"stk13Zk0\" data-anim=\"true\" data-anim-name=\"preset-fadeIn\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/64a010c2-743b-4e6b-b566-588a54079e53/\" data-image-id=\"201252\" data-image-name=\"Group 29 1.png\" class=\"stk-image stk-reset\" loading=\"lazy\" width=\"2440\" height=\"1214\"/></div></figure></div></div><div class=\"stk-theme_46128__mb_2 stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">But there’s a downside. The push for faster product launches and redirecting your developers’ time also forces an open-eyed view of the current situation.</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-layout__overhangs_both stk-grid stk-theme_46128__mb_2 stk-grid__layout_reverse\" data-stk-css=\"stkSTowR\" data-ce-tag=\"grid\"><div data-col-width=\"12\" class=\"stk-grid-col stk-theme_46128__pad_ver_2 stk-grid-col_last stk-theme_46128__pad_ver_1-m\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"1\" class=\"stk-grid-col\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><figure class=\"stk-reset stk-image-figure\" data-ce-tag=\"image-figure\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/d6850d19-acd0-4f0f-8fa4-22685ee864da/\" data-image-id=\"196514\" data-image-name=\"“.svg\" loading=\"lazy\" class=\"stk-image stk-reset\" width=\"58\" height=\"34\"/></div></figure></div><div data-col-width=\"7\" class=\"stk-grid-col stk-grid-col_last valign-middle\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\"/></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-grid__layout_reverse\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset stk-theme_46128__style_small_text stk-theme_46128__color_46128_custom_color_3\" data-ce-tag=\"paragraph\">—<br><a class=\"stk-reset\" href=\"https://cdn2.hubspot.net/hubfs/4008838/Resources/The-Tidelift-guide-to-securing-your-open-source-dependencies.pdf\" target=\"_blank\">The Tidelift guide to securing your open source dependencies</a></p></div><div data-col-width=\"8\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><p class=\"stk-reset stk-theme_46128__mb_05 stk-theme_46128__style_font_style-1663334000661\" data-ce-tag=\"paragraph\">Let’s consider just a&nbsp;few of&nbsp;the ways your team wastes time managing your open source dependencies rather than developing your product:</p><p class=\"stk-theme_46128__mb_05 stk-reset stk-theme_46128__style_font_style-1663334000661\" data-ce-tag=\"paragraph\">➜ Staying up&nbsp;to&nbsp;date with the latest bugfix versions.</p><p class=\"stk-theme_46128__mb_05 stk-reset stk-theme_46128__style_font_style-1663334000661\" data-ce-tag=\"paragraph\">➜ Moving to&nbsp;a&nbsp;new major version of&nbsp;a&nbsp;framework or&nbsp;library.</p><p class=\"stk-theme_46128__mb_05 stk-reset stk-theme_46128__style_font_style-1663334000661\" data-ce-tag=\"paragraph\">➜ Dealing with bugs or&nbsp;security issues related to&nbsp;an&nbsp;unmaintained dependency.</p><p class=\"stk-theme_46128__mb_05 stk-reset stk-theme_46128__style_font_style-1663334000661\" data-ce-tag=\"paragraph\">➜ Handling requests from your legal department to&nbsp;list every package you’re using, along with their licenses.</p><p class=\"stk-theme_46128__mb_05 stk-reset stk-theme_46128__style_font_style-1663334000661\" data-ce-tag=\"paragraph\">➜ Documenting everything you use for your security team and addressing live vulnerabilities.</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col valign-middle\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-ce-tag=\"grid\" data-anim-m=\"false\" data-stk-css=\"stkoEvzh\" data-anim-zoom=\"100\" data-anim-shift=\"60\" data-anim-rotation=\"0\" data-anim-opacity=\"100\" data-anim-direction=\"top\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" data-anim-trigger=\"whenScrolling\" data-anim-sticky-direction=\"top\" data-anim-sticky-offset=\"20\" data-anim-name=\"gfDxb\" data-anim=\"true\"><div data-col-width=\"3\" class=\"stk-theme_46128__pad_round_1 stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-element_no-text stk-reset stk-theme_46128__mb_0\" data-ce-tag=\"paragraph\"><img alt=\"\" class=\"stk-reset stk-theme_46128__symbol_custom_image_3736723 stk-icon\" src=\"https://ucarecdn.com/31bae7df-74ed-489f-b9ec-b4ae2f4f9271/\"></p><hr class=\"stk-theme_46128__separator_basic_divider stk-theme_46128__mb_05 stk-reset\"/><p class=\"stk-theme_46128__style_font_style-1663332392241 stk-theme_46128__color_46128_custom_color_2 stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">What’s Managed Open Source Software?</strong></p><p class=\"stk-theme_46128__style_small_text stk-reset stk-theme_46128__mb_0\" data-ce-tag=\"paragraph\">Managed open source software and components, maximize the speed-to-market, while minimizing potential risks to&nbsp;users.</p><p class=\"stk-theme_46128__style_small_text stk-theme_46128__mb_0 stk-reset\" data-ce-tag=\"paragraph\">All license details, security risks and maintenance issues are clearly communicated (if&nbsp;they occur) and upgrades are regularly released.</p></div></div></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Being honest, that situation isn’t ideal. But commercial development teams rely on open source to innovate fast.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Then there’s the tech debt burden that open source can generate. In&nbsp;most closed software, updates are automatically <em class=\"stk-reset\" data-gtm-vis-has-fired-10171822_255=\"1\">pushed</em> to&nbsp;users. Conversely, open source uses a&nbsp;<em class=\"stk-reset\" data-gtm-vis-has-fired-10171822_255=\"1\">pull </em>model where users are responsible for updating. If&nbsp;you fail to&nbsp;deploy the necessary major, minor or&nbsp;patch updates, you expose yourself to&nbsp;more hidden tech debt.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">What’s the answer? Using professionally managed open source components.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">According to&nbsp;<a href=\"https://cdn2.hubspot.net/hubfs/4008838/Resources/The-Tidelift-guide-to-securing-your-open-source-dependencies.pdf\" target=\"_blank\" class=\"stk-reset\">Tidelift, managed open source</a> “… allows application development teams to&nbsp;speed up&nbsp;development and reduce risk by&nbsp;outsourcing the management of&nbsp;open source components to&nbsp;the experts who create and maintain them.”</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">With a&nbsp;clear process for vetting (Software Bill of&nbsp;Materials, SBoM), monitoring (automated visibility and control of&nbsp;the OSS) and reusing (cataloging) open source components, enterprises can reuse OSS and third-party specialist components to&nbsp;rapidly jump-start their innovation programs.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Managed open source components minimize your tech debt burden.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">And are a&nbsp;cheat sheet to&nbsp;your success.</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-theme_46128__mb_2\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last stk-theme_46128__pad_round_1-m\" data-ce-tag=\"grid-col\"><p class=\"stk-element_no-text stk-reset stk-theme_46128__mb_0\" data-ce-tag=\"paragraph\"><img alt=\"\" class=\"stk-reset stk-theme_46128__symbol_custom_image_3736723 stk-icon\" src=\"https://ucarecdn.com/31bae7df-74ed-489f-b9ec-b4ae2f4f9271/\"></p><hr class=\"stk-theme_46128__separator_basic_divider stk-theme_46128__mb_05 stk-reset\"/><p class=\"stk-theme_46128__style_font_style-1663332392241 stk-theme_46128__color_46128_custom_color_2 stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">What’s a Software Bill of Materials (SBoM)?</strong></p><p class=\"stk-theme_46128__style_small_text stk-reset stk-theme_46128__mb_05\" data-ce-tag=\"paragraph\">According to Gartner, \"SBoMs are an essential tool in your security and compliance toolbox. They help continuously verify software integrity and alert stakeholders to security vulnerabilities and policy violations.” They are an increasingly common and critical component of software development lifecycle (<a class=\"stk-reset\" href=\"https://www.techtarget.com/searchsoftwarequality/definition/software-development-life-cycle-SDLC\" target=\"_blank\">SDLC</a>) and <a class=\"stk-reset\" href=\"https://www.techtarget.com/searchitoperations/definition/DevSecOps\" target=\"_blank\">DevSecOps</a> processes.</p><p class=\"stk-theme_46128__style_small_text stk-reset\" data-ce-tag=\"paragraph\">In 2021 several high-profile security breaches prompted the US President to issue an Executive Order on Cybersecurity, (May 2021). It included a requirement that software vendors provide a <a href=\"https://www.cisa.gov/sbom\" target=\"_blank\" class=\"stk-reset\">SBoM (Software Bill of Materials)</a> for those selling to the US Federal Government. The order includes a provision that will require IT vendors to provide an SBOM with software and hardware.</p></div></div></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-theme_46128__mb_3 stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"12\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"12\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\" data-anim-m=\"false\" data-stk-css=\"stk48glI\" data-anim=\"true\" data-anim-name=\"preset-slideInRight\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\"/><div class=\"stk-grid\" data-anim-m=\"false\" data-stk-css=\"stkbPXxF\" data-anim=\"true\" data-anim-name=\"preset-fadeIn\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__style_accented_text align-center stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Download a PDF of this white paper<br>and save it for later</strong></p><a class=\"stk-theme_46128__stk-btn_basic stk-theme_46128__style_font_style-1663332392241 align-center stk-reset\" data-stk-button=\"1\" data-ce-tag=\"button\" href=\"https://www.tiny.cloud/technical-debt-whitepaper-opt-in\" target=\"_blank\">Download</a></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\" data-anim-m=\"false\" data-stk-css=\"stktJoh8\" data-anim=\"true\" data-anim-name=\"preset-slideInLeft\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\"/></div></div></div></div></div></div><div class=\"stk-theme_46128__mb_2 stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"12\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><div class=\"stk-theme_46128__mb_05 stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"1\" class=\"stk-grid-col align-right align-left-m\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\" data-anim-m=\"false\" data-stk-css=\"stkjlDZf\" data-anim=\"true\" data-anim-name=\"preset-slideInLeft\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" id=\"stk-2-3\">2.3</p></div><div data-col-width=\"3\" class=\"stk-grid-col valign-middle stk-grid-col_last\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\" data-anim-m=\"false\" data-stk-css=\"stklZ0Pi\" data-anim=\"true\" data-anim-name=\"preset-slideInRight\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\"/></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"5\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><h3 class=\"stk-theme_46128__style_medium_header stk-reset\" data-ce-tag=\"paragraph\">Complexity Breeds Constant Reinvention</h3></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-grid__layout_reverse\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col valign-middle stk-grid-col_last\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-ce-tag=\"grid\" data-anim-m=\"false\" data-stk-css=\"stkHnmnC\" data-anim-zoom=\"100\" data-anim-shift=\"60\" data-anim-rotation=\"0\" data-anim-opacity=\"100\" data-anim-direction=\"top\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" data-anim-trigger=\"whenScrolling\" data-anim-sticky-direction=\"top\" data-anim-sticky-offset=\"20\" data-anim-name=\"Sxcwb\" data-anim=\"true\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_46128__separator_basic_divider stk-theme_46128__mb_05 stk-reset\"/><p class=\"stk-reset stk-theme_46128__style_font_style-1663330643602 stk-theme_46128__color_46128_custom_color_1\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">‘Enter’ key performs over 100&nbsp;different base actions</strong></p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div></div><div data-col-width=\"8\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">How does complexity play with technical debt?</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Rich text editor (RTE) components look simple to&nbsp;build.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">In&nbsp;reality, they’re one of&nbsp;the most complex interface components of&nbsp;a&nbsp;tech stack: visually and technically. Not unexpectedly, their simple exterior belies the intricate complexities inside.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">First, let’s cover the basics. A&nbsp;<a href=\"https://www.tiny.cloud/\" target=\"_blank\" class=\"stk-reset\" data-gtm-vis-has-fired-10171822_255=\"1\">rich text editor</a> is&nbsp;an&nbsp;interface for editing ‘rich text’. It’s a&nbsp;crucial component within every organization’s tech stack that enables rich text editing capabilities within any application&nbsp;— no&nbsp;matter the type, use case, or&nbsp;device. Now the nitty gritty.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">The basic ‘Bold’ text button can have 40+ different calls and interactions.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">The ubiquitous ‘Enter’ key performs over 100&nbsp;different base actions&nbsp;— depending on&nbsp;where you are in&nbsp;the editor interface and what you’re doing. That excludes browser compatibility issues or&nbsp;dependencies built into the product, so&nbsp;the final tally is&nbsp;likely double the number of&nbsp;base actions it&nbsp;performs.</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">It’s probably obvious by&nbsp;now that rich text editor development requires deep domain knowledge.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">However, it’s not only the main editor’s initial coding and subsequent refactoring that needs to&nbsp;be&nbsp;done. Each individual plugin (feature), every linked service, library, or&nbsp;tool, as&nbsp;well as&nbsp;browser changes and APIs, need to&nbsp;be&nbsp;monitored, reworked, and maintained.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">It’s a&nbsp;flywheel in&nbsp;constant motion.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Which makes tracking technical debt in&nbsp;a&nbsp;rich text editor&nbsp;— and even more importantly, identifying areas that likely have tech debt&nbsp;— very difficult. Quantifying the volume and value of&nbsp;that technical debt burden is&nbsp;equally hard.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Although, there are indications… but they’re not comforting either.</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"11\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><figure class=\"stk-reset stk-image-figure\" data-ce-tag=\"image-figure\" data-anim-m=\"false\" data-stk-css=\"stkiP0tk\" data-anim=\"true\" data-anim-name=\"preset-fadeIn\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/f73e8393-d339-4068-ae7d-0189a470208d/\" data-image-id=\"201253\" data-image-name=\"Group 30 1.png\" class=\"stk-image stk-reset\" loading=\"lazy\" width=\"2132\" height=\"1134\"/></div><div class=\"stk-hotspots\" style=\"--stk-image-width:2132px\"><div data-stk-show=\"mouseover\" class=\"stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare\" data-stk-top=\"24.34906591083847\" data-stk-left=\"48.372598038210086\" data-ce-tag=\"hotspot\" data-stk-id=\"2385\" data-stk-footnote-link=\"2385\" style=\"top:24.34906591083847%;left:48.372598038210086%\"><div style=\"display:none\" data-stk-footnote-body=\"2385\" data-hotspot-footnote-id=\"2385\" data-stk-show=\"mouseover\" class=\"stk-footnote stk-footnote--hide\"><div class=\"stk-footnote__close\"></div><div class=\"stk-footnote__body\"><p class=\"stk-theme_46128__style_small_text stk-reset\" data-ce-tag=\"paragraph\">Growth - <br>Invest heavily here if company goals include market expansion, business growth in new markets, and/or heavy customer acquisition and expansion.</p></div></div></div><div data-stk-top=\"48.66821453119527\" data-stk-left=\"48.372598038210086\" class=\"stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare\" data-stk-show=\"mouseover\" data-ce-tag=\"hotspot\" data-stk-id=\"2387\" data-stk-footnote-link=\"2387\" style=\"top:48.66821453119527%;left:48.372598038210086%\"><div style=\"display:none\" data-stk-footnote-body=\"2387\" data-hotspot-footnote-id=\"2387\" data-stk-show=\"mouseover\" class=\"stk-footnote stk-footnote--hide\"><div class=\"stk-footnote__close\"></div><div class=\"stk-footnote__body\"><p class=\"stk-theme_46128__style_small_text stk-reset\" data-ce-tag=\"paragraph\">Keeping The Lights On - <br>Invest heavily here if the product is more mature, and the priority is stability, customer retention, and minimization of operating costs.</p></div></div></div><div data-stk-top=\"67.43417173430524\" data-stk-left=\"48.27074758506135\" class=\"stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare\" data-stk-show=\"mouseover\" data-ce-tag=\"hotspot\" data-stk-id=\"2389\" data-stk-footnote-link=\"2389\" style=\"top:67.43417173430524%;left:48.27074758506135%\"><div style=\"display:none\" data-stk-footnote-body=\"2389\" data-hotspot-footnote-id=\"2389\" data-stk-show=\"mouseover\" class=\"stk-footnote stk-footnote--hide\"><div class=\"stk-footnote__close\"></div><div class=\"stk-footnote__body\"><p class=\"stk-theme_46128__style_small_text stk-reset\" data-ce-tag=\"paragraph\">Support - <br>Heavy investment here can indicate a recent MVP launch or a larger structural issue.</p></div></div></div><div data-stk-top=\"83.32778854918409\" data-stk-left=\"48.474448491358814\" class=\"stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare stk-hotspot stk-hotspot--shape_rsquare\" data-stk-show=\"mouseover\" data-ce-tag=\"hotspot\" data-stk-id=\"2391\" data-stk-footnote-link=\"2391\" style=\"top:83.32778854918409%;left:48.474448491358814%\"><div style=\"display:none\" data-stk-footnote-body=\"2391\" data-hotspot-footnote-id=\"2391\" data-stk-show=\"mouseover\" class=\"stk-footnote stk-footnote--hide\"><div class=\"stk-footnote__close\"></div><div class=\"stk-footnote__body\"><p class=\"stk-theme_46128__style_small_text stk-reset\" data-ce-tag=\"paragraph\">Other - <br>Heavy investment here indicates hygiene problems.</p></div></div></div></div></figure></div></div><div class=\"stk-theme_46128__mb_2 stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">While the yearly average spend on&nbsp;‘growth’ (new) activity in&nbsp;the software industry is&nbsp;40%, for a&nbsp;rich text editor, it’s&nbsp;31%. In&nbsp;the area of&nbsp;technical debt, the industry average spends 18% while a&nbsp;rich text editor carries around 29% ongoing in&nbsp;technical debt. That’s a&nbsp;lot of&nbsp;tech debt to&nbsp;take on, if&nbsp;you’re<em class=\"stk-reset\"> not a&nbsp;domain specialist</em> who knows the right decisions when it&nbsp;comes to&nbsp;<a href=\"https://www.stepsize.com/blog/complete-guide-to-technical-debt\" target=\"_blank\" class=\"stk-reset\">intentional and unintentional tech debt.</a></p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-layout__overhangs_both stk-grid stk-theme_46128__mb_2 stk-grid__layout_reverse\" data-stk-css=\"stkwmMZX\" data-ce-tag=\"grid\"><div data-col-width=\"12\" class=\"stk-grid-col stk-theme_46128__pad_ver_2 stk-grid-col_last stk-theme_46128__pad_ver_1-m\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"1\" class=\"stk-grid-col\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><figure class=\"stk-reset stk-image-figure\" data-ce-tag=\"image-figure\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/d6850d19-acd0-4f0f-8fa4-22685ee864da/\" data-image-id=\"196514\" data-image-name=\"“.svg\" loading=\"lazy\" class=\"stk-image stk-reset\" width=\"58\" height=\"34\"/></div></figure></div><div data-col-width=\"7\" class=\"stk-grid-col stk-grid-col_last valign-middle\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\"/></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-grid__layout_reverse\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset stk-theme_46128__style_font_style-1663332392241 stk-theme_46128__color_46128_custom_color_2 stk-theme_46128__mb_0\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">—<br>Stephanie Ockerman and Simon Reindl</strong></p><p class=\"stk-theme_46128__color_46128_custom_color_3 stk-theme_46128__style_small_text stk-reset\" data-ce-tag=\"paragraph\"><a href=\"https://www.scrum.org/resources/mastering-professional-scrum-book\" target=\"_blank\" class=\"stk-reset\">Mastering Professional Scrum</a></p></div><div data-col-width=\"8\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><p class=\"stk-reset stk-theme_46128__mb_05 stk-theme_46128__style_font_style-1663334000661\" data-ce-tag=\"paragraph\">Technical Debt is&nbsp;not necessarily a&nbsp;bad thing&nbsp;— as&nbsp;long as&nbsp;there is&nbsp;a&nbsp;real plan to&nbsp;pay it&nbsp;off.</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col valign-middle\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-ce-tag=\"grid\" data-anim-m=\"false\" data-stk-css=\"stkPzZ4x\" data-anim-zoom=\"100\" data-anim-shift=\"40\" data-anim-rotation=\"0\" data-anim-opacity=\"100\" data-anim-direction=\"right\" data-anim-duration=\"0.8\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" data-anim-trigger=\"scroll\" data-anim-sticky-direction=\"top\" data-anim-sticky-offset=\"20\" data-anim-name=\"ppjML\" data-anim=\"true\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><div class=\"stk-grid stk-theme_46128__mb_0\" data-stk-css=\"stkLuYFg\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_last\" data-stk-css=\"stkyCw3Q\" data-ce-tag=\"grid-col\"><p class=\"stk-reset stk-theme_46128__style_small_text stk-theme_46128__color_46128_custom_color_2\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">FURTHER INSIGHTS</strong></p></div></div><div class=\"stk-grid stk-theme_46128__mb_05\" data-ce-tag=\"grid\" data-stk-css=\"stk5I6rM\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_last valign-bottom\" data-stk-css=\"stkWTwj5\" data-ce-tag=\"grid-col\"><figure class=\"stk-reset stk-image-figure stk-theme_46128__mb_05\" data-stk-css=\"stkHJuxK\" data-ce-tag=\"image-figure\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><a href=\"https://www.tiny.cloud/buy-vs-build-whitepaper-opt-in \" class=\"stk-reset stk-link\" target=\"_blank\"><img src=\"https://ucarecdn.com/daf7eded-dbdd-4092-8bc1-6726e07c00c5/\" data-image-id=\"134877\" data-image-name=\"frame-30-copy-2021110813411567.svg\" class=\"stk-image stk-reset\" loading=\"lazy\" width=\"1138\" height=\"1000\"/></a></div></figure></div></div><p class=\"stk-reset stk-theme_46128__style_font_style-1663332392241 stk-theme_46128__color_46128_custom_color_3\" data-stk-css=\"stklBd2H\" data-ce-tag=\"paragraph\"><a class=\"stk-reset\" href=\"https://www.tiny.cloud/buy-vs-build-whitepaper/\" target=\"_blank\">Download and read Build vs Buy White Paper →</a></p></div></div></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Carried carefully though, a&nbsp;certain level of&nbsp;tech debt isn’t a&nbsp;bad thing.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">It&nbsp;speeds software development and gets you to&nbsp;a&nbsp;short-term goal&nbsp;— when that deadline is&nbsp;the most important thing. But for RTEs, coding new functionality to&nbsp;match upgrades and features in&nbsp;other applications (and to&nbsp;stop breakages), is&nbsp;an&nbsp;endless cycle.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">You need the experience to&nbsp;know when to&nbsp;make the right trade-offs and decisions, to&nbsp;capitalize on&nbsp;an&nbsp;opportunity cost. Because the mismanagement of&nbsp;an&nbsp;RTE’s technical debt can be&nbsp;dire.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Most rich text editor specialists have large teams of&nbsp;developers who work on&nbsp;them year-round. And that’s all they&nbsp;do. They know <em class=\"stk-reset\">when and why</em> it’s the right decision to&nbsp;take on&nbsp;tech debt and at&nbsp;what point to&nbsp;start paying it&nbsp;down&nbsp;— so&nbsp;that product development and feature improvements don’t slow.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Take a&nbsp;look inside the <em class=\"stk-reset\">most basic components</em> you need to&nbsp;build, test, maintain for a&nbsp;rich text editor, and the ensuing technical debt you need to&nbsp;manage.</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-layout__overhangs_both stk-theme_46128__mb_0\" data-ce-tag=\"grid\" data-stk-css=\"stkaRhB5\"><div data-col-width=\"12\" class=\"stk-grid-col stk-grid-col_last stk-theme_46128__pad_ver_2\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><h4 class=\"align-center stk-reset stk-theme_46128__style_small_header\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Common rich text editor requirements</strong></h4></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"10\" class=\"stk-grid-col stk-grid-col_last stk-theme_46128__pad_round_1\" data-ce-tag=\"grid-col\" data-stk-css=\"stkFQS5T\"><p class=\"stk-theme_46128__mb_0 stk-reset stk-theme_46128__color_46128_custom_color_2\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Core Functionality</strong></p><p class=\"stk-reset stk-theme_46128__color_46128_custom_color_2\" data-ce-tag=\"paragraph\">These are the no-frills core parts of a basic (minimum expectation) rich text editor </p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid__layout_matrix stk-grid stk-theme_46128__mb_05\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"5\" class=\"stk-grid-col\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\" data-stk-css=\"stk_V7zH\"><p class=\"stk-theme_46128__style_font_style-1663332392241 stk-reset stk-theme_46128__mb_0\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\" data-gtm-vis-has-fired-10171822_255=\"1\">COMPONENT</strong></p><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\"/></div><div data-col-width=\"5\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__style_font_style-1663332392241 stk-reset stk-theme_46128__mb_0\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\" data-gtm-vis-has-fired-10171822_255=\"1\">DESCRIPTION</strong></p><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\" data-stk-css=\"stkWGowF\"/></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-grid__layout_matrix stk-theme_46128__mb_05\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"5\" class=\"stk-grid-col\" data-stk-css=\"stkpyzpI\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\">Contenteditable</p></div><div data-col-width=\"5\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Selection</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-grid__layout_matrix stk-theme_46128__mb_05\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"5\" class=\"stk-grid-col\" data-stk-css=\"stk1M8f7\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\">Basic Formatting</p></div><div data-col-width=\"5\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Loading Content</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-grid__layout_matrix stk-theme_46128__mb_05\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"5\" class=\"stk-grid-col\" data-stk-css=\"stkOlmYV\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\">HTML Compliance</p></div><div data-col-width=\"5\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Input Filtering</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-grid__layout_matrix stk-theme_46128__mb_05\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"5\" class=\"stk-grid-col\" data-stk-css=\"stkTJcWj\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\">Undo</p></div><div data-col-width=\"5\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Output Filtering</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-grid__layout_matrix\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"5\" class=\"stk-grid-col\" data-stk-css=\"stkwwhEY\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\">Focus</p></div><div data-col-width=\"5\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Browser Differences</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-theme_46128__mb_15\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"10\" class=\"stk-grid-col stk-grid-col_last\" data-stk-css=\"stkR8m8B\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__mb_05 stk-reset stk-theme_46128__style_font_style-1663332392241\" data-ce-tag=\"paragraph\">The above requirements cover content and formatting. Next, developers need to look deeper into what content is made of and how to render that within a rich text editing environment.</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"10\" class=\"stk-grid-col stk-grid-col_last stk-theme_46128__pad_round_1\" data-ce-tag=\"grid-col\" data-stk-css=\"stkbLkGM\"><p class=\"stk-theme_46128__mb_0 stk-reset stk-theme_46128__color_46128_custom_color_2\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Additional Functionality</strong></p><p class=\"stk-reset stk-theme_46128__color_46128_custom_color_2\" data-ce-tag=\"paragraph\">These are not often in a core RTE experience, but are frequently requested by end users </p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid__layout_matrix stk-grid stk-theme_46128__mb_05\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"5\" class=\"stk-grid-col\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\" data-stk-css=\"stkdxmgM\"><p class=\"stk-theme_46128__style_font_style-1663332392241 stk-reset stk-theme_46128__mb_0\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\" data-gtm-vis-has-fired-10171822_255=\"1\">COMPONENT</strong></p><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\"/></div><div data-col-width=\"5\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__style_font_style-1663332392241 stk-reset stk-theme_46128__mb_0\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\" data-gtm-vis-has-fired-10171822_255=\"1\">DESCRIPTION</strong></p><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\" data-stk-css=\"stkUX4im\"/></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-grid__layout_matrix stk-theme_46128__mb_05\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"5\" class=\"stk-grid-col\" data-stk-css=\"stkHXHTU\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\">Links</p></div><div data-col-width=\"5\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Images</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-grid__layout_matrix stk-theme_46128__mb_05\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"5\" class=\"stk-grid-col\" data-stk-css=\"stkjjgyH\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\">Embeds</p></div><div data-col-width=\"5\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Uploading</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-grid__layout_matrix stk-theme_46128__mb_05\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"5\" class=\"stk-grid-col\" data-stk-css=\"stkwzBEo\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\">Lists</p></div><div data-col-width=\"5\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Advanced Formatting</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-grid__layout_matrix stk-theme_46128__mb_15\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"5\" class=\"stk-grid-col\" data-stk-css=\"stkBMiPB\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\">Tables</p></div><div data-col-width=\"5\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Emoji</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"10\" class=\"stk-grid-col stk-grid-col_last stk-theme_46128__pad_round_1\" data-ce-tag=\"grid-col\" data-stk-css=\"stkEbehR\"><p class=\"stk-theme_46128__mb_0 stk-reset stk-theme_46128__color_46128_custom_color_2\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">UI Interactions</strong></p><p class=\"stk-reset stk-theme_46128__color_46128_custom_color_2\" data-ce-tag=\"paragraph\">These UI components affect how users interact and work with the editor </p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid__layout_matrix stk-grid stk-theme_46128__mb_05\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"5\" class=\"stk-grid-col\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\" data-stk-css=\"stkZhXZ9\"><p class=\"stk-theme_46128__style_font_style-1663332392241 stk-reset stk-theme_46128__mb_0\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\" data-gtm-vis-has-fired-10171822_255=\"1\">COMPONENT</strong></p><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\"/></div><div data-col-width=\"5\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__style_font_style-1663332392241 stk-reset stk-theme_46128__mb_0\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\" data-gtm-vis-has-fired-10171822_255=\"1\">DESCRIPTION</strong></p><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\" data-stk-css=\"stkwp6nT\"/></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-grid__layout_matrix stk-theme_46128__mb_05\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"5\" class=\"stk-grid-col\" data-stk-css=\"stkJB5BN\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\">UI General</p></div><div data-col-width=\"5\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">UI Dialogs</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-grid__layout_matrix stk-theme_46128__mb_05\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"5\" class=\"stk-grid-col\" data-stk-css=\"stkgTDHX\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\">UI Toolbar</p></div><div data-col-width=\"5\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Accessibility</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-grid__layout_matrix stk-theme_46128__mb_05\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"5\" class=\"stk-grid-col\" data-stk-css=\"stkIewLq\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\">UI Buttons</p></div><div data-col-width=\"5\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Touch Devices (mobile/tablets)</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-grid__layout_matrix stk-theme_46128__mb_05\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"5\" class=\"stk-grid-col\" data-stk-css=\"stkwcADB\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\">UI Menu</p></div><div data-col-width=\"5\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Advanced Keyboard Interactions</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-grid__layout_matrix stk-theme_46128__mb_15\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"5\" class=\"stk-grid-col stk-grid-col_last\" data-stk-css=\"stk0sYv1\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\">UI Context Menu</p></div><div data-col-width=\"5\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"stk-reset ce-element--empty stk-element_no-text\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"10\" class=\"stk-grid-col stk-grid-col_last stk-theme_46128__pad_round_1\" data-ce-tag=\"grid-col\" data-stk-css=\"stk2oG1U\"><p class=\"stk-theme_46128__mb_0 stk-reset stk-theme_46128__color_46128_custom_color_2\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Look and Feel</strong></p><p class=\"stk-reset stk-theme_46128__color_46128_custom_color_2\" data-ce-tag=\"paragraph\">How the editor looks and how it’s configured to meet product requirements </p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid__layout_matrix stk-grid stk-theme_46128__mb_05\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"5\" class=\"stk-grid-col\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\" data-stk-css=\"stkX3-CN\"><p class=\"stk-theme_46128__style_font_style-1663332392241 stk-reset stk-theme_46128__mb_0\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\" data-gtm-vis-has-fired-10171822_255=\"1\">COMPONENT</strong></p><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\"/></div><div data-col-width=\"5\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__style_font_style-1663332392241 stk-reset stk-theme_46128__mb_0\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\" data-gtm-vis-has-fired-10171822_255=\"1\">DESCRIPTION</strong></p><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\" data-stk-css=\"stkV8WuT\"/></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-grid__layout_matrix stk-theme_46128__mb_05\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"5\" class=\"stk-grid-col\" data-stk-css=\"stkE2n71\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\">Content Editing</p></div><div data-col-width=\"5\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Skins and Customizations</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-grid__layout_matrix stk-theme_46128__mb_15\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"5\" class=\"stk-grid-col\" data-stk-css=\"stkZQiye\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\">Content Published</p></div><div data-col-width=\"5\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Configuration</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"10\" class=\"stk-grid-col stk-grid-col_last stk-theme_46128__pad_round_1\" data-ce-tag=\"grid-col\" data-stk-css=\"stkCQ_x6\"><p class=\"stk-theme_46128__mb_0 stk-reset stk-theme_46128__color_46128_custom_color_2\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Enterprise Grade Features</strong></p><p class=\"stk-reset stk-theme_46128__color_46128_custom_color_2\" data-ce-tag=\"paragraph\">These are the advanced features (over and above a core editing experience), that growing SaaS and enterprises demand for their users </p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid__layout_matrix stk-grid stk-theme_46128__mb_05\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"5\" class=\"stk-grid-col\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\" data-stk-css=\"stkgXYcT\"><p class=\"stk-theme_46128__style_font_style-1663332392241 stk-reset stk-theme_46128__mb_0\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\" data-gtm-vis-has-fired-10171822_255=\"1\">COMPONENT</strong></p><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\"/></div><div data-col-width=\"5\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__style_font_style-1663332392241 stk-reset stk-theme_46128__mb_0\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\" data-gtm-vis-has-fired-10171822_255=\"1\">DESCRIPTION</strong></p><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\" data-stk-css=\"stkAM1WH\"/></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-grid__layout_matrix stk-theme_46128__mb_05\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"5\" class=\"stk-grid-col\" data-stk-css=\"stksURfI\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\">Automated Testing</p></div><div data-col-width=\"5\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Spell Checking</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-grid__layout_matrix stk-theme_46128__mb_05\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"5\" class=\"stk-grid-col\" data-stk-css=\"stkNjveP\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\">Human Testing</p></div><div data-col-width=\"5\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Integration</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-grid__layout_matrix stk-theme_46128__mb_05\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"5\" class=\"stk-grid-col\" data-stk-css=\"stkEtOy9\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\">Localization</p></div><div data-col-width=\"5\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Performance</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-grid__layout_matrix stk-theme_46128__mb_05\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"5\" class=\"stk-grid-col stk-grid-col_last\" data-stk-css=\"stkx7L5i\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\">Security</p></div><div data-col-width=\"5\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"stk-reset ce-element--empty stk-element_no-text\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-theme_46128__mb_15\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"10\" class=\"stk-grid-col stk-grid-col_last\" data-stk-css=\"stkxGU5L\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__mb_05 stk-reset stk-theme_46128__style_font_style-1663332392241\" data-ce-tag=\"paragraph\">A trusted editing environment requires year-round ongoing maintenance – to keep up with browsers, technologies, changing technologies and how the content is displayed to its ultimate audience, your readers.</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div></div></div><div class=\"stk-layout__overhangs_both stk-grid stk-theme_46128__mb_2 stk-theme_46128__mb_default-m-disabled\" data-stk-css=\"stkGR7gZ\" data-ce-tag=\"grid\"><div data-col-width=\"12\" class=\"stk-grid-col stk-theme_46128__pad_ver_2 stk-grid-col_last stk-theme_46128__pad_ver_1-m\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"1\" class=\"stk-grid-col\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><figure class=\"stk-reset stk-image-figure\" data-ce-tag=\"image-figure\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/d6850d19-acd0-4f0f-8fa4-22685ee864da/\" data-image-id=\"196514\" data-image-name=\"“.svg\" loading=\"lazy\" class=\"stk-image stk-reset\" width=\"58\" height=\"34\"/></div></figure></div><div data-col-width=\"7\" class=\"stk-grid-col stk-grid-col_last valign-middle\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\"/></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-grid__layout_reverse\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset stk-theme_46128__style_font_style-1663332392241 stk-theme_46128__color_46128_custom_color_2 stk-theme_46128__mb_0\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">—<br>Steve McConnell</strong></p><p class=\"stk-theme_46128__style_small_text stk-theme_46128__color_46128_custom_color_3 stk-reset\" data-ce-tag=\"paragraph\"><a href=\"https://www.construx.com/resources/whitepaper-managing-technical-debt/\" target=\"_blank\" class=\"stk-reset\">Managing Technical Debt White Paper</a>, Construx Software</p></div><div data-col-width=\"8\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><p class=\"stk-reset stk-theme_46128__mb_05 stk-theme_46128__style_font_style-1663334000661\" data-ce-tag=\"paragraph\">Like financial debt, different companies have different philosophies about the usefulness of&nbsp;debt. Some companies want to&nbsp;avoid taking on&nbsp;any debt at&nbsp;all; others see debt as&nbsp;a&nbsp;useful tool and just want to&nbsp;know how to&nbsp;use debt wisely.</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div></div></div></div></div><div class=\"stk-theme_46128__mb_2 stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"12\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><div class=\"stk-theme_46128__mb_05 stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"1\" class=\"stk-grid-col align-right align-left-m\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\" data-anim-m=\"false\" data-stk-css=\"stkbmWnj\" data-anim=\"true\" data-anim-name=\"preset-slideInLeft\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" id=\"stk-2-4\">2.4</p></div><div data-col-width=\"3\" class=\"stk-grid-col valign-middle stk-grid-col_last\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\" data-anim-m=\"false\" data-stk-css=\"stk8zlrd\" data-anim=\"true\" data-anim-name=\"preset-slideInRight\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\"/></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"5\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><h3 class=\"stk-theme_46128__style_medium_header stk-reset\" data-ce-tag=\"paragraph\">Rich Text Editors Live a&nbsp;Fast Life</h3></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Code doesn’t ever really&nbsp;die. But it&nbsp;does decay.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">It&nbsp;also has a&nbsp;half-life.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">So&nbsp;let’s break this idea open. A&nbsp;useful rule of&nbsp;thumb for tech start-ups is&nbsp;to&nbsp;assume all the code you write has a&nbsp;half-life equal to&nbsp;the age of&nbsp;your startup. But that doesn’t apply to&nbsp;every piece of&nbsp;software. Or&nbsp;does&nbsp;it?</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Paraphrasing Dan North’s <a href=\"https://www.youtube.com/watch?v=4Y0tOi7QWqM&amp;feature=youtu.be&amp;t=678\" target=\"_blank\" class=\"stk-reset\">Software that Fits in&nbsp;Your Head</a> talk, <a href=\"https://sandimetz.com/blog/2017/6/1/the-half-life-of-code\" target=\"_blank\" class=\"stk-reset\">Sandi Metz defines the half-life of&nbsp;code</a> phenomenon as, “the amount of&nbsp;time required for half of&nbsp;an&nbsp;application’s code to&nbsp;change so&nbsp;much that it&nbsp;becomes unrecognizable.”</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Erik Bernhardsson’s <a href=\"https://erikbern.com/2016/12/05/the-half-life-of-code.html\" target=\"_blank\" class=\"stk-reset\">’The half-life of&nbsp;code and the ship of&nbsp;Theseus’ article</a> and ensuing <a href=\"https://github.com/erikbern/git-of-theseus\" target=\"_blank\" class=\"stk-reset\">Git of&nbsp;Theseus</a> project, explore the conundrum further and question “…does the new code just add up&nbsp;on&nbsp;top of&nbsp;the old code? Or&nbsp;does it&nbsp;replace the old code slowly, over time? […] There is&nbsp;a&nbsp;‘Ship of&nbsp;Theseus’ effect, but there’s also a&nbsp;compounding effect where codebases keep growing over time.”</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">These articles surface a&nbsp;key aspect of&nbsp;building, maintaining and scaling a&nbsp;rich text editor: its code has a&nbsp;crazy-short half-life. Let’s see what that looks like<sup class=\"stk-reset\"><span class=\"stk-reset\" data-stk-footnote-link=\"fnY3f_u\">1</span></sup>.</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-grid__layout_reverse\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col align-right stk-grid-col_last\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><figure class=\"stk-theme_46128__mb_05 stk-reset stk-image-figure stk-mobile-hidden\" data-ce-tag=\"image-figure\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/f0f137ee-dc76-4c82-a8fb-a09f945a79e4/\" data-image-id=\"198625\" data-image-name=\"arrow-2022091908490909.svg\" loading=\"lazy\" class=\"stk-image stk-reset\" width=\"14\" height=\"17\"/></div></figure><p class=\"stk-theme_46128__style_small_text align-right stk-theme_46128__color_46128_custom_color_2 stk-reset align-left-m\" data-ce-tag=\"paragraph\">The 5-year Half-life of Code in a Rich Text Editor: Lines of code, by yearly cohorts, across 5 years</p></div><div data-col-width=\"10\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><figure class=\"stk-reset stk-image-figure\" data-ce-tag=\"image-figure\" data-anim-m=\"false\" data-stk-css=\"stkfm7I2\" data-anim=\"true\" data-anim-name=\"preset-fadeIn\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/c3ef841b-855a-4bc7-8b75-b8a2a08f3875/\" data-image-id=\"200716\" data-image-name=\"Group 17.png\" class=\"stk-image stk-reset\" loading=\"lazy\" width=\"1638\" height=\"1183\"/></div></figure></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">This first graph (above) plots across 5&nbsp;years, the <strong class=\"stk-reset\">aggregate number of&nbsp;lines of&nbsp;code in&nbsp;a&nbsp;rich text editor</strong>, broken down into cohorts by&nbsp;the year added. It&nbsp;clearly displays the number of&nbsp;sweeping changes needed to&nbsp;maintain the editor’s competitive position in&nbsp;the marketplace.</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-grid__layout_reverse\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col align-right stk-grid-col_last\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><figure class=\"stk-theme_46128__mb_05 stk-reset stk-image-figure stk-mobile-hidden\" data-ce-tag=\"image-figure\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/f0f137ee-dc76-4c82-a8fb-a09f945a79e4/\" data-image-id=\"198625\" data-image-name=\"arrow-2022091908490909.svg\" loading=\"lazy\" class=\"stk-image stk-reset\" width=\"14\" height=\"17\"/></div></figure><p class=\"stk-theme_46128__style_small_text align-right stk-theme_46128__color_46128_custom_color_2 stk-reset align-left-m\" data-ce-tag=\"paragraph\">The 5-year Aggregate Decay in a Rich Text Editor: Individual commits in a repo, by yearly cohorts, across 5 years</p></div><div data-col-width=\"10\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><figure class=\"stk-reset stk-image-figure\" data-ce-tag=\"image-figure\" data-anim-m=\"false\" data-stk-css=\"stkcmyHG\" data-anim=\"true\" data-anim-name=\"preset-fadeIn\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/2eaa8284-aa4e-4855-856c-7314956bf9f9/\" data-image-id=\"200717\" data-image-name=\"Group 18.png\" loading=\"lazy\" class=\"stk-image stk-reset\" width=\"1315\" height=\"816\"/></div></figure></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Next is&nbsp;the <strong class=\"stk-reset\">aggregate decay for individual commits in&nbsp;the</strong> <strong class=\"stk-reset\">RTE’s core editor repo</strong> (see above). After 5&nbsp;years, only 30% of&nbsp;the original code remains. The rest has been refactored, upgraded, repaired or&nbsp;replaced.</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col valign-middle\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-ce-tag=\"grid\" data-anim-m=\"false\" data-anim=\"true\" data-anim-name=\"preset-slideInLeft\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__mb_05 stk-reset stk-theme_46128__style_small_text\" data-ce-tag=\"paragraph\">Only</p><p class=\"stk-theme_46128__mb_05 stk-theme_46128__style_font_style-1663330932645 stk-theme_46128__color_46128_custom_color_1 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\" data-gtm-vis-has-fired-10171822_255=\"1\">30%</strong></p><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__style_small_text stk-reset\" data-ce-tag=\"paragraph\">of the original code remains after 5 years</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div></div></div></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">The editor in&nbsp;question is&nbsp;more than two decades old and has undergone massive resets over that time (switching to&nbsp;TypeScript, rewriting the whole UI&nbsp;and a&nbsp;DOMParser change), yet in&nbsp;the last five years both small incremental changes and large sweeping resets were required to&nbsp;manage the RTE’s technical debt. That’s a&nbsp;considerable amount of&nbsp;payoff tasks (upgrading, refactoring, repairing) to&nbsp;be&nbsp;done, every year<em class=\"stk-reset\" data-gtm-vis-has-fired-10171822_255=\"1\">.</em></p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Much of&nbsp;the technical debt accrued by&nbsp;a&nbsp;rich text editor, is&nbsp;driven by&nbsp;the code complexity, its dependencies, libraries and browser updates.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Browsers unexpectedly update (see <a class=\"stk-reset\" href=\"#stk-2.5\">Section 2.5</a>) and open source projects constantly change. Even when no&nbsp;new features are added, a&nbsp;rich text editor must be&nbsp;updated to&nbsp;deal with changes and new feature releases from Chrome, Safari and Firefox.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Otherwise things break.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Of&nbsp;course, the upside of&nbsp;a&nbsp;short software half-life is&nbsp;it’s sometimes a&nbsp;great trade-off&nbsp;— because there’s often instances when code was designed to&nbsp;be&nbsp;rewritten.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Sandi Metz explains it&nbsp;well in&nbsp;his ‘<a href=\"https://sandimetz.com/blog/2017/6/1/the-half-life-of-code\" target=\"_blank\" class=\"stk-reset\">The Half-Life of&nbsp;Code</a>’ post: “The upsides of&nbsp;a&nbsp;short code half-life are significant. Imagine how much better your life would be&nbsp;if&nbsp;your application’s code always reflected the most accurate, up-to-date understanding of&nbsp;the problem at&nbsp;hand. Think about how much costs would go&nbsp;down if&nbsp;you never had to&nbsp;navigate dead code. Consider the value of&nbsp;having an&nbsp;application that is&nbsp;free of&nbsp;speculative additions that were thrown in&nbsp;to&nbsp;support features that will never arrive.”</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">For rich text editors, new features do&nbsp;arrive. Frequently. Let’s look at&nbsp;what the half-life of&nbsp;the code used in&nbsp;some advanced rich text editor plugins looks like when it’s mapped.</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-grid__layout_reverse\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col align-right stk-grid-col_last\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><figure class=\"stk-theme_46128__mb_05 stk-reset stk-image-figure stk-mobile-hidden\" data-ce-tag=\"image-figure\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/f0f137ee-dc76-4c82-a8fb-a09f945a79e4/\" data-image-id=\"198625\" data-image-name=\"arrow-2022091908490909.svg\" loading=\"lazy\" class=\"stk-image stk-reset\" width=\"14\" height=\"17\"/></div></figure><p class=\"stk-theme_46128__style_small_text align-right stk-theme_46128__color_46128_custom_color_2 stk-reset align-left-m\" data-ce-tag=\"paragraph\">The 5-year Aggregate Decay in an Advanced Accessibility Checker plugin: Individual commits in a repo, by yearly cohorts, across 5 years</p></div><div data-col-width=\"10\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><figure class=\"stk-reset stk-image-figure\" data-ce-tag=\"image-figure\" data-anim-m=\"false\" data-stk-css=\"stk3crA9\" data-anim=\"true\" data-anim-name=\"preset-fadeIn\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/77b7d96a-5483-4aa6-a98b-70108d6363b5/\" data-image-id=\"200718\" data-image-name=\"Group 19.png\" loading=\"lazy\" class=\"stk-image stk-reset\" width=\"1315\" height=\"816\"/></div></figure></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset stk-theme_46128__mb_15\" data-ce-tag=\"paragraph\">This graph (above) represents the aggregate decay and half-life of&nbsp;the<strong class=\"stk-reset\"> individual commits on&nbsp;the connected repos of&nbsp;an&nbsp;advanced accessibility checking plugin.</strong> Once again, after just five years, only 25% of&nbsp;the original code remains.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">The next graph (below) represents the <strong class=\"stk-reset\">decay of&nbsp;the connected repos of&nbsp;an</strong> <strong class=\"stk-reset\">advanced spell checking plugin,</strong> where just under 30% of&nbsp;the original code is&nbsp;left after five years.</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-theme_46128__mb_15 stk-grid stk-grid__layout_reverse\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col align-right stk-grid-col_last\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><figure class=\"stk-theme_46128__mb_05 stk-reset stk-image-figure stk-mobile-hidden\" data-ce-tag=\"image-figure\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/f0f137ee-dc76-4c82-a8fb-a09f945a79e4/\" data-image-id=\"198625\" data-image-name=\"arrow-2022091908490909.svg\" loading=\"lazy\" class=\"stk-image stk-reset\" width=\"14\" height=\"17\"/></div></figure><p class=\"stk-theme_46128__style_small_text align-right stk-theme_46128__color_46128_custom_color_2 stk-reset align-left-m\" data-ce-tag=\"paragraph\">The 5-year Aggregate Decay in an Advanced Spell Checker plugin: Individual commits in a repo, by yearly cohorts, across 5 years</p></div><div data-col-width=\"10\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><figure class=\"stk-reset stk-image-figure\" data-ce-tag=\"image-figure\" data-anim-m=\"false\" data-stk-css=\"stkB3WVo\" data-anim=\"true\" data-anim-name=\"preset-fadeIn\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/5c1fcee7-7ff7-4a7a-a212-bda637bf14d3/\" data-image-id=\"200719\" data-image-name=\"Group 20.png\" loading=\"lazy\" class=\"stk-image stk-reset\" width=\"1315\" height=\"816\"/></div></figure></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Below is&nbsp;the <strong class=\"stk-reset\">stacked plot of&nbsp;an&nbsp;advanced tables plugin,</strong> for a&nbsp;rich text editor, across just 3&nbsp;years, showing the aggregate number of&nbsp;lines of&nbsp;code broken down into cohorts by&nbsp;the year added. In&nbsp;the space of&nbsp;just 3&nbsp;years, vast sweeping changes were required to&nbsp;upgrade the plugin to&nbsp;satisfy user demands and market changes.</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-theme_46128__mb_15 stk-grid stk-grid__layout_reverse\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col align-right stk-grid-col_last\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><figure class=\"stk-theme_46128__mb_05 stk-reset stk-image-figure stk-mobile-hidden\" data-ce-tag=\"image-figure\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/f0f137ee-dc76-4c82-a8fb-a09f945a79e4/\" data-image-id=\"198625\" data-image-name=\"arrow-2022091908490909.svg\" loading=\"lazy\" class=\"stk-image stk-reset\" width=\"14\" height=\"17\"/></div></figure><p class=\"stk-theme_46128__style_small_text align-right stk-theme_46128__color_46128_custom_color_2 stk-reset align-left-m\" data-ce-tag=\"paragraph\">The 3-year Half-life of Code in a n Advanced Tables Plugins: Lines of code, by yearly cohorts, across 3 years</p></div><div data-col-width=\"10\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><figure class=\"stk-reset stk-image-figure\" data-ce-tag=\"image-figure\" data-anim-m=\"false\" data-stk-css=\"stkYc-5r\" data-anim=\"true\" data-anim-name=\"preset-fadeIn\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/090757e4-45c5-4379-bc80-86caef330bb6/\" data-image-id=\"200720\" data-image-name=\"stack_plot 1.png\" loading=\"lazy\" class=\"stk-image stk-reset\" width=\"1617\" height=\"1183\"/></div></figure></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">This final graph (below) represents the aggregate decay and half-life of&nbsp;the<strong class=\"stk-reset\"> individual commits on&nbsp;the connected repos of&nbsp;the same advanced tables plugin.</strong> After three years of&nbsp;constant reworks, a&nbsp;mere 16% of&nbsp;the original code remains.</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-grid__layout_reverse\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col align-right stk-grid-col_last\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><figure class=\"stk-theme_46128__mb_05 stk-reset stk-image-figure stk-mobile-hidden\" data-ce-tag=\"image-figure\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/f0f137ee-dc76-4c82-a8fb-a09f945a79e4/\" data-image-id=\"198625\" data-image-name=\"arrow-2022091908490909.svg\" loading=\"lazy\" class=\"stk-image stk-reset\" width=\"14\" height=\"17\"/></div></figure><p class=\"stk-theme_46128__style_small_text align-right stk-theme_46128__color_46128_custom_color_2 stk-reset align-left-m\" data-ce-tag=\"paragraph\">The 3-year Aggregate Decay in an Advanced Tables plugin Individual commits in a repo, by yearly cohorts, across 3 years</p></div><div data-col-width=\"10\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><figure class=\"stk-reset stk-image-figure\" data-ce-tag=\"image-figure\" data-anim-m=\"false\" data-stk-css=\"stk4nm0l\" data-anim=\"true\" data-anim-name=\"preset-fadeIn\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/9a09a1e6-d7f9-4133-857a-01b43c0073fc/\" data-image-id=\"200721\" data-image-name=\"Group 21.png\" loading=\"lazy\" class=\"stk-image stk-reset\" width=\"1315\" height=\"816\"/></div></figure></div></div><div class=\"stk-theme_46128__mb_2 stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col valign-middle\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-ce-tag=\"grid\" data-anim-m=\"false\" data-stk-css=\"stkbWM_q\" data-anim-zoom=\"100\" data-anim-shift=\"60\" data-anim-rotation=\"0\" data-anim-opacity=\"100\" data-anim-direction=\"top\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" data-anim-trigger=\"whenScrolling\" data-anim-sticky-direction=\"top\" data-anim-sticky-offset=\"20\" data-anim-name=\"VJpPf\" data-anim=\"true\"><div data-col-width=\"3\" class=\"stk-theme_46128__pad_round_1 stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-element_no-text stk-reset stk-theme_46128__mb_0\" data-ce-tag=\"paragraph\"><img alt=\"\" class=\"stk-reset stk-theme_46128__symbol_custom_image_3736723 stk-icon\" src=\"https://ucarecdn.com/31bae7df-74ed-489f-b9ec-b4ae2f4f9271/\"></p><hr class=\"stk-theme_46128__separator_basic_divider stk-theme_46128__mb_05 stk-reset\"/><p class=\"stk-theme_46128__style_font_style-1663332392241 stk-theme_46128__color_46128_custom_color_2 stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">What is&nbsp;half-life?</strong></p><p class=\"stk-theme_46128__style_small_text stk-reset stk-theme_46128__mb_0\" data-ce-tag=\"paragraph\">In&nbsp;nuclear physics, the half-life of&nbsp;a&nbsp;radioactive substance refers to&nbsp;the amount of&nbsp;time taken for it&nbsp;to&nbsp;reduce (decay) to&nbsp;half. Similarly, the <a href=\"https://en.wikipedia.org/wiki/Half-life_of_knowledge\" target=\"_blank\" class=\"stk-reset\">half-life of&nbsp;knowledge</a>, information or&nbsp;facts refers to&nbsp;the amount of&nbsp;time needed for half of&nbsp;the knowledge to&nbsp;become irrelevant or&nbsp;outdated.</p></div></div></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">The key role code half-life can play when reviewing a&nbsp;complex code base is&nbsp;as&nbsp;an&nbsp;indicator of&nbsp;‘potential’ technical debt.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">While it’s a&nbsp;given that untouched code, after enough time, probably needs work… potential tech debt is&nbsp;tricky. It&nbsp;isn’t always clearly visible (until you try to&nbsp;read the code) and can give false impressions about the quality and quantity of&nbsp;the product development and/or incremental work being considered.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">The maps above clearly show there’s lots of&nbsp;‘potential’ yet to&nbsp;be&nbsp;uncovered in&nbsp;just about every rich text editor and plugin. Which means, the payoff tasks for editors are endless. No&nbsp;matter how perfectly the original code was written.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Returning to&nbsp;Sandi Metz, “If&nbsp;it&nbsp;makes you feel any better, there’s a&nbsp;way in&nbsp;which having a&nbsp;big mess is&nbsp;a&nbsp;sign of&nbsp;success. The reason your competitors don’t have messes is&nbsp;that they went out of&nbsp;business. You won, and your prize is&nbsp;an&nbsp;application that betrays the ravages of&nbsp;time.”</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Shame the costs and mess, are irreconcilable.</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-layout__overhangs_both stk-grid stk-theme_46128__mb_2\" data-stk-css=\"stk-EFci\" data-ce-tag=\"grid\"><div data-col-width=\"12\" class=\"stk-grid-col stk-theme_46128__pad_ver_2 stk-grid-col_last stk-theme_46128__pad_ver_1-m\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"1\" class=\"stk-grid-col\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><figure class=\"stk-reset stk-image-figure\" data-ce-tag=\"image-figure\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/d6850d19-acd0-4f0f-8fa4-22685ee864da/\" data-image-id=\"196514\" data-image-name=\"“.svg\" loading=\"lazy\" class=\"stk-image stk-reset\" width=\"58\" height=\"34\"/></div></figure></div><div data-col-width=\"7\" class=\"stk-grid-col stk-grid-col_last valign-middle\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\"/></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-grid__layout_reverse\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset stk-theme_46128__style_font_style-1663332392241 stk-theme_46128__color_46128_custom_color_2 stk-theme_46128__mb_0\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">—<br>Alexandre Omeyer</strong></p><p class=\"stk-theme_46128__style_small_text stk-theme_46128__color_46128_custom_color_3 stk-reset\" data-ce-tag=\"paragraph\"><a href=\"https://www.stepsize.com/blog/complete-guide-to-technical-debt\" target=\"_blank\" class=\"stk-reset\">The Engineer’s Complete Guide to Technical Debt</a>, StepSize</p></div><div data-col-width=\"8\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><p class=\"stk-reset stk-theme_46128__mb_05 stk-theme_46128__style_font_style-1663334000661\" data-ce-tag=\"paragraph\">Technical debt&nbsp;— also known as&nbsp;tech debt or&nbsp;code debt&nbsp;— is&nbsp;what happens when a&nbsp;development team speeds up&nbsp;the delivery of&nbsp;a&nbsp;project or&nbsp;functionality that will require refactoring later&nbsp;on. A&nbsp;quicker development process becomes the priority instead of&nbsp;high-quality code.</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div></div></div></div></div><div class=\"stk-theme_46128__mb_3 stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"12\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"12\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\" data-anim-m=\"false\" data-stk-css=\"stkR1uJV\" data-anim=\"true\" data-anim-name=\"preset-slideInRight\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\"/><div class=\"stk-grid\" data-anim-m=\"false\" data-stk-css=\"stkShTUC\" data-anim=\"true\" data-anim-name=\"preset-fadeIn\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__style_accented_text align-center stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Download a PDF of this white paper<br>and save it for later</strong></p><a class=\"stk-theme_46128__stk-btn_basic stk-theme_46128__style_font_style-1663332392241 align-center stk-reset\" data-stk-button=\"1\" data-ce-tag=\"button\" href=\"https://www.tiny.cloud/technical-debt-whitepaper-opt-in\" target=\"_blank\">Download</a></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\" data-anim-m=\"false\" data-stk-css=\"stkg4vhf\" data-anim=\"true\" data-anim-name=\"preset-slideInLeft\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\"/></div></div></div></div><div class=\"stk-theme_46128__mb_2 stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"12\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><div class=\"stk-theme_46128__mb_05 stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"1\" class=\"stk-grid-col align-right align-left-m\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\" data-anim-m=\"false\" data-stk-css=\"stk5Ssi5\" data-anim=\"true\" data-anim-name=\"preset-slideInLeft\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" id=\"stk-2-5\">2.5</p></div><div data-col-width=\"3\" class=\"stk-grid-col valign-middle stk-grid-col_last\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\" data-anim-m=\"false\" data-stk-css=\"stk-fohc\" data-anim=\"true\" data-anim-name=\"preset-slideInRight\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\"/></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"5\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><h3 class=\"stk-theme_46128__style_medium_header stk-reset\" data-ce-tag=\"paragraph\">Opportunity Cost of&nbsp;RTE Technical Debt</h3></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col valign-middle\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-ce-tag=\"grid\" data-anim-m=\"false\" data-stk-css=\"stkHtzXN\" data-anim-zoom=\"100\" data-anim-shift=\"40\" data-anim-rotation=\"0\" data-anim-opacity=\"100\" data-anim-direction=\"right\" data-anim-duration=\"0.8\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" data-anim-trigger=\"scroll\" data-anim-sticky-direction=\"top\" data-anim-sticky-offset=\"20\" data-anim-name=\"sCDES\" data-anim=\"true\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><div class=\"stk-grid stk-theme_46128__mb_0\" data-stk-css=\"stkv_hVB\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_last\" data-stk-css=\"stkKzVlO\" data-ce-tag=\"grid-col\"><p class=\"stk-reset stk-theme_46128__style_small_text stk-theme_46128__color_46128_custom_color_2\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">FURTHER INSIGHTS</strong></p></div></div><div class=\"stk-grid stk-theme_46128__mb_05\" data-ce-tag=\"grid\" data-stk-css=\"stk93Dn8\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_last valign-bottom\" data-stk-css=\"stkK4hvw\" data-ce-tag=\"grid-col\"><figure class=\"stk-reset stk-image-figure stk-theme_46128__mb_05\" data-stk-css=\"stkHX0EE\" data-ce-tag=\"image-figure\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><a href=\"https://www.tiny.cloud/buy-vs-build-whitepaper-opt-in \" class=\"stk-reset stk-link\" target=\"_blank\"><img src=\"https://ucarecdn.com/daf7eded-dbdd-4092-8bc1-6726e07c00c5/\" data-image-id=\"134877\" data-image-name=\"frame-30-copy-2021110813411567.svg\" class=\"stk-image stk-reset\" loading=\"lazy\" width=\"1138\" height=\"1000\"/></a></div></figure></div></div><p class=\"stk-reset stk-theme_46128__style_font_style-1663332392241 stk-theme_46128__color_46128_custom_color_3\" data-stk-css=\"stkRHRk6\" data-ce-tag=\"paragraph\"><a class=\"stk-reset\" href=\"https://www.tiny.cloud/buy-vs-build-whitepaper/\" target=\"_blank\">Download and read Build vs Buy White Paper →</a></p></div></div></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">All code has technical debt. That’s normal.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Big, small, start-ups and Fortune 500&nbsp;companies, all carry that debt.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">It’s just that some applications generate more than others. So&nbsp;you need to&nbsp;be&nbsp;more canny.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">As&nbsp;<a href=\"https://www.mckinsey.com/business-functions/mckinsey-digital/our-insights/tech-forward/the-digital-butterfly-effect-the-big-impact-of-small-decisions\" target=\"_blank\" class=\"stk-reset\">McKinsey says</a>, “Companies whose leadership is&nbsp;conversant in&nbsp;technology matters and has a&nbsp;foundational understanding of&nbsp;what to&nbsp;look for in&nbsp;system-architecture builds can avoid unintentionally accruing tech debt. Furthermore, involving senior management and subject-matter experts at&nbsp;the outset helps address critical IT&nbsp;considerations up&nbsp;front.”</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Technical debt should be&nbsp;carefully managed, to&nbsp;ensure its negative consequences don’t exceed its advantages.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">That’s exactly where open source, domain experts and specialist third-party components can come into your tech stack, to&nbsp;help alleviate your debt burden&nbsp;— be&nbsp;the debt intentional or&nbsp;unintentional.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\"><a class=\"stk-reset\" data-gtm-vis-has-fired-10171822_255=\"1\" href=\"https://martinfowler.com/bliki/TechnicalDebtQuadrant.html\" target=\"_blank\">Martin Fowler usefully categorised technical debt</a> into four quadrants, tracking along spectrums based on&nbsp;context and intent&nbsp;— from reckless to&nbsp;prudent and deliberate to&nbsp;inadvertent:</p><div class=\"stk-theme_46128__mb_05 stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Deliberately reckless:</p></div><div data-col-width=\"6\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__style_font_style-1663330643602 stk-theme_46128__color_46128_custom_color_2 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">“We don’t have time for design.”</strong></p></div></div><div class=\"stk-grid stk-theme_46128__mb_05\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Inadvertently reckless:</p></div><div data-col-width=\"6\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__style_font_style-1663330643602 stk-theme_46128__color_46128_custom_color_2 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">“What’s layering?”</strong></p></div></div><div class=\"stk-grid stk-theme_46128__mb_05\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Deliberately prudent:</p></div><div data-col-width=\"6\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__style_font_style-1663330643602 stk-theme_46128__color_46128_custom_color_2 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">“We must ship now and deal with the consequences.”</strong></p></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Inadvertently prudent:</p></div><div data-col-width=\"6\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__style_font_style-1663330643602 stk-theme_46128__color_46128_custom_color_2 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">“Now we know how we should have done it.”</strong></p></div></div></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-grid__layout_reverse\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col align-right valign-bottom stk-grid-col_last\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><figure class=\"stk-theme_46128__mb_05 stk-reset stk-image-figure stk-mobile-hidden\" data-ce-tag=\"image-figure\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/f0f137ee-dc76-4c82-a8fb-a09f945a79e4/\" data-image-id=\"198625\" data-image-name=\"arrow-2022091908490909.svg\" loading=\"lazy\" class=\"stk-image stk-reset\" width=\"14\" height=\"17\"/></div></figure><p class=\"stk-theme_46128__style_small_text align-right stk-theme_46128__color_46128_custom_color_2 stk-reset align-left-m\" data-ce-tag=\"paragraph\"><a href=\"https://martinfowler.com/bliki/TechnicalDebtQuadrant.html\" target=\"_blank\" class=\"stk-reset\">Source</a></p></div><div data-col-width=\"11\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><figure class=\"stk-reset stk-image-figure\" data-ce-tag=\"image-figure\" data-anim-m=\"false\" data-stk-css=\"stkTrklU\" data-anim=\"true\" data-anim-name=\"preset-fadeIn\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/76f233bc-d25f-437a-81c7-9bc7e14143ee/\" data-image-id=\"200818\" data-image-name=\"Group 31.png\" loading=\"lazy\" class=\"stk-image stk-reset\" width=\"1820\" height=\"1000\"/></div></figure></div></div><div class=\"stk-theme_46128__mb_2 stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Each of&nbsp;those quadrants carry different opportunity costs and trade-offs. And seemingly small decisions can have big consequences.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">The technical debt on&nbsp;the left-hand side of&nbsp;the quadrants should be&nbsp;avoided, at&nbsp;all cost. The right hand side is&nbsp;where the action happens.</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-layout__overhangs_both stk-grid stk-theme_46128__mb_2\" data-stk-css=\"stkva-Ev\" data-ce-tag=\"grid\"><div data-col-width=\"12\" class=\"stk-grid-col stk-theme_46128__pad_ver_2 stk-grid-col_last stk-theme_46128__pad_ver_1-m\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"1\" class=\"stk-grid-col\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><figure class=\"stk-reset stk-image-figure\" data-ce-tag=\"image-figure\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/d6850d19-acd0-4f0f-8fa4-22685ee864da/\" data-image-id=\"196514\" data-image-name=\"“.svg\" loading=\"lazy\" class=\"stk-image stk-reset\" width=\"58\" height=\"34\"/></div></figure></div><div data-col-width=\"7\" class=\"stk-grid-col stk-grid-col_last valign-middle\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\"/></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid stk-grid__layout_reverse\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset stk-theme_46128__style_small_text stk-theme_46128__color_46128_custom_color_3\" data-ce-tag=\"paragraph\">–<br><a class=\"stk-reset\" href=\"https://www.salesforce.com/au/blog/2021/10/how-to-avoid-a-technical-debt-black-hole.html\" target=\"_blank\">5 steps to avoid a technical debt black hole</a>,&nbsp;Salesforce</p></div><div data-col-width=\"8\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><p class=\"stk-reset stk-theme_46128__mb_05 stk-theme_46128__style_font_style-1663334000661\" data-ce-tag=\"paragraph\">Prudent debt is&nbsp;the corollary of&nbsp;the agile software development principle that ‘perfect is&nbsp;the enemy of&nbsp;done’. Prudent debt can be&nbsp;deliberate: we&nbsp;know we’re going to&nbsp;have to&nbsp;fix this later. It&nbsp;can be&nbsp;inadvertent: the world has changed since we&nbsp;made that choice. Either way, it’s unavoidable&nbsp;— the objective is&nbsp;to&nbsp;minimise reckless debt and properly manage prudent debt.</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col valign-middle\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-ce-tag=\"grid\" data-anim-m=\"false\" data-stk-css=\"stkeTMax\" data-anim-zoom=\"100\" data-anim-shift=\"60\" data-anim-rotation=\"0\" data-anim-opacity=\"100\" data-anim-direction=\"top\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" data-anim-trigger=\"whenScrolling\" data-anim-sticky-direction=\"top\" data-anim-sticky-offset=\"20\" data-anim-name=\"XpFyx\" data-anim=\"true\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_46128__separator_basic_divider stk-theme_46128__mb_05 stk-reset\"/><p class=\"stk-reset stk-theme_46128__style_font_style-1663330643602 stk-theme_46128__color_46128_custom_color_1\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Ideally, it’s</strong><br><strong class=\"stk-reset\">a&nbsp;‘Goldilocks level of&nbsp;tech debt’ you want&nbsp;— not too much, not too little.</strong></p></div></div></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Notice that the goal isn’t to&nbsp;reach zero debt.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Ideally, it’s a&nbsp;‘Goldilocks level of&nbsp;tech debt’ you want&nbsp;— not too much, not too little. Your tech debt management plan needs to&nbsp;balance growth and housekeeping, to&nbsp;ensure you continue delivering value at&nbsp;high speed, without sacrificing quality.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">As&nbsp;<a href=\"https://hackernoon.com/understanding-technical-debt-as-a-software-engineer-gz223z2o\" target=\"_blank\" class=\"stk-reset\">Hackernoon clearly puts it</a> in&nbsp;their tech debt guide, “ A&nbsp;rushed development means that the code base has certain deficiencies that a&nbsp;programmer will have to&nbsp;rework or&nbsp;clean up&nbsp;later&nbsp;on. These deficiencies, also called ‘cruft’, affect the overall code quality, and although the software can still function, it&nbsp;cannot reach its full potential until someone fixes the deficiencies.”</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">But sometimes, cruft and technical debt arrives unexpectedly.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">During 2021, 43&nbsp;updates occurred in&nbsp;the Chrome browser, with 117&nbsp;significant changes. That means the Chrome browser you used at&nbsp;the beginning of&nbsp;2021&nbsp;is&nbsp;different from the one you used at&nbsp;the end of&nbsp;the year, in&nbsp;at&nbsp;least 117&nbsp;ways. Likewise, Mozilla released 10&nbsp;updates over 2021, with 94&nbsp;changes made to&nbsp;Firefox (Versions 85-94). Apple only had 3&nbsp;updates for Safari (Version 15) in&nbsp;2021. By&nbsp;any measure, all these browsers dramatically changed in&nbsp;a&nbsp;single year.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Likewise, WordPress, the most commonly used web content management system had 6&nbsp;updates with 12&nbsp;significant changes and 1&nbsp;major (new generation) release.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Although, these numbers aren’t unique to&nbsp;2021.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Every layer of&nbsp;a&nbsp;web development stack undergoes significant change each year, and the rich text editors that rely on&nbsp;those applications need to&nbsp;immediately accommodate those adjustments. There’s no&nbsp;advance warning. It&nbsp;can be&nbsp;as&nbsp;simple as&nbsp;a&nbsp;security patch, or&nbsp;a&nbsp;fundamental refectoring of&nbsp;the code base.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">You just never know.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">In&nbsp;the past 4&nbsp;years, on&nbsp;average there’s been 8&nbsp;forced fixes/patches each year, on&nbsp;rich text editors and their dependent plugins features, to&nbsp;address unexpected changes in&nbsp;browser behaviour.</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid\" data-stk-css=\"stk7Wkes\" data-ce-tag=\"grid\"><div data-col-width=\"12\" class=\"stk-theme_46128__pad_round_1 stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"10\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><h4 class=\"align-center stk-reset stk-theme_46128__style_small_header\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Rich Text Editor Unplanned Fixes/Patches</strong><br><strong class=\"stk-reset\">to Address Browser Changes</strong></h4></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><table data-responsive-type=\"cards\" class=\"stk-table--bordered_hv stk-reset stk-table\" data-ce-tag=\"table\"><colgroup><col class=\"stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset\" data-stk-id=\"3061\"/><col class=\"stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset\" data-stk-id=\"3062\"/><col class=\"stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset\" data-stk-id=\"3063\"/><col class=\"stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset\" data-stk-id=\"3064\"/></colgroup><thead class=\"stk-reset\"><tr class=\"stk-theme_46128__style_font_style-1663332392241 stk-reset stk-table-row\"><th class=\"align-center valign-middle stk-theme_46128__color_46128_custom_color_2 stk-theme_46128__style_font_style-1663332392241 stk-reset stk-table-cell\" data-ce-tag=\"th\"><strong class=\"stk-reset\">2018</strong></th><th class=\"valign-middle align-center stk-theme_46128__color_46128_custom_color_2 stk-theme_46128__style_font_style-1663332392241 stk-reset stk-table-cell\" data-ce-tag=\"th\">2019</th><th class=\"valign-middle align-center stk-theme_46128__color_46128_custom_color_2 stk-theme_46128__style_font_style-1663332392241 stk-reset stk-table-cell\" data-ce-tag=\"th\">2020</th><th class=\"valign-middle align-center stk-theme_46128__color_46128_custom_color_2 stk-theme_46128__style_font_style-1663332392241 stk-reset stk-table-cell\" data-ce-tag=\"th\">2021</th></tr></thead><tbody class=\"stk-reset\"><tr class=\"stk-reset stk-table-row\"><td class=\"align-center stk-reset stk-table-cell\" data-ce-tag=\"td\" data-cell-header=\"2018\">8</td><td class=\"align-center stk-reset stk-table-cell\" data-ce-tag=\"td\" data-cell-header=\"2019\">8</td><td class=\"align-center stk-reset stk-table-cell\" data-ce-tag=\"td\" data-cell-header=\"2020\">9</td><td class=\"align-center stk-reset stk-table-cell\" data-ce-tag=\"td\" data-cell-header=\"2021\">6</td></tr></tbody></table></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">With the release of&nbsp;every patch, it’s not just a&nbsp;simple code adjustment and pushing it&nbsp;out. Each time, testing must be&nbsp;done to&nbsp;check browser compatibility.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">There are at&nbsp;least two desktop OS&nbsp;to&nbsp;test (Windows and OSX) and two mobile OS&nbsp;(Android, IOS), plus iPad, Tablet and Hybrid across multiple browsers (Chrome, Safari, Firefox/Mozilla) and screen resolutions.</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid\" data-stk-css=\"stkA3dWL\" data-ce-tag=\"grid\"><div data-col-width=\"12\" class=\"stk-theme_46128__pad_round_1 stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"10\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><h4 class=\"align-center stk-reset stk-theme_46128__style_small_header\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Minimum Browser Compatibility Testing</strong><br><strong class=\"stk-reset\">for Rich Text Editor Releases</strong></h4></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"4\" class=\"stk-grid-col\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__style_font_style-1663332392241 align-center stk-theme_46128__color_46128_custom_color_2 stk-theme_46128__mb_0 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">DESKTOP OS</strong></p><hr class=\"stk-theme_46128__separator_basic_divider stk-theme_46128__mb_05 stk-reset\"/><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\">Windows Chrome</p><p class=\"stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\">Windows Edge<sup class=\"stk-reset\"><span class=\"stk-reset\" data-stk-footnote-link=\"fnxkn6u\">2</span></sup></p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">OSX Safari</p></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\">Windows FireFox</p><p class=\"stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\">OSX Chrome</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">OSX FireFox</p></div></div></div><div data-col-width=\"2\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__style_font_style-1663332392241 align-center stk-theme_46128__color_46128_custom_color_2 stk-theme_46128__mb_0 stk-reset\" data-ce-tag=\"paragraph\"><b class=\"stk-reset\"><strong class=\"stk-reset\">MOBILE</strong></b></p><hr class=\"stk-theme_46128__separator_basic_divider stk-theme_46128__mb_05 stk-reset\"/><p class=\"stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\">iOS Safari (Mobile)</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Android Chrome (Mobile)</p></div><div data-col-width=\"2\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__style_font_style-1663332392241 align-center stk-theme_46128__color_46128_custom_color_2 stk-theme_46128__mb_0 stk-reset\" data-ce-tag=\"paragraph\"><b class=\"stk-reset\"><strong class=\"stk-reset\">iPAD</strong></b></p><hr class=\"stk-theme_46128__separator_basic_divider stk-theme_46128__mb_05 stk-reset\"/><p class=\"stk-reset\" data-ce-tag=\"paragraph\">iOS Safari (iPad)</p></div><div data-col-width=\"2\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__style_font_style-1663332392241 align-center stk-theme_46128__color_46128_custom_color_2 stk-theme_46128__mb_0 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">TABLET</strong></p><hr class=\"stk-theme_46128__separator_basic_divider stk-theme_46128__mb_05 stk-reset\"/><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Android Chrome (Tablet)</p></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__style_font_style-1663332392241 align-center stk-theme_46128__color_46128_custom_color_2 stk-theme_46128__mb_0 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">HYBRID</strong></p><hr class=\"stk-theme_46128__separator_basic_divider stk-theme_46128__mb_05 stk-reset\"/><p class=\"stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\">Windows Surface (Hybrid)</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">ChromeBook (Hybrid)</p></div></div></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">All this mushrooms the Total Cost of&nbsp;Ownership (TCO) of&nbsp;a&nbsp;rich text editor and consumes resources: people, time and money.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Every release (<a href=\"https://semver.org/\" target=\"_blank\" class=\"stk-reset\">Major, Minor and Patch</a>) requires QA&nbsp;testing, prior to&nbsp;being released and depending on&nbsp;the priority and severity of&nbsp;the items within the release scope and other project risks, the launch may be&nbsp;delayed.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Code rewrites ensue, then back through QA&nbsp;for repeat testing. Every. Single. Time.</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid\" data-stk-css=\"stkM2xRl\" data-ce-tag=\"grid\"><div data-col-width=\"12\" class=\"stk-theme_46128__pad_round_1 stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"10\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><h4 class=\"align-center stk-reset stk-theme_46128__style_small_header\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">QA Testing for Rich Text Editor Releases<sup class=\"stk-reset\"><span class=\"stk-reset\" data-stk-footnote-link=\"fnUu_0J\">3</span></sup></strong></h4></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><table data-responsive-type=\"cards\" class=\"stk-table--bordered_hv stk-reset stk-table\" data-ce-tag=\"table\"><colgroup><col class=\"stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset\" data-stk-id=\"3142\"/><col class=\"stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset\" data-stk-id=\"3143\"/><col class=\"stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset stk-reset\" data-stk-id=\"3144\"/></colgroup><thead class=\"stk-reset\"><tr class=\"stk-theme_46128__style_font_style-1663332392241 stk-reset stk-table-row\"><th class=\"align-center valign-middle stk-theme_46128__color_46128_custom_color_2 stk-theme_46128__style_font_style-1663332392241 stk-reset stk-table-cell\" data-ce-tag=\"th\">MAJOR</th><th class=\"valign-middle align-center stk-theme_46128__color_46128_custom_color_2 stk-theme_46128__style_font_style-1663332392241 stk-reset stk-table-cell\" data-ce-tag=\"th\">MINOR</th><th class=\"valign-middle align-center stk-theme_46128__color_46128_custom_color_2 stk-theme_46128__style_font_style-1663332392241 stk-reset stk-table-cell\" data-ce-tag=\"th\">PATCH</th></tr></thead><tbody class=\"stk-reset\"><tr class=\"stk-reset stk-table-row\"><td class=\"stk-reset stk-table-cell align-left\" data-ce-tag=\"td\" data-cell-header=\"MAJOR\">Breaking changes ( incompatible API changes) <br>New features Improvements <br>Bug fixes <br>Security patches</td><td class=\"stk-reset stk-table-cell align-left\" data-ce-tag=\"td\" data-cell-header=\"MINOR\">New features<br>Improvements<br>Bug fixes<br>Security patches</td><td class=\"stk-reset stk-table-cell align-left\" data-ce-tag=\"td\" data-cell-header=\"PATCH\">Bug fixes<br>Security patches</td></tr><tr class=\"stk-reset stk-table-row\"><td class=\"stk-reset stk-table-cell align-left\" data-ce-tag=\"td\" data-cell-header=\"MAJOR\">Yearly</td><td class=\"stk-reset stk-table-cell align-left\" data-ce-tag=\"td\" data-cell-header=\"MINOR\">Quarterly</td><td class=\"stk-reset stk-table-cell align-left\" data-ce-tag=\"td\" data-cell-header=\"PATCH\">Ad-hoc</td></tr><tr class=\"stk-reset stk-table-row\"><td class=\"stk-reset stk-table-cell align-left\" data-ce-tag=\"td\" data-cell-header=\"MAJOR\">2-3 weeks<br>(10-15 business days)</td><td class=\"stk-reset stk-table-cell align-left\" data-ce-tag=\"td\" data-cell-header=\"MINOR\">2-3 weeks<br>(10-15 business days)</td><td class=\"stk-reset stk-table-cell align-left\" data-ce-tag=\"td\" data-cell-header=\"PATCH\">1-2 days</td></tr></tbody></table><p class=\"stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Out of Scope:</strong> Dev tasks related to technical debt</p></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-ce-tag=\"grid\" data-anim-m=\"false\" data-stk-css=\"stkf2FI_\" data-anim-zoom=\"100\" data-anim-shift=\"60\" data-anim-rotation=\"0\" data-anim-opacity=\"100\" data-anim-direction=\"top\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" data-anim-trigger=\"whenScrolling\" data-anim-sticky-direction=\"top\" data-anim-sticky-offset=\"20\" data-anim-name=\"tXNhk\" data-anim=\"true\"><div data-col-width=\"3\" class=\"stk-theme_46128__pad_round_1 stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-element_no-text stk-reset stk-theme_46128__mb_0\" data-ce-tag=\"paragraph\"><img alt=\"\" class=\"stk-reset stk-theme_46128__symbol_custom_image_3736723 stk-icon\" src=\"https://ucarecdn.com/31bae7df-74ed-489f-b9ec-b4ae2f4f9271/\"></p><hr class=\"stk-theme_46128__separator_basic_divider stk-theme_46128__mb_05 stk-reset\"/><p class=\"stk-theme_46128__style_font_style-1663332392241 stk-theme_46128__color_46128_custom_color_2 stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">The People Cost of&nbsp;Technical Debt</strong></p><p class=\"stk-theme_46128__style_small_text stk-reset stk-theme_46128__mb_0\" data-ce-tag=\"paragraph\">A&nbsp;<a class=\"stk-reset\" href=\"https://www.stepsize.com/how-codebase-health-impacts-hiring-and-retention-2021-report\" target=\"_blank\">recent survey by&nbsp;Stepsize</a> uncovered that technical debt leads to&nbsp;employee churn.</p><p class=\"stk-theme_46128__style_small_text stk-theme_46128__mb_0 stk-reset\" data-ce-tag=\"paragraph\">More than half of&nbsp;the Engineers (51%) surveyed had left a&nbsp;company or&nbsp;considered leaving a&nbsp;company due to&nbsp;large amounts of&nbsp;technical debt, and 20% said that technical debt is&nbsp;the primary reason for them to&nbsp;leave a&nbsp;company.</p></div></div></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">However if&nbsp;unattended, both forced and unforced changes generate tech debt.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Today’s code becomes slightly out of&nbsp;date, very fast. Within days, sometimes. While the code may not decay (as&nbsp;it&nbsp;does with half-life), the environment in&nbsp;which it&nbsp;functions continues to&nbsp;change at&nbsp;a&nbsp;blistering speed.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Cost drives much of&nbsp;today’s technology.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">The typical cost of&nbsp;managing the technical debt generated by&nbsp;a&nbsp;rich text editor&nbsp;— and its advanced feature plugins&nbsp;— isn’t small. Even discussing the possibility of&nbsp;adding some functionality or&nbsp;fixing a&nbsp;bug and then deciding not to&nbsp;do&nbsp;it, takes time.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">And the more rework you have to&nbsp;do, the higher the price tag and opportunities lost.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">That’s the butterfly effect of&nbsp;technical debt decisions.</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div></div></div><div class=\"stk-theme_46128__mb_2 stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"12\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><div class=\"stk-theme_46128__mb_05 stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"1\" class=\"stk-grid-col align-right align-left-m\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\" data-anim-m=\"false\" data-stk-css=\"stkX1fnb\" data-anim=\"true\" data-anim-name=\"preset-slideInLeft\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" id=\"stk-2-6\">2.6</p></div><div data-col-width=\"3\" class=\"stk-grid-col valign-middle stk-grid-col_last\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\" data-anim-m=\"false\" data-stk-css=\"stkAWtnh\" data-anim=\"true\" data-anim-name=\"preset-slideInRight\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\"/></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"5\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><h3 class=\"stk-theme_46128__style_medium_header stk-reset\" data-ce-tag=\"paragraph\">Even the Best Creates Cruft</h3></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col valign-middle\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-ce-tag=\"grid\" data-anim-m=\"false\" data-anim=\"true\" data-anim-name=\"preset-slideInLeft\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__mb_05 stk-theme_46128__style_font_style-1663330932645 stk-theme_46128__color_46128_custom_color_1 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\" data-gtm-vis-has-fired-10171822_255=\"1\">58%</strong></p><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__style_small_text stk-reset\" data-ce-tag=\"paragraph\">of a developer’s time is spent on code comprehension</p></div></div></div></div></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Quality code.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">It’s not cruft-free: even the best carries cruft.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">An&nbsp;accepted shorthand for many things, cruft is&nbsp;(generally speaking) some form of&nbsp;debt that eventually needs to&nbsp;be&nbsp;paid. <a href=\"https://martinfowler.com/bliki/TechnicalDebt.html\" target=\"_blank\" class=\"stk-reset\">Martin Fowler defines cruft </a>as&nbsp;“Software systems are prone to&nbsp;the build up&nbsp;of&nbsp;<strong class=\"stk-reset\">cruft </strong>– deficiencies in&nbsp;internal quality that make it&nbsp;harder than it&nbsp;would ideally be&nbsp;to&nbsp;modify and extend the system further.”</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Sounds like technical debt.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Cruft also includes “…<a href=\"https://medium.com/swlh/software-cruft-28ae5e766e98\" target=\"_blank\" class=\"stk-reset\">‘things’ that were left temporarily in&nbsp;the system</a> during the previous iteration. Also, cruft refers to&nbsp;any code that is&nbsp;not necessary to&nbsp;perform the task it&nbsp;was designed for or&nbsp;forgotten code without any utility. Although cruft does not mean a&nbsp;code bug, it&nbsp;makes the code harder to&nbsp;maintain or&nbsp;to&nbsp;read and creates technical debt.”</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">And we&nbsp;all know that hard to&nbsp;read code, eventually equals technical debt.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">A&nbsp;Mcrosoft study in&nbsp;2017&nbsp;concluded that <a href=\"https://www.researchgate.net/publication/318811113_Measuring_Program_Comprehension_A_Large-Scale_Field_Study_with_Professionals\" target=\"_blank\" class=\"stk-reset\">58% of&nbsp;a&nbsp;developer’s time is&nbsp;spent on&nbsp;code comprehension</a>, especially once the software is&nbsp;shipped and has to&nbsp;be&nbsp;maintained. It’s something most developers intuitively know: “…the less you’re familiar with the code, the longer it&nbsp;takes. The more surprises are in&nbsp;your way, the longer it&nbsp;takes. The harder it&nbsp;is&nbsp;to&nbsp;reproduce all scenarios, the longer it&nbsp;takes to&nbsp;get it&nbsp;right.”</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">That’s not uncommon in&nbsp;large, complex projects, like <a href=\"https://www.tiny.cloud/buy-vs-build-whitepaper/\" target=\"_blank\" class=\"stk-reset\">rich text editors, with anywhere from 484,093 to&nbsp;270,122 lines of&nbsp;code (LOC)</a>. Different languages are used, multiple developers are coding, all with different approaches. That spells eventual tech debt.</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"11\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><figure class=\"stk-reset stk-image-figure\" data-ce-tag=\"image-figure\" data-anim-m=\"false\" data-stk-css=\"stkNlVr2\" data-anim=\"true\" data-anim-name=\"preset-fadeIn\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/ffab7760-2183-4e60-a970-4e4b2aa16857/\" data-image-id=\"201254\" data-image-name=\"Group 32 1.png\" class=\"stk-image stk-reset\" loading=\"lazy\" width=\"2232\" height=\"600\"/></div></figure></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-ce-tag=\"grid\" data-anim-m=\"false\" data-stk-css=\"stk1w7pj\" data-anim-zoom=\"100\" data-anim-shift=\"60\" data-anim-rotation=\"0\" data-anim-opacity=\"100\" data-anim-direction=\"top\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" data-anim-trigger=\"whenScrolling\" data-anim-sticky-direction=\"top\" data-anim-sticky-offset=\"20\" data-anim-name=\"TpUpr\" data-anim=\"true\"><div data-col-width=\"3\" class=\"stk-theme_46128__pad_round_1 stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-element_no-text stk-reset stk-theme_46128__mb_0\" data-ce-tag=\"paragraph\"><img alt=\"\" class=\"stk-reset stk-theme_46128__symbol_custom_image_3736723 stk-icon\" src=\"https://ucarecdn.com/31bae7df-74ed-489f-b9ec-b4ae2f4f9271/\"></p><hr class=\"stk-theme_46128__separator_basic_divider stk-theme_46128__mb_05 stk-reset\"/><p class=\"stk-theme_46128__style_font_style-1663332392241 stk-theme_46128__color_46128_custom_color_2 stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">What does an&nbsp;advanced clean copy-paste feature do?</strong></p><p class=\"stk-theme_46128__style_small_text stk-reset stk-theme_46128__mb_0\" data-ce-tag=\"paragraph\">An&nbsp;advanced copy-paste plugin helps users cleanly transfer content from its source to&nbsp;the rich text editor (the destination).</p><p class=\"stk-theme_46128__style_small_text stk-theme_46128__mb_0 stk-reset\" data-ce-tag=\"paragraph\">Ideally, it&nbsp;should automatically parse the content for security vulnerabilities, remove unnecessary style elements as&nbsp;well as&nbsp;generally clean up&nbsp;and modernize the background HTML.</p><p class=\"stk-theme_46128__style_small_text stk-reset\" data-ce-tag=\"paragraph\"><a href=\"https://www.tiny.cloud/blog/copy-paste-function-cost-estimate\" target=\"_blank\" class=\"stk-reset\">Read more →</a></p></div></div></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">But it&nbsp;also happens in&nbsp;single (but complex) advanced features. When a&nbsp;feature carries dependencies on&nbsp;dependencies to&nbsp;perform its functions, it’s difficult to&nbsp;effectively review every single line of&nbsp;code, all the time.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">So&nbsp;cruft and tech debt creeps into the code.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">As&nbsp;the feature expands its capabilities (<a href=\"https://www.tiny.cloud/blog/women-in-digital-finalist-2021/\" target=\"_blank\" class=\"stk-reset\">adding 99% accurate clean-copy-paste from Google Doc</a> sources), or&nbsp;improvements are made in&nbsp;rushed timelines, then corners are sometimes cut and compromises made to&nbsp;forsake quality in&nbsp;favour of&nbsp;speed. Or&nbsp;there’s instances when the code needs to&nbsp;be&nbsp;written so&nbsp;that every related app can continue, and the code quality suffers.</p><p class=\"stk-reset stk-theme_46128__mb_15\" data-ce-tag=\"paragraph\">New discoveries also drive change&nbsp;— the things you didn’t know about when you first set out to&nbsp;solve a&nbsp;problem for your users, like providing a&nbsp;99% accurate clean-copy-paste function.</p><div class=\"stk-grid\" data-stk-css=\"stklg4Ac\" data-ce-tag=\"grid\"><div data-col-width=\"8\" class=\"stk-theme_46128__pad_round_1 stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__style_font_style-1663332392241 stk-theme_46128__color_46128_custom_color_2 stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">CASE STUDY</strong></p><h4 class=\"stk-theme_46128__style_small_header stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Advanced clean-copy-paste plugin feature</strong></h4><p class=\"stk-theme_46128__mb_05 stk-theme_46128__style_font_style-1663330643602 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">TL;DR</strong></p><p class=\"stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\">The Word import component of an advanced copy-paste plugin (originally built in the early 2000s for a Java-based editor), was subsequently recompiled directly to JavaScript using Google Web Toolkit. By 2016 that technology was a decade old and had become unmaintainable. A rewrite was approved in 2016-17.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Triggers for the rewrite were: Large tech debt burden, poor code legibility, high maintenance, code decay.</p><p class=\"stk-theme_46128__mb_05 stk-theme_46128__style_font_style-1663330643602 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Scope</strong></p><p class=\"stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\">A single, advanced clean-copy paste feature for a rich text editor: </p><ul class=\"stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"list\"><li class=\"stk-reset stk-list-item\" data-ce-tag=\"list-item\">39836 lines of code<sup class=\"stk-reset\"><span class=\"stk-reset\" data-stk-footnote-link=\"fnK5E9v\">4</span></sup></li><li class=\"stk-reset stk-list-item\" data-ce-tag=\"list-item\">40 libraries </li></ul><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"7\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><ul class=\"stk-reset\" data-ce-tag=\"list\"><li class=\"stk-reset stk-list-item\" data-ce-tag=\"list-item\">18 open source inhouse libraries</li><li class=\"stk-reset stk-list-item\" data-ce-tag=\"list-item\">12 private libraries</li><li class=\"stk-reset stk-list-item\" data-ce-tag=\"list-item\">8 third-party open source libraries</li><li class=\"stk-reset stk-list-item\" data-ce-tag=\"list-item\">2 compilers (TypeScript and OCaml)</li></ul></div></div><p class=\"stk-theme_46128__mb_05 stk-theme_46128__style_font_style-1663330643602 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Technical Debt/Issues</strong></p><p class=\"stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\">The original component was written in Java by an outsourced developer and looked more like C. It was poorly written and while users loved its performance, the maintenance became increasingly difficult. Particularly towards the end of its life, developers struggled to fix even minor problems – choosing to create workarounds rather than fix the component directly.</p><p class=\"stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\">When building the new component in 2017, it was again decided not to build it in JavaScript directly, but rather use OCaml and compile to JavaScript. The resultant code was much better structured, used modern architectures and design to improve its base functionality. </p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">However, it too has its limitations, which is why another round of rewrites is now being considered, five years later.</p></div></div></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">It&nbsp;seems technical debt and cruft gets the better of&nbsp;us&nbsp;all.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Even when you’re the best.</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div></div></div><div class=\"stk-theme_46128__mb_3 stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"12\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><div class=\"stk-theme_46128__mb_05 stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"1\" class=\"stk-grid-col align-right align-left-m\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\" data-anim-m=\"false\" data-stk-css=\"stkuAysl\" data-anim=\"true\" data-anim-name=\"preset-slideInLeft\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" id=\"stk-2-7\">2.7</p></div><div data-col-width=\"3\" class=\"stk-grid-col valign-middle stk-grid-col_last\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\" data-anim-m=\"false\" data-stk-css=\"stkr7WHC\" data-anim=\"true\" data-anim-name=\"preset-slideInRight\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\"/></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"5\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><h3 class=\"stk-theme_46128__style_medium_header stk-reset\" data-ce-tag=\"paragraph\">Hard Choices are Opportunities</h3></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col valign-middle\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-ce-tag=\"grid\" data-anim-m=\"false\" data-stk-css=\"stkA_1wM\" data-anim-zoom=\"100\" data-anim-shift=\"60\" data-anim-rotation=\"0\" data-anim-opacity=\"100\" data-anim-direction=\"top\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" data-anim-trigger=\"whenScrolling\" data-anim-sticky-direction=\"top\" data-anim-sticky-offset=\"20\" data-anim-name=\"zAVgy\" data-anim=\"true\"><div data-col-width=\"3\" class=\"stk-theme_46128__pad_round_1 stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-element_no-text stk-reset stk-theme_46128__mb_0\" data-ce-tag=\"paragraph\"><img alt=\"\" class=\"stk-reset stk-theme_46128__symbol_custom_image_3736723 stk-icon\" src=\"https://ucarecdn.com/31bae7df-74ed-489f-b9ec-b4ae2f4f9271/\"></p><hr class=\"stk-theme_46128__separator_basic_divider stk-theme_46128__mb_05 stk-reset\"/><p class=\"stk-theme_46128__style_font_style-1663332392241 stk-theme_46128__color_46128_custom_color_2 stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Assessment Criteria for Open Source Software</strong></p><p class=\"stk-theme_46128__style_small_text stk-reset stk-theme_46128__mb_0\" data-ce-tag=\"paragraph\">According to&nbsp;IGI-Global, “Since the code is&nbsp;available to&nbsp;everybody it&nbsp;<a href=\"https://www.igi-global.com/chapter/open-source-assessment-methodologies/36509\" target=\"_blank\" class=\"stk-reset\">can be&nbsp;reviewed and assessed</a> by&nbsp;using traditional methodologies that measure the level of&nbsp;understanding, completeness, conciseness, portability, consistency, maintainability, testability, usability, reliability, structuredness and efficiency. These assessments can be&nbsp;done by&nbsp;everybody who is&nbsp;interested in&nbsp;the quality of&nbsp;the OSS.”</p></div></div></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Choices need to&nbsp;be&nbsp;made.</p><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"4\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><p class=\"stk-reset stk-theme_46128__style_font_style-1663330643602 stk-theme_46128__color_46128_custom_color_2 stk-theme_46128__mb_05\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">— Innovation.</strong></p><p class=\"stk-reset stk-theme_46128__style_font_style-1663330643602 stk-theme_46128__color_46128_custom_color_2 stk-theme_46128__mb_05\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">— Technical Debt.</strong></p><p class=\"stk-reset stk-theme_46128__style_font_style-1663330643602 stk-theme_46128__color_46128_custom_color_2\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">—</strong>&nbsp;<strong class=\"stk-reset\">Speed-to-market.</strong></p></div><div data-col-width=\"4\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset stk-theme_46128__style_font_style-1663330643602 stk-theme_46128__color_46128_custom_color_2 stk-theme_46128__mb_05\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">— Open source.</strong></p><p class=\"stk-reset stk-theme_46128__style_font_style-1663330643602 stk-theme_46128__color_46128_custom_color_2 stk-theme_46128__mb_05\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">— Buy. Build.</strong></p><p class=\"stk-reset stk-theme_46128__style_font_style-1663330643602 stk-theme_46128__color_46128_custom_color_2 stk-theme_46128__mb_05\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">— Assemble.</strong></p></div></div><p class=\"stk-reset\" data-ce-tag=\"paragraph\">The companies focused on&nbsp;rapid transformation, have already made the choice: swift innovation and continuous deployment. And they’re growing. Fast.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">By&nbsp;using specialist components.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Rapid-fire changes in&nbsp;customer expectations, business models and technology, are accelerating the pressure on&nbsp;companies to&nbsp;innovate. And the death and decay of&nbsp;countless big innovators (Blackberry, Kodak and Netscape) are constant reminders that even big, successful companies can and do&nbsp;disappear. Easily.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Roughly a&nbsp;<a href=\"http://ganchase.com/institute/research/small-business/small-business-dashboard/longevity\" target=\"_blank\" class=\"stk-reset\" data-gtm-vis-has-fired-10171822_255=\"1\">third of&nbsp;new businesses exit within their first two years</a>, and half exit within their first five years. Even the <a href=\"https://www.statista.com/statistics/1259275/average-company-lifespan/#:~:text=In%202020%2C%20the%20average%20lifespan,even%20further%20throughout%20the%202020s.\" target=\"_blank\" class=\"stk-reset\" data-gtm-vis-has-fired-10171822_255=\"1\">average lifespan of&nbsp;S&amp;P&nbsp;500&nbsp;companies</a> has dropped from 75 (1950s) to&nbsp;19&nbsp;years (2022) and continues to&nbsp;fall.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">So&nbsp;it’s innovate or&nbsp;be&nbsp;replaced. But how do&nbsp;you know who to&nbsp;trust?</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">In&nbsp;every development project, <a class=\"stk-reset\" href=\"https://www.tiny.cloud/software-evaluation-criteria-checklist/\" target=\"_blank\">software evaluation</a> is&nbsp;a&nbsp;critical piece of&nbsp;the puzzle&nbsp;— whether you’re using open source or&nbsp;third-party closed components. It’s a&nbsp;tricky balancing act between hard objectivity and subjective (but valid) individual user experience.</p><p class=\"stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\">Here’s some thought-starters. For open source components, evaluation criteria that are often used:</p><div class=\"stk-theme_46128__mb_05 stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col align-right align-left-m\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">1.</p></div><div data-col-width=\"1\" class=\"stk-grid-col\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\"/></div><div data-col-width=\"6\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">The number of developers working on the OSS</p></div></div><div class=\"stk-grid stk-theme_46128__mb_05\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col align-right align-left-m\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">2.</p></div><div data-col-width=\"1\" class=\"stk-grid-col\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\"/></div><div data-col-width=\"6\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">The number of downloads of the software</p></div></div><div class=\"stk-grid stk-theme_46128__mb_05\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col align-right align-left-m\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">3.</p></div><div data-col-width=\"1\" class=\"stk-grid-col\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\"/></div><div data-col-width=\"6\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">The developer’s satisfaction</p></div></div><div class=\"stk-grid stk-theme_46128__mb_05\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col align-right align-left-m\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">4.</p></div><div data-col-width=\"1\" class=\"stk-grid-col\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\"/></div><div data-col-width=\"6\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">The level of activity on the project</p></div></div><div class=\"stk-grid stk-theme_46128__mb_05\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col align-right align-left-m\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">5.</p></div><div data-col-width=\"1\" class=\"stk-grid-col\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\"/></div><div data-col-width=\"6\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">The time between consequent releases</p></div></div><div class=\"stk-grid stk-theme_46128__mb_05\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col align-right align-left-m\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">6.</p></div><div data-col-width=\"1\" class=\"stk-grid-col\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\"/></div><div data-col-width=\"6\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">The time to close bugs</p></div></div><div class=\"stk-grid stk-theme_46128__mb_05\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col align-right align-left-m\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">7.</p></div><div data-col-width=\"1\" class=\"stk-grid-col\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\"/></div><div data-col-width=\"6\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">The security protocols in place</p></div></div><div class=\"stk-grid stk-theme_46128__mb_05\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col align-right align-left-m\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">8.</p></div><div data-col-width=\"1\" class=\"stk-grid-col\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\"/></div><div data-col-width=\"6\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">The reputation in the community</p></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col align-right align-left-m\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">9.</p></div><div data-col-width=\"1\" class=\"stk-grid-col\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\"/></div><div data-col-width=\"6\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">The quality control processes used</p></div></div><p class=\"stk-reset\" data-ce-tag=\"paragraph\">These are added to&nbsp;the characteristics you already use to&nbsp;measure closed source software.</p><p class=\"stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\">Other areas to&nbsp;consider when evaluating both open and closed components:</p><ul class=\"stk-reset\" data-ce-tag=\"list\"><li class=\"stk-reset stk-list-item\" data-ce-tag=\"list-item\">Is&nbsp;the development team familiar with the technology?</li><li class=\"stk-reset stk-list-item\" data-ce-tag=\"list-item\">Are large enterprises using the technology (ie. Fortune 500)?</li><li class=\"stk-reset stk-list-item\" data-ce-tag=\"list-item\">Does the technology provide features that do&nbsp;not currently exist?</li><li class=\"stk-reset stk-list-item\" data-ce-tag=\"list-item\">Does the technology have a&nbsp;strong capital backing (&gt; USD$20M) or&nbsp;is&nbsp;it&nbsp;backed by&nbsp;a&nbsp;global corporation (Facebook, Google, IBM, Apple)?</li><li class=\"stk-reset stk-list-item\" data-ce-tag=\"list-item\">At&nbsp;what speed is&nbsp;the technology growing?</li><li class=\"stk-reset stk-list-item\" data-ce-tag=\"list-item\">How much interest has been received from users?</li><li class=\"stk-reset stk-list-item\" data-ce-tag=\"list-item\">How much interest has been received from the community?</li><li class=\"stk-reset stk-list-item\" data-ce-tag=\"list-item\">How popular is&nbsp;the technology with the number of&nbsp;stars on&nbsp;GitHub (if&nbsp;applicable)?</li><li class=\"stk-reset stk-list-item\" data-ce-tag=\"list-item\">Is&nbsp;there a&nbsp;partnership that can be&nbsp;developed with the technology?</li><li class=\"stk-reset stk-list-item\" data-ce-tag=\"list-item\">Will this be&nbsp;an&nbsp;open-source project?</li><li class=\"stk-reset stk-list-item\" data-ce-tag=\"list-item\">Does the technology allow us&nbsp;to&nbsp;provide features that do&nbsp;not currently exist?</li><li class=\"stk-reset stk-list-item\" data-ce-tag=\"list-item\">Have sales or&nbsp;existing users been lost, because of&nbsp;the lack of&nbsp;this technology?</li><li class=\"stk-reset stk-list-item\" data-ce-tag=\"list-item\">What type of&nbsp;feature (business model) will this&nbsp;be?</li><li class=\"stk-reset stk-list-item\" data-ce-tag=\"list-item\">How long will it&nbsp;take to&nbsp;build an&nbsp;MVP of&nbsp;the technology?</li><li class=\"stk-reset stk-list-item\" data-ce-tag=\"list-item\">How long will it&nbsp;take to&nbsp;build version 1.0 of&nbsp;the technology?</li></ul><p class=\"stk-theme_46128__mb_05 stk-reset\" data-ce-tag=\"paragraph\">Having an&nbsp;established process helps to&nbsp;minimize the unseen technical debt and code decay you’re taking on, while still allowing you to&nbsp;rapidly jump-start your innovation programs.&nbsp;Incorporate the following seven areas into that process:</p><div class=\"stk-theme_46128__mb_05 stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col align-right align-left-m\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">1.</p></div><div data-col-width=\"1\" class=\"stk-grid-col\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\"/></div><div data-col-width=\"6\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Clear in-house process for vetting and pre-approving components (eg. Software Bill of Materials, SBoM)</p></div></div><div class=\"stk-theme_46128__mb_05 stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col align-right align-left-m\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">2.</p></div><div data-col-width=\"1\" class=\"stk-grid-col\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\"/></div><div data-col-width=\"6\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Ongoing monitoring (eg. automated visibility and control of the components)</p></div></div><div class=\"stk-theme_46128__mb_05 stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col align-right align-left-m\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">3.</p></div><div data-col-width=\"1\" class=\"stk-grid-col\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\"/></div><div data-col-width=\"6\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Reusable tech stack composed of pre-approved and vetted components (eg. cataloguing and building repositories)</p></div></div><div class=\"stk-theme_46128__mb_05 stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col align-right align-left-m\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">4.</p></div><div data-col-width=\"1\" class=\"stk-grid-col\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\"/></div><div data-col-width=\"6\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Clear licensing</p></div></div><div class=\"stk-theme_46128__mb_05 stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col align-right align-left-m\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">5.</p></div><div data-col-width=\"1\" class=\"stk-grid-col\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\"/></div><div data-col-width=\"6\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Security protocols</p></div></div><div class=\"stk-theme_46128__mb_05 stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col align-right align-left-m\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">6.</p></div><div data-col-width=\"1\" class=\"stk-grid-col\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\"/></div><div data-col-width=\"6\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">QC standards</p></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col align-right align-left-m\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">7.</p></div><div data-col-width=\"1\" class=\"stk-grid-col\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\"/></div><div data-col-width=\"6\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Service agreements</p></div></div><p class=\"stk-reset\" data-ce-tag=\"paragraph\">By&nbsp;curating a&nbsp;repository of&nbsp;vetted, pre-approved components and release versions (open source, purchased and subscribed), you’re minimizing security exposures, ongoing maintenance and technical debt accumulation. The components can be&nbsp;safely used and reused within your tech stack, across the enterprise.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">That allows development to&nbsp;quickly move more safely, and avoids last-minute blockers during a&nbsp;development cycle.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Returning to&nbsp;where we&nbsp;began, with the <a href=\"https://stripe.com/files/reports/the-developer-coefficient.pdf\" target=\"_blank\" class=\"stk-reset\">Stripe Developer Coefficient Report</a>, “…businesses need to&nbsp;better leverage their existing software engineering talent if&nbsp;they want to&nbsp;move faster, build new products, and tap into new and emerging trends.”</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Assembling pre-approved specialist components gives you the opportunity to&nbsp;safely walk the tightrope between technical debt and innovation.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">And it&nbsp;maximizes your opportunity cost.</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div></div></div><div class=\"stk-grid stk-theme_46128__mb_2\" data-ce-tag=\"grid\"><div data-col-width=\"12\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"1\" class=\"stk-grid-col valign-middle\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\" data-anim-m=\"false\" data-stk-css=\"stkSte7Z\" data-anim=\"true\" data-anim-name=\"preset-slideInLeft\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\">3.0</p></div><div data-col-width=\"2\" class=\"stk-grid-col valign-middle\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\" data-anim-m=\"false\" data-stk-css=\"stkSF9v3\" data-anim=\"true\" data-anim-name=\"preset-slideInLeft\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\"/></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><h2 class=\"stk-theme_46128__style_large_header stk-reset\" data-ce-tag=\"paragraph\" id=\"stk-3\" data-anim-m=\"false\" data-stk-css=\"stkV7AG7\" data-anim=\"true\" data-anim-name=\"preset-fadeIn\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\">The Unfortunate Truth</h2></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-reset\" data-ce-tag=\"paragraph\">This brings us&nbsp;to&nbsp;an&nbsp;unfortunate truth.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">An&nbsp;uncomfortable truth.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">That fully paying off your tech debt is&nbsp;highly unusual.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">And undesirable.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">The alternate story, within this white paper, describes a&nbsp;reinvention of&nbsp;your tech debt management&nbsp;— to&nbsp;help minimize your ‘owned’ technical debt.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">That way, you sidestep making your debt hole deeper.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">By&nbsp;tapping the domain expertise of&nbsp;specialists who’ve already perfected the technology you need, you avoid the trap of&nbsp;needlessly accruing tech debt. And the complex code and maintenance work that’s outside your strategic focus.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">It&nbsp;reduces risk, lifts morale and delivers positive value.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">By&nbsp;buying proven, reusable components that have built-in scalability, you’re creating reusable foundations for your future applications.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">And exponential growth.</p></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div></div></div><div class=\"stk-theme_46128__mb_3 stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"12\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><div class=\"stk-grid\" data-ce-tag=\"grid\"><div data-col-width=\"12\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\" data-anim-m=\"false\" data-stk-css=\"stkavxk-\" data-anim=\"true\" data-anim-name=\"preset-slideInRight\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\"/><div class=\"stk-grid\" data-anim-m=\"false\" data-stk-css=\"stkoBD7O\" data-anim=\"true\" data-anim-name=\"preset-fadeIn\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div><div data-col-width=\"8\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><p class=\"stk-theme_46128__style_accented_text align-center stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">Download a PDF of this white paper<br>and save it for later</strong></p><a class=\"stk-theme_46128__stk-btn_basic stk-theme_46128__style_font_style-1663332392241 align-center stk-reset\" data-stk-button=\"1\" data-ce-tag=\"button\" href=\"https://www.tiny.cloud/technical-debt-whitepaper-opt-in\" target=\"_blank\">Download</a></div><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><hr class=\"stk-theme_46128__separator_basic_divider stk-reset\" data-anim-m=\"false\" data-stk-css=\"stkUCzkN\" data-anim=\"true\" data-anim-name=\"preset-slideInLeft\" data-anim-trigger=\"scroll\" data-anim-duration=\"1\" data-anim-delay=\"0\" data-anim-scroll-start=\"10\" data-anim-scroll-finish=\"90\"/></div></div></div></div><div class=\"stk-grid stk-grid__layout_reverse\" data-ce-tag=\"grid\"><div data-col-width=\"3\" class=\"stk-grid-col valign-bottom stk-grid-col_last\" data-stk-css=\"\" data-stk-css-m=\"\" data-ce-tag=\"grid-col\"><div class=\"stk-grid stk-theme_46128__mb_05\" data-ce-tag=\"grid\"><div data-col-width=\"2\" class=\"stk-grid-col stk-grid-col_last\" data-ce-tag=\"grid-col\"><figure class=\"stk-reset stk-image-figure\" data-ce-tag=\"image-figure\" data-stk-css=\"stkumxHz\"><div class=\"stk-mask\" data-ce-tag=\"mask\"><img src=\"https://ucarecdn.com/99823c2a-7bbd-45c4-b960-01967b816309/\" data-image-id=\"196537\" data-image-name=\"Tiny logo.svg\" loading=\"lazy\" class=\"stk-image stk-reset\" width=\"640\" height=\"209\"/></div></figure></div><div data-col-width=\"1\" class=\"stk-grid-col stk-grid-col_empty\" data-ce-tag=\"grid-col\"><p class=\"ce-element--empty stk-element_no-text stk-reset\" data-ce-tag=\"paragraph\"></p></div></div><p class=\"stk-reset\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">© Tiny Technologies 2022</strong></p></div><div data-col-width=\"9\" class=\"stk-grid-col\" data-ce-tag=\"grid-col\"><p class=\"stk-reset stk-theme_46128__mb_05\" data-ce-tag=\"paragraph\"><strong class=\"stk-reset\">TINY TECHNOLOGIES</strong></p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">Tiny is&nbsp;the creator of&nbsp;<strong class=\"stk-reset\">TinyMCE</strong>, the world’s most trusted WYSIWYG component that enables rich text editing capabilities within an&nbsp;application. Scalable, adaptable and reusable, it&nbsp;powers 100M+ projects worldwide and more than 1.5M+ developers use it&nbsp;to&nbsp;add velocity to&nbsp;their tech stacks, so&nbsp;they can build and ship their projects faster.</p><p class=\"stk-reset\" data-ce-tag=\"paragraph\">There’s tens of&nbsp;thousands of&nbsp;market-leading applications powered by&nbsp;Tiny globally. It’s helped SaaS companies, large enterprises, content creators and publishers to&nbsp;launch, grow and scale their businesses, reduce their development and technical debt burdens, minimize ongoing support tickets and boost the productivity of&nbsp;their users.</p></div></div><style data-stk-css=\"stkavxk-\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkavxk-\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stkoBD7O\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkoBD7O\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stkUCzkN\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkUCzkN\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stkR1uJV\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkR1uJV\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stkShTUC\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkShTUC\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stkg4vhf\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkg4vhf\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stk48glI\" class=\"\" media=\"all\">\n  [data-stk-css=\"stk48glI\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stkbPXxF\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkbPXxF\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stktJoh8\" class=\"\" media=\"all\">\n  [data-stk-css=\"stktJoh8\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stkv_hVB\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkv_hVB\"]:not(#stk):not(#stk):not(style) {\n    border-bottom: 1px solid #4D66CB\n  }\n</style><style data-stk-css=\"stkKzVlO\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkKzVlO\"]:not(#stk):not(#stk):not(style) {\n    padding: 5px 10px\n  }\n</style><style data-stk-css=\"stk93Dn8\" class=\"\" media=\"all\">\n  [data-stk-css=\"stk93Dn8\"]:not(#stk):not(#stk):not(style) {\n    background-color: #00C0CD\n  }\n</style><style data-stk-css=\"stkK4hvw\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkK4hvw\"]:not(#stk):not(#stk):not(style) {\n    padding: 5px 10px\n  }\n</style><style data-stk-css=\"stkHX0EE\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkHX0EE\"]:not(#stk):not(#stk):not(style) {\n    width: 180px;\n    align-self: center\n  }\n</style><style data-stk-css=\"stkRHRk6\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkRHRk6\"]:not(#stk):not(#stk):not(style) {\n    padding: 0px 10px 10px\n  }\n</style><style data-stk-css=\"stkLuYFg\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkLuYFg\"]:not(#stk):not(#stk):not(style) {\n    border-bottom: 1px solid #4D66CB\n  }\n</style><style data-stk-css=\"stkyCw3Q\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkyCw3Q\"]:not(#stk):not(#stk):not(style) {\n    padding: 5px 10px\n  }\n</style><style data-stk-css=\"stk5I6rM\" class=\"\" media=\"all\">\n  [data-stk-css=\"stk5I6rM\"]:not(#stk):not(#stk):not(style) {\n    background-color: #00C0CD\n  }\n</style><style data-stk-css=\"stkWTwj5\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkWTwj5\"]:not(#stk):not(#stk):not(style) {\n    padding: 5px 10px\n  }\n</style><style data-stk-css=\"stkHJuxK\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkHJuxK\"]:not(#stk):not(#stk):not(style) {\n    width: 180px;\n    align-self: center\n  }\n</style><style data-stk-css=\"stklBd2H\" class=\"\" media=\"all\">\n  [data-stk-css=\"stklBd2H\"]:not(#stk):not(#stk):not(style) {\n    padding: 0px 10px 10px\n  }\n</style><style data-stk-css=\"stklevfM\" class=\"\" media=\"all\">\n  [data-stk-css=\"stklevfM\"]:not(#stk):not(#stk):not(style) {\n    border-bottom: 1px solid #4D66CB\n  }\n</style><style data-stk-css=\"stk_ZPps\" class=\"\" media=\"all\">\n  [data-stk-css=\"stk_ZPps\"]:not(#stk):not(#stk):not(style) {\n    padding: 5px 10px\n  }\n</style><style data-stk-css=\"stkZqJOe\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkZqJOe\"]:not(#stk):not(#stk):not(style) {\n    background-color: #00C0CD\n  }\n</style><style data-stk-css=\"stkpuimQ\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkpuimQ\"]:not(#stk):not(#stk):not(style) {\n    padding: 5px 10px\n  }\n</style><style data-stk-css=\"stkk5ear\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkk5ear\"]:not(#stk):not(#stk):not(style) {\n    width: 180px;\n    align-self: center\n  }\n</style><style data-stk-css=\"stkKSbMF\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkKSbMF\"]:not(#stk):not(#stk):not(style) {\n    padding: 0px 10px 10px\n  }\n</style><style data-stk-css=\"stkM2xRl\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkM2xRl\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(241, 247, 248, 1)\n  }\n</style><style data-stk-css=\"stkA3dWL\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkA3dWL\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(241, 247, 248, 1)\n  }\n</style><style data-stk-css=\"stkxGU5L\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkxGU5L\"]:not(#stk):not(#stk):not(style) {\n    padding-left: 30px\n  }\n</style><style data-stk-css=\"stkx7L5i\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkx7L5i\"]:not(#stk):not(#stk):not(style) {\n    padding-left: 30px\n  }\n</style><style data-stk-css=\"stkEtOy9\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkEtOy9\"]:not(#stk):not(#stk):not(style) {\n    padding-left: 30px\n  }\n</style><style data-stk-css=\"stkNjveP\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkNjveP\"]:not(#stk):not(#stk):not(style) {\n    padding-left: 30px\n  }\n</style><style data-stk-css=\"stksURfI\" class=\"\" media=\"all\">\n  [data-stk-css=\"stksURfI\"]:not(#stk):not(#stk):not(style) {\n    padding-left: 30px\n  }\n</style><style data-stk-css=\"stkgXYcT\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkgXYcT\"]:not(#stk):not(#stk):not(style) {\n    padding-left: 30px\n  }\n</style><style data-stk-css=\"stkAM1WH\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkAM1WH\"]:not(#stk):not(#stk):not(style) {\n    padding-right: 30px\n  }\n</style><style data-stk-css=\"stkCQ_x6\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkCQ_x6\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(255, 255, 255, 1)\n  }\n</style><style data-stk-css=\"stkZQiye\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkZQiye\"]:not(#stk):not(#stk):not(style) {\n    padding-left: 30px\n  }\n</style><style data-stk-css=\"stkE2n71\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkE2n71\"]:not(#stk):not(#stk):not(style) {\n    padding-left: 30px\n  }\n</style><style data-stk-css=\"stkX3-CN\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkX3-CN\"]:not(#stk):not(#stk):not(style) {\n    padding-left: 30px\n  }\n</style><style data-stk-css=\"stkV8WuT\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkV8WuT\"]:not(#stk):not(#stk):not(style) {\n    padding-right: 30px\n  }\n</style><style data-stk-css=\"stk2oG1U\" class=\"\" media=\"all\">\n  [data-stk-css=\"stk2oG1U\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(255, 255, 255, 1)\n  }\n</style><style data-stk-css=\"stk0sYv1\" class=\"\" media=\"all\">\n  [data-stk-css=\"stk0sYv1\"]:not(#stk):not(#stk):not(style) {\n    padding-left: 30px\n  }\n</style><style data-stk-css=\"stkwcADB\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkwcADB\"]:not(#stk):not(#stk):not(style) {\n    padding-left: 30px\n  }\n</style><style data-stk-css=\"stkIewLq\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkIewLq\"]:not(#stk):not(#stk):not(style) {\n    padding-left: 30px\n  }\n</style><style data-stk-css=\"stkgTDHX\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkgTDHX\"]:not(#stk):not(#stk):not(style) {\n    padding-left: 30px\n  }\n</style><style data-stk-css=\"stkJB5BN\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkJB5BN\"]:not(#stk):not(#stk):not(style) {\n    padding-left: 30px\n  }\n</style><style data-stk-css=\"stkZhXZ9\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkZhXZ9\"]:not(#stk):not(#stk):not(style) {\n    padding-left: 30px\n  }\n</style><style data-stk-css=\"stkwp6nT\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkwp6nT\"]:not(#stk):not(#stk):not(style) {\n    padding-right: 30px\n  }\n</style><style data-stk-css=\"stkEbehR\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkEbehR\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(255, 255, 255, 1)\n  }\n</style><style data-stk-css=\"stkBMiPB\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkBMiPB\"]:not(#stk):not(#stk):not(style) {\n    padding-left: 30px\n  }\n</style><style data-stk-css=\"stkwzBEo\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkwzBEo\"]:not(#stk):not(#stk):not(style) {\n    padding-left: 30px\n  }\n</style><style data-stk-css=\"stkjjgyH\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkjjgyH\"]:not(#stk):not(#stk):not(style) {\n    padding-left: 30px\n  }\n</style><style data-stk-css=\"stkHXHTU\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkHXHTU\"]:not(#stk):not(#stk):not(style) {\n    padding-left: 30px\n  }\n</style><style data-stk-css=\"stkdxmgM\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkdxmgM\"]:not(#stk):not(#stk):not(style) {\n    padding-left: 30px\n  }\n</style><style data-stk-css=\"stkUX4im\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkUX4im\"]:not(#stk):not(#stk):not(style) {\n    padding-right: 30px\n  }\n</style><style data-stk-css=\"stkbLkGM\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkbLkGM\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(255, 255, 255, 1)\n  }\n</style><style data-stk-css=\"stkR8m8B\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkR8m8B\"]:not(#stk):not(#stk):not(style) {\n    padding-left: 30px\n  }\n</style><style data-stk-css=\"stkwwhEY\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkwwhEY\"]:not(#stk):not(#stk):not(style) {\n    padding-left: 30px\n  }\n</style><style data-stk-css=\"stkTJcWj\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkTJcWj\"]:not(#stk):not(#stk):not(style) {\n    padding-left: 30px\n  }\n</style><style data-stk-css=\"stkOlmYV\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkOlmYV\"]:not(#stk):not(#stk):not(style) {\n    padding-left: 30px\n  }\n</style><style data-stk-css=\"stk1M8f7\" class=\"\" media=\"all\">\n  [data-stk-css=\"stk1M8f7\"]:not(#stk):not(#stk):not(style) {\n    padding-left: 30px\n  }\n</style><style data-stk-css=\"stkGR7gZ\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkGR7gZ\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(207, 227, 230, 1)\n  }\n</style><style data-stk-css=\"stkva-Ev\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkva-Ev\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(207, 227, 230, 1)\n  }\n</style><style data-stk-css=\"stk-EFci\" class=\"\" media=\"all\">\n  [data-stk-css=\"stk-EFci\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(207, 227, 230, 1)\n  }\n</style><style data-stk-css=\"stkwmMZX\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkwmMZX\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(207, 227, 230, 1)\n  }\n</style><style data-stk-css=\"stkSTowR\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkSTowR\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(207, 227, 230, 1)\n  }\n</style><style data-stk-css=\"stkA3QnI\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkA3QnI\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(207, 227, 230, 1);\n    border-radius: 4px\n  }\n</style><style data-stk-css=\"stkAhpJ-\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkAhpJ-\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stk4ZhpJ\" class=\"\" media=\"all\">\n  [data-stk-css=\"stk4ZhpJ\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(207, 227, 230, 1)\n  }\n</style><style data-anim-name=\"preset-slideInLeft\" media=\"screen and (min-width: 768px)\" class=\"\">\n  .stk-post [data-anim-name=\"preset-slideInLeft\"]:not(#stk):not([data-anim=\"false\"]) {\n    transform: translate3d(-100%, 0, 0)\n  }\n</style><style data-anim-name=\"preset-slideInLeft\" media=\"screen and (max-width: 767px)\" class=\"\">\n  .stk-post [data-anim-name=\"preset-slideInLeft\"]:not(#stk):not([data-anim-m]),\n  .stk-post [data-anim-name=\"preset-slideInLeft\"]:not(#stk):not([data-anim-m=\"false\"]) {\n    transform: translate3d(-100%, 0, 0)\n  }\n</style><script data-anim-name=\"preset-slideInLeft\" type=\"application/json\" class=\"\">\n  {\n    \"keyframes\": [{\n      \"transform\": \"translate3d(-100%, 0, 0)\",\n      \"offset\": 0\n    }, {\n      \"transform\": \"none\",\n      \"offset\": 1\n    }],\n    \"options\": {\n      \"id\": \"preset-slideInLeft\",\n      \"delay\": 0,\n      \"duration\": 1000\n    }\n  }\n</script><style data-anim-name=\"preset-slideInRight\" media=\"screen and (min-width: 768px)\" class=\"\">\n  .stk-post [data-anim-name=\"preset-slideInRight\"]:not(#stk):not([data-anim=\"false\"]) {\n    transform: translate3d(100%, 0, 0)\n  }\n</style><style data-anim-name=\"preset-slideInRight\" media=\"screen and (max-width: 767px)\" class=\"\">\n  .stk-post [data-anim-name=\"preset-slideInRight\"]:not(#stk):not([data-anim-m]),\n  .stk-post [data-anim-name=\"preset-slideInRight\"]:not(#stk):not([data-anim-m=\"false\"]) {\n    transform: translate3d(100%, 0, 0)\n  }\n</style><script data-anim-name=\"preset-slideInRight\" type=\"application/json\" class=\"\">\n  {\n    \"keyframes\": [{\n      \"transform\": \"translate3d(100%, 0, 0)\",\n      \"offset\": 0\n    }, {\n      \"transform\": \"none\",\n      \"offset\": 1\n    }],\n    \"options\": {\n      \"id\": \"preset-slideInRight\",\n      \"delay\": 0,\n      \"duration\": 1000\n    }\n  }\n</script><script data-anim-name=\"preset-fadeIn\" type=\"application/json\" class=\"\">\n  {\n    \"keyframes\": [{\n      \"opacity\": 0,\n      \"offset\": 0\n    }, {\n      \"opacity\": 1,\n      \"offset\": 1\n    }],\n    \"options\": {\n      \"id\": \"preset-fadeIn\",\n      \"delay\": 0,\n      \"duration\": 1000\n    }\n  }\n</script><style data-stk-css=\"stkwG0qH\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkwG0qH\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stkwHwea\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkwHwea\"]:not(#stk):not(#stk):not(style) {\n    padding-bottom: 20px\n  }\n</style><style data-stk-css=\"stkqZqyy\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkqZqyy\"]:not(#stk):not(#stk):not(style) {\n    width: 130px\n  }\n</style><style data-stk-css=\"stkumxHz\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkumxHz\"]:not(#stk):not(#stk):not(style) {\n    width: 100px\n  }\n</style><style data-stk-css=\"stkaRhB5\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkaRhB5\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(241, 247, 248, 1)\n  }\n</style><style data-stk-css=\"stkFQS5T\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkFQS5T\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(255, 255, 255, 1)\n  }\n</style><style data-stk-css=\"stk_V7zH\" class=\"\" media=\"all\">\n  [data-stk-css=\"stk_V7zH\"]:not(#stk):not(#stk):not(style) {\n    padding-left: 30px\n  }\n</style><style data-stk-css=\"stkpyzpI\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkpyzpI\"]:not(#stk):not(#stk):not(style) {\n    padding-left: 30px\n  }\n</style><style data-stk-css=\"stkWGowF\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkWGowF\"]:not(#stk):not(#stk):not(style) {\n    padding-right: 30px\n  }\n</style><style data-stk-css=\"stk7Wkes\" class=\"\" media=\"all\">\n  [data-stk-css=\"stk7Wkes\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(241, 247, 248, 1)\n  }\n</style><style data-stk-css=\"stklg4Ac\" class=\"\" media=\"all\">\n  [data-stk-css=\"stklg4Ac\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(241, 247, 248, 1)\n  }\n</style><style data-stk-css=\"stkV1fe2\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkV1fe2\"]:not(#stk):not(#stk):not(style) {\n    background-color: rgba(241, 241, 241, 1)\n  }\n</style><style data-stk-css=\"stkbZFSO\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkbZFSO\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stk7neDH\" class=\"\" media=\"all\">\n  [data-stk-css=\"stk7neDH\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stkQ0hJC\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkQ0hJC\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stkxTwXS\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkxTwXS\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stk2luzn\" class=\"\" media=\"all\">\n  [data-stk-css=\"stk2luzn\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stkA3dFw\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkA3dFw\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stky_iDK\" class=\"\" media=\"all\">\n  [data-stk-css=\"stky_iDK\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stk5uoo-\" class=\"\" media=\"all\">\n  [data-stk-css=\"stk5uoo-\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stkji4Vw\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkji4Vw\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stkgUUAm\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkgUUAm\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stk8rLdj\" class=\"\" media=\"all\">\n  [data-stk-css=\"stk8rLdj\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stkAyilq\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkAyilq\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-anim-name=\"bcIJE\" media=\"screen and (min-width: 768px)\" class=\"\">\n  .stk-post [data-anim-name=\"bcIJE\"]:not(#stk):not([data-anim=\"false\"]) {\n    transform: translateY(60px)\n  }\n</style><style data-anim-name=\"bcIJE\" media=\"screen and (max-width: 767px)\" class=\"\">\n  .stk-post [data-anim-name=\"bcIJE\"]:not(#stk):not([data-anim-m]),\n  .stk-post [data-anim-name=\"bcIJE\"]:not(#stk):not([data-anim-m=\"false\"]) {\n    transform: translateY(60px)\n  }\n</style><script type=\"application/json\" data-anim-name=\"bcIJE\" class=\"\">\n  {\n    \"keyframes\": [{\n      \"transform\": \"translateY(60px)\"\n    }, {\n      \"transform\": \"none\"\n    }],\n    \"options\": {\n      \"id\": \"bcIJE\",\n      \"delay\": 0,\n      \"duration\": 600.0000000000001\n    }\n  }\n</script><style data-stk-css=\"stku4CFB\" class=\"\" media=\"all\">\n  [data-stk-css=\"stku4CFB\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stk13Zk0\" class=\"\" media=\"all\">\n  [data-stk-css=\"stk13Zk0\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stkoEvzh\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkoEvzh\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-anim-name=\"gfDxb\" media=\"screen and (min-width: 768px)\" class=\"\">\n  .stk-post [data-anim-name=\"gfDxb\"]:not(#stk):not([data-anim=\"false\"]) {\n    transform: translateY(60px)\n  }\n</style><style data-anim-name=\"gfDxb\" media=\"screen and (max-width: 767px)\" class=\"\">\n  .stk-post [data-anim-name=\"gfDxb\"]:not(#stk):not([data-anim-m]),\n  .stk-post [data-anim-name=\"gfDxb\"]:not(#stk):not([data-anim-m=\"false\"]) {\n    transform: translateY(60px)\n  }\n</style><script type=\"application/json\" data-anim-name=\"gfDxb\" class=\"\">\n  {\n    \"keyframes\": [{\n      \"transform\": \"translateY(60px)\"\n    }, {\n      \"transform\": \"none\"\n    }],\n    \"options\": {\n      \"id\": \"gfDxb\",\n      \"delay\": 0,\n      \"duration\": 1000\n    }\n  }\n</script><style data-stk-css=\"stkjlDZf\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkjlDZf\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stklZ0Pi\" class=\"\" media=\"all\">\n  [data-stk-css=\"stklZ0Pi\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stkHnmnC\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkHnmnC\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-anim-name=\"Sxcwb\" media=\"screen and (min-width: 768px)\" class=\"\">\n  .stk-post [data-anim-name=\"Sxcwb\"]:not(#stk):not([data-anim=\"false\"]) {\n    transform: translateY(60px)\n  }\n</style><style data-anim-name=\"Sxcwb\" media=\"screen and (max-width: 767px)\" class=\"\">\n  .stk-post [data-anim-name=\"Sxcwb\"]:not(#stk):not([data-anim-m]),\n  .stk-post [data-anim-name=\"Sxcwb\"]:not(#stk):not([data-anim-m=\"false\"]) {\n    transform: translateY(60px)\n  }\n</style><script type=\"application/json\" data-anim-name=\"Sxcwb\" class=\"\">\n  {\n    \"keyframes\": [{\n      \"transform\": \"translateY(60px)\"\n    }, {\n      \"transform\": \"none\"\n    }],\n    \"options\": {\n      \"id\": \"Sxcwb\",\n      \"delay\": 0,\n      \"duration\": 1000\n    }\n  }\n</script><style data-stk-css=\"stkiP0tk\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkiP0tk\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stkbmWnj\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkbmWnj\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stk8zlrd\" class=\"\" media=\"all\">\n  [data-stk-css=\"stk8zlrd\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stkfm7I2\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkfm7I2\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stkcmyHG\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkcmyHG\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stk3crA9\" class=\"\" media=\"all\">\n  [data-stk-css=\"stk3crA9\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stkB3WVo\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkB3WVo\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stkYc-5r\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkYc-5r\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stk4nm0l\" class=\"\" media=\"all\">\n  [data-stk-css=\"stk4nm0l\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stkbWM_q\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkbWM_q\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-anim-name=\"VJpPf\" media=\"screen and (min-width: 768px)\" class=\"\">\n  .stk-post [data-anim-name=\"VJpPf\"]:not(#stk):not([data-anim=\"false\"]) {\n    transform: translateY(60px)\n  }\n</style><style data-anim-name=\"VJpPf\" media=\"screen and (max-width: 767px)\" class=\"\">\n  .stk-post [data-anim-name=\"VJpPf\"]:not(#stk):not([data-anim-m]),\n  .stk-post [data-anim-name=\"VJpPf\"]:not(#stk):not([data-anim-m=\"false\"]) {\n    transform: translateY(60px)\n  }\n</style><script type=\"application/json\" data-anim-name=\"VJpPf\" class=\"\">\n  {\n    \"keyframes\": [{\n      \"transform\": \"translateY(60px)\"\n    }, {\n      \"transform\": \"none\"\n    }],\n    \"options\": {\n      \"id\": \"VJpPf\",\n      \"delay\": 0,\n      \"duration\": 1000\n    }\n  }\n</script><style data-stk-css=\"stk5Ssi5\" class=\"\" media=\"all\">\n  [data-stk-css=\"stk5Ssi5\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stk-fohc\" class=\"\" media=\"all\">\n  [data-stk-css=\"stk-fohc\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stkTrklU\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkTrklU\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stkeTMax\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkeTMax\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-anim-name=\"XpFyx\" media=\"screen and (min-width: 768px)\" class=\"\">\n  .stk-post [data-anim-name=\"XpFyx\"]:not(#stk):not([data-anim=\"false\"]) {\n    transform: translateY(60px)\n  }\n</style><style data-anim-name=\"XpFyx\" media=\"screen and (max-width: 767px)\" class=\"\">\n  .stk-post [data-anim-name=\"XpFyx\"]:not(#stk):not([data-anim-m]),\n  .stk-post [data-anim-name=\"XpFyx\"]:not(#stk):not([data-anim-m=\"false\"]) {\n    transform: translateY(60px)\n  }\n</style><script type=\"application/json\" data-anim-name=\"XpFyx\" class=\"\">\n  {\n    \"keyframes\": [{\n      \"transform\": \"translateY(60px)\"\n    }, {\n      \"transform\": \"none\"\n    }],\n    \"options\": {\n      \"id\": \"XpFyx\",\n      \"delay\": 0,\n      \"duration\": 1000\n    }\n  }\n</script><style data-stk-css=\"stkf2FI_\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkf2FI_\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-anim-name=\"tXNhk\" media=\"screen and (min-width: 768px)\" class=\"\">\n  .stk-post [data-anim-name=\"tXNhk\"]:not(#stk):not([data-anim=\"false\"]) {\n    transform: translateY(60px)\n  }\n</style><style data-anim-name=\"tXNhk\" media=\"screen and (max-width: 767px)\" class=\"\">\n  .stk-post [data-anim-name=\"tXNhk\"]:not(#stk):not([data-anim-m]),\n  .stk-post [data-anim-name=\"tXNhk\"]:not(#stk):not([data-anim-m=\"false\"]) {\n    transform: translateY(60px)\n  }\n</style><script type=\"application/json\" data-anim-name=\"tXNhk\" class=\"\">\n  {\n    \"keyframes\": [{\n      \"transform\": \"translateY(60px)\"\n    }, {\n      \"transform\": \"none\"\n    }],\n    \"options\": {\n      \"id\": \"tXNhk\",\n      \"delay\": 0,\n      \"duration\": 1000\n    }\n  }\n</script><style data-stk-css=\"stkX1fnb\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkX1fnb\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stkAWtnh\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkAWtnh\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stkNlVr2\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkNlVr2\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stk1w7pj\" class=\"\" media=\"all\">\n  [data-stk-css=\"stk1w7pj\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-anim-name=\"TpUpr\" media=\"screen and (min-width: 768px)\" class=\"\">\n  .stk-post [data-anim-name=\"TpUpr\"]:not(#stk):not([data-anim=\"false\"]) {\n    transform: translateY(60px)\n  }\n</style><style data-anim-name=\"TpUpr\" media=\"screen and (max-width: 767px)\" class=\"\">\n  .stk-post [data-anim-name=\"TpUpr\"]:not(#stk):not([data-anim-m]),\n  .stk-post [data-anim-name=\"TpUpr\"]:not(#stk):not([data-anim-m=\"false\"]) {\n    transform: translateY(60px)\n  }\n</style><script type=\"application/json\" data-anim-name=\"TpUpr\" class=\"\">\n  {\n    \"keyframes\": [{\n      \"transform\": \"translateY(60px)\"\n    }, {\n      \"transform\": \"none\"\n    }],\n    \"options\": {\n      \"id\": \"TpUpr\",\n      \"delay\": 0,\n      \"duration\": 1000\n    }\n  }\n</script><style data-stk-css=\"stkuAysl\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkuAysl\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stkr7WHC\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkr7WHC\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stkA_1wM\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkA_1wM\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-anim-name=\"zAVgy\" media=\"screen and (min-width: 768px)\" class=\"\">\n  .stk-post [data-anim-name=\"zAVgy\"]:not(#stk):not([data-anim=\"false\"]) {\n    transform: translateY(60px)\n  }\n</style><style data-anim-name=\"zAVgy\" media=\"screen and (max-width: 767px)\" class=\"\">\n  .stk-post [data-anim-name=\"zAVgy\"]:not(#stk):not([data-anim-m]),\n  .stk-post [data-anim-name=\"zAVgy\"]:not(#stk):not([data-anim-m=\"false\"]) {\n    transform: translateY(60px)\n  }\n</style><script type=\"application/json\" data-anim-name=\"zAVgy\" class=\"\">\n  {\n    \"keyframes\": [{\n      \"transform\": \"translateY(60px)\"\n    }, {\n      \"transform\": \"none\"\n    }],\n    \"options\": {\n      \"id\": \"zAVgy\",\n      \"delay\": 0,\n      \"duration\": 1000\n    }\n  }\n</script><style data-stk-css=\"stkSte7Z\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkSte7Z\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stkSF9v3\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkSF9v3\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stkV7AG7\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkV7AG7\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-anim-name=\"UEJMl\" media=\"screen and (min-width: 768px)\" class=\"\">\n  .stk-post [data-anim-name=\"UEJMl\"]:not(#stk):not([data-anim=\"false\"]) {\n    transform: translateY(60px)\n  }\n</style><style data-anim-name=\"UEJMl\" media=\"screen and (max-width: 767px)\" class=\"\">\n  .stk-post [data-anim-name=\"UEJMl\"]:not(#stk):not([data-anim-m]),\n  .stk-post [data-anim-name=\"UEJMl\"]:not(#stk):not([data-anim-m=\"false\"]) {\n    transform: translateY(60px)\n  }\n</style><script type=\"application/json\" data-anim-name=\"UEJMl\" class=\"\">\n  {\n    \"keyframes\": [{\n      \"transform\": \"translateY(60px)\"\n    }, {\n      \"transform\": \"none\"\n    }],\n    \"options\": {\n      \"id\": \"UEJMl\",\n      \"delay\": 0,\n      \"duration\": 600\n    }\n  }\n</script><style data-anim-name=\"buqXJ\" media=\"screen and (min-width: 768px)\" class=\"\">\n  .stk-post [data-anim-name=\"buqXJ\"]:not(#stk):not([data-anim=\"false\"]) {\n    transform: translateY(60px)\n  }\n</style><style data-anim-name=\"buqXJ\" media=\"screen and (max-width: 767px)\" class=\"\">\n  .stk-post [data-anim-name=\"buqXJ\"]:not(#stk):not([data-anim-m]),\n  .stk-post [data-anim-name=\"buqXJ\"]:not(#stk):not([data-anim-m=\"false\"]) {\n    transform: translateY(60px)\n  }\n</style><script type=\"application/json\" data-anim-name=\"buqXJ\" class=\"\">\n  {\n    \"keyframes\": [{\n      \"transform\": \"translateY(60px)\"\n    }, {\n      \"transform\": \"none\"\n    }],\n    \"options\": {\n      \"id\": \"buqXJ\",\n      \"delay\": 0,\n      \"duration\": 600\n    }\n  }\n</script><style data-stk-css=\"stkGTXXZ\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkGTXXZ\"]:not(#stk):not(#stk):not(style) {}\n</style><div class=\"stk-footnote stk-footnote--hide\" data-stk-show=\"mouseover\" data-stk-footnote-body=\"fn53j6t\" data-ce-tag=\"footnote\" style=\"display:none\"><div class=\"stk-footnote__close\"></div><div class=\"stk-footnote__body\"><p class=\"stk-theme_46128__style_small_text stk-reset\" data-ce-tag=\"paragraph\">1 Gastón Llanes, \"Technology sharing in open source\", Universidad Carlo III de Madrid, December 2007.</p></div></div><div class=\"stk-footnote stk-footnote--hide\" data-stk-show=\"mouseover\" data-stk-footnote-body=\"fnxkn6u\" data-ce-tag=\"footnote\" style=\"display:none\"><div class=\"stk-footnote__close\"></div><div class=\"stk-footnote__body\"><p class=\"stk-theme_46128__style_small_text stk-reset\" data-ce-tag=\"paragraph\">2 Windows Edge – descoped due to similarity to testing on Chrome</p></div></div><div class=\"stk-footnote stk-footnote--hide\" data-stk-show=\"mouseover\" data-stk-footnote-body=\"fnUu_0J\" data-ce-tag=\"footnote\" style=\"display:none\"><div class=\"stk-footnote__close\"></div><div class=\"stk-footnote__body\"><p class=\"stk-theme_46128__style_small_text stk-reset\" data-ce-tag=\"paragraph\">3 Semantic Versioning Specification</p></div></div><div class=\"stk-footnote stk-footnote--hide\" data-stk-show=\"mouseover\" data-stk-footnote-body=\"fnK5E9v\" data-ce-tag=\"footnote\" style=\"display:none\"><div class=\"stk-footnote__close\"></div><div class=\"stk-footnote__body\"><p class=\"stk-theme_46128__style_small_text stk-reset\" data-ce-tag=\"paragraph\">4 Total LOC includes 23085 LOC for the plugin itself, as well as 16751 LOC for the dependent libraries that are maintained ongoing, as part of the feature</p></div></div><style data-stk-css=\"stktSS3j\" class=\"\" media=\"all\">\n  [data-stk-css=\"stktSS3j\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stk8ssDX\" class=\"\" media=\"all\">\n  [data-stk-css=\"stk8ssDX\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-stk-css=\"stkV6vNO\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkV6vNO\"]:not(#stk):not(#stk):not(style) {}\n</style><div class=\"stk-footnote stk-footnote--hide\" data-stk-show=\"mouseover\" data-stk-footnote-body=\"fnY3f_u\" data-ce-tag=\"footnote\" style=\"display:none\"><div class=\"stk-footnote__close\"></div><div class=\"stk-footnote__body\"><p class=\"stk-theme_46128__style_small_text stk-reset\" data-ce-tag=\"paragraph\">1 These maps are generated using the <a href=\"https://github.com/erikbern/git-of-theseus\" target=\"_blank\" class=\"stk-reset\">Git of Theseus</a> project, and the code repositories of an advanced rich text editor and its plugins</p></div></div><style data-stk-css=\"stk-Zxc9\" class=\"\" media=\"all\">\n  [data-stk-css=\"stk-Zxc9\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-anim-name=\"NDUOK\" media=\"screen and (min-width: 768px)\" class=\"\">\n  .stk-post [data-anim-name=\"NDUOK\"]:not(#stk):not([data-anim=\"false\"]) {\n    transform: translateX(-40px)\n  }\n</style><style data-anim-name=\"NDUOK\" media=\"screen and (max-width: 767px)\" class=\"\">\n  .stk-post [data-anim-name=\"NDUOK\"]:not(#stk):not([data-anim-m]),\n  .stk-post [data-anim-name=\"NDUOK\"]:not(#stk):not([data-anim-m=\"false\"]) {\n    transform: translateX(-40px)\n  }\n</style><script type=\"application/json\" data-anim-name=\"NDUOK\" class=\"\">\n  {\n    \"keyframes\": [{\n      \"transform\": \"translateX(-40px)\"\n    }, {\n      \"transform\": \"none\"\n    }],\n    \"options\": {\n      \"id\": \"NDUOK\",\n      \"delay\": 0,\n      \"duration\": 800\n    }\n  }\n</script><style data-stk-css=\"stkPzZ4x\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkPzZ4x\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-anim-name=\"ppjML\" media=\"screen and (min-width: 768px)\" class=\"\">\n  .stk-post [data-anim-name=\"ppjML\"]:not(#stk):not([data-anim=\"false\"]) {\n    transform: translateX(-40px)\n  }\n</style><style data-anim-name=\"ppjML\" media=\"screen and (max-width: 767px)\" class=\"\">\n  .stk-post [data-anim-name=\"ppjML\"]:not(#stk):not([data-anim-m]),\n  .stk-post [data-anim-name=\"ppjML\"]:not(#stk):not([data-anim-m=\"false\"]) {\n    transform: translateX(-40px)\n  }\n</style><script type=\"application/json\" data-anim-name=\"ppjML\" class=\"\">\n  {\n    \"keyframes\": [{\n      \"transform\": \"translateX(-40px)\"\n    }, {\n      \"transform\": \"none\"\n    }],\n    \"options\": {\n      \"id\": \"ppjML\",\n      \"delay\": 0,\n      \"duration\": 800\n    }\n  }\n</script><style data-stk-css=\"stkHtzXN\" class=\"\" media=\"all\">\n  [data-stk-css=\"stkHtzXN\"]:not(#stk):not(#stk):not(style) {}\n</style><style data-anim-name=\"sCDES\" media=\"screen and (min-width: 768px)\" class=\"\">\n  .stk-post [data-anim-name=\"sCDES\"]:not(#stk):not([data-anim=\"false\"]) {\n    transform: translateX(-40px)\n  }\n</style><style data-anim-name=\"sCDES\" media=\"screen and (max-width: 767px)\" class=\"\">\n  .stk-post [data-anim-name=\"sCDES\"]:not(#stk):not([data-anim-m]),\n  .stk-post [data-anim-name=\"sCDES\"]:not(#stk):not([data-anim-m=\"false\"]) {\n    transform: translateX(-40px)\n  }\n</style><script type=\"application/json\" data-anim-name=\"sCDES\" class=\"\">\n  {\n    \"keyframes\": [{\n      \"transform\": \"translateX(-40px)\"\n    }, {\n      \"transform\": \"none\"\n    }],\n    \"options\": {\n      \"id\": \"sCDES\",\n      \"delay\": 0,\n      \"duration\": 800\n    }\n  }\n</script></div>","id":"eb3afe5a-de65-553f-843e-a647ac0367b4"}}},"pageContext":{"slug":"technical-debt-whitepaper","setkaPostId":25999}},"staticQueryHashes":["3504582416"]}