{"id":6262,"date":"2016-02-16T06:00:04","date_gmt":"2016-02-16T14:00:04","guid":{"rendered":"http:\/\/editor.thinkapps.com\/blog\/?p=6262"},"modified":"2016-02-15T18:17:48","modified_gmt":"2016-02-16T02:17:48","slug":"technical-debt-computation-top-tools","status":"publish","type":"post","link":"https:\/\/thinkapps.com\/blog\/development\/technical-debt-computation-top-tools\/","title":{"rendered":"Technical Debt Computation: Comparison of Top Tools"},"content":{"rendered":"<p><em>This is the third\u00a0post in our\u00a0<em><span style=\"text-decoration: underline;\"><a title=\"Technical Debt blog series\" href=\"http:\/\/thinkapps.com\/blog\/tag\/technical-debt\/\" target=\"_blank\">technical debt<\/a><\/span>\u00a0<\/em>series. We have\u00a0<span style=\"text-decoration: underline;\"><a title=\"Technical Debt 101\" href=\"http:\/\/thinkapps.com\/blog\/development\/technical-debt-definition-importance\/\" target=\"_blank\">explained what technical debt is<\/a><\/span>\u00a0and <span style=\"text-decoration: underline;\"><a title=\"How to Calculate Technical Debt and Express It Clearly\" href=\"http:\/\/thinkapps.com\/blog\/development\/technical-debt-calculation\/\" target=\"_blank\">explored different ways of calculating it<\/a><\/span>. Now we&#8217;ll examine tools that can assist with technical debt\u00a0computation.<\/em><\/p>\n<h2><span style=\"font-weight: 400;\">Introduction<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">In the\u00a0previous\u00a0posts, we discussed the definition\u00a0of technical debt,\u00a0its importance in any software system, and its affects on the lifecycle of a product. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">We also dived into some of the more technical aspects, explaining how technical debt can be expressed in man-days or currency. Finally, we briefly discovered how to calculate some important factors like test coverage and code complexity. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">It&#8217;s obvious that computing technical debt cannot rely\u00a0on a manual or ad-hoc process. Even if we assume that the computation of all factors affecting it can be done manually, it would take too long to get the technical debt measurement. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">In a practical sense, this means that, by the time\u00a0you have the numbers ready, they are already out of date because the codebase is a living object that\u00a0changes continuously. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Fortunately there are some tools that can handle all of\u00a0these computations automatically and give you\u00a0nice dashboards that clearly display\u00a0the technical debt of your software. <\/span><\/p>\n<h3><span style=\"font-weight: 400;\">In this post, we will present three of these technical debt computation tools and explain the most useful\u00a0features offered by each.<\/span><\/h3>\n<h2><span style=\"font-weight: 400;\">Evaluation Criteria<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">There are many tools that offer code quality analysis to some extent. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Some of them are focused only on particular programming languages. Others are primarily code review tools that provide automatic reviews for pull requests (via integration with popular source control management systems). There\u2019s also a third category that covers only a few of the technical debt factors.<\/span><\/p>\n<p>This series is about technical debt, so we filtered out any\u00a0tools that do not report directly on technical debt\u00a0(even if they calculate some of the metrics involved).<\/p>\n<p><span style=\"font-weight: 400;\">We also wanted to make this post language-agnostic and thus\u00a0excluded tools that do not cover the most popular programming languages (Java, JavaScript, C++, C#, PHP,\u00a0etc.). <\/span><\/p>\n<p><span style=\"font-weight: 400;\">The last criteria were ease of use and the existence of a web-interface and comprehensive dashboard that can be used by both technical and non-technical people. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">We were\u00a0surprised that only a few tools successfully passed our \u201ctests.\u201d We&#8217;d been hoping (deep inside) that the software industry was investing more on minimizing technical debt by creating tools to calculate it and help development teams improve their\u00a0code quality. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Still, the three tools\u00a0that we present in the next sections provide\u00a0all that is needed to effectively manage and reduce your technical debt.\u00a0<\/span><\/p>\n<p><a href=\"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/11171546\/sonarqube_logo_720.png\" rel=\"attachment wp-att-6296\"><img loading=\"lazy\" decoding=\"async\" width=\"720\" height=\"175\" class=\"alignnone size-full wp-image-6296\" src=\"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/11171546\/sonarqube_logo_720.png\" alt=\"Technical Debt Calculation Tools: SonarQube\" srcset=\"https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/11171546\/sonarqube_logo_720.png 720w, https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/11171546\/sonarqube_logo_720.png 300w\" sizes=\"(max-width: 720px) 100vw, 720px\" \/><\/a><\/p>\n<h2><span style=\"font-weight: 400;\">SonarQube<\/span><\/h2>\n<p><span style=\"font-weight: 400;\"><a title=\"SonarQube\" href=\"http:\/\/sonarqube.org\" target=\"_blank\">SonarQube<\/a>\u00a0<\/span><span style=\"font-weight: 400;\">(previously known as Sonar) <\/span><span style=\"font-weight: 400;\">is a free,\u00a0open source code quality management ecosystem that allows developer teams to manage, track, and eventually improve the quality of their codebases. \u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">It\u2019s a web-based application that maintains historical data and identifies\u00a0trends of leading and lagging indicators of a variety of quality metrics (including technical debt). <\/span><\/p>\n<p><span style=\"font-weight: 400;\">SonarQube can be <\/span><a title=\"Download SonarQube\" href=\"http:\/\/www.sonarqube.org\/downloads\/\" target=\"_blank\"><span style=\"font-weight: 400;\">downloaded<\/span><\/a><span style=\"font-weight: 400;\">, installed, and run locally in less than 10 minutes. There\u2019s no need to set up a database to evaluate its features nor are any other external dependencies needed, which\u00a0provides an excellent first impression. <\/span><\/p>\n<p><a title=\"Running Analysis via SonarQube\" href=\"http:\/\/docs.sonarqube.org\/display\/SONAR\/Analyzing+Source+Code#AnalyzingSourceCode-RunningAnalysis\" target=\"_blank\"><span style=\"font-weight: 400;\">Analyzing code<\/span><\/a><span style=\"font-weight: 400;\"> is extremely easy as the tool provides a plethora of ways to do it. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">If you are a Java house, simply download the plugin of your favorite build tool (e.g. Ant, Maven,\u00a0Gradle). For .NET projects, the recommended process\u00a0is to download and use the MSBuild analyzer. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">For projects using other programming languages (more than\u00a020 are supported via plugins), the generic runner should be used to trigger a SonarQube analysis.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">If you want to quickly see some screens, pages, and graphs or if you don\u2019t have the technical skills to analyze a codebase, you&#8217;re in luck. <a title=\"SonarQube public instance\" href=\"http:\/\/nemo.sonarqube.org\" target=\"_blank\">SonarQube has a public instance available<\/a><\/span><span style=\"font-weight: 400;\">,<\/span><span style=\"font-weight: 400;\"> which contains quality data for all of the supported programming languages and the most popular open source projects.<\/span><\/p>\n<h3>Dashboards<\/h3>\n<p><span style=\"font-weight: 400;\">In SonarQube, you\u00a0can view global and project dashboards. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Global dashboards are used to report information for all or a subset of the projects analyzed in the same SonarQube instance and can be presented in various ways (tree views, pie charts, histograms, or just plain lists). As the name implies, the project dashboard reports the metrics results of one particular project. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">What&#8217;s really cool is that you can fully customize both dashboards by adding or removing widgets of information. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">This means that a developer can\u00a0add several widgets displaying deep technical metrics, like complexity,\u00a0rules violations, or duplications. Non-technical managers, on the other hand, who don\u2019t need this level of granularity can create a simple dashboard with a few widgets that make sense to them. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">And what are these widgets? You&#8217;ve probably already guessed: technical debt widgets. <\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Technical Debt Reports<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">SonarQube ships with three technical debt widgets that display important, aggregated information in a nice and comprehensive way. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">The first (as shown in the image below) reports the number of man-days needed to fix all problems in the code base. It also provides data about the number of issues per level of severity (from &#8220;minor&#8221; to &#8220;blocker&#8221;). <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Clicking on any number navigates to a page where you can see more details about the issues reported per module, package, etc. This view is called a drill-down, and it\u2019s one of the most popular pages in SonarQube.<\/span><\/p>\n<p><a href=\"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/15144913\/SonarQube-report-1.png\" rel=\"attachment wp-att-6322\"><img loading=\"lazy\" decoding=\"async\" width=\"670\" height=\"236\" class=\"alignnone size-full wp-image-6322\" src=\"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/15144913\/SonarQube-report-1.png\" alt=\"Technical Debt Calculation: SonarQube report 1\" srcset=\"https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/15144913\/SonarQube-report-1.png 670w, https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/15144913\/SonarQube-report-1.png 300w\" sizes=\"(max-width: 670px) 100vw, 670px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Knowing the number of man-days you need to invest to eliminate all technical debt is helpful. But, as we discussed in the previous post, it&#8217;s not enough. Without having more context (i.e. the size of the project), it\u2019s impossible to tell if this number is good or bad. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">The second widget (see image below) comes to the rescue by\u00a0displaying two numbers. The one to the right is the technical debt ratio,\u00a0which represents the time needed to fix all quality issues relative to the <\/span><span style=\"font-weight: 400;\">time that has already gone into the application development. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">As we explained\u00a0in the last post, this ratio fixes <\/span><span style=\"font-weight: 400;\">the problems associated with expressing technical debt as man-days only.<\/span><\/p>\n<p><a href=\"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/11151017\/sq-1.png\" rel=\"attachment wp-att-6278\"><img loading=\"lazy\" decoding=\"async\" width=\"498\" height=\"87\" class=\"alignnone size-full wp-image-6278\" src=\"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/11151017\/sq-1.png\" alt=\"Technical Debt Calculation: SonarQube report 2\" srcset=\"https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/11151017\/sq-1.png 498w, https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/11151017\/sq-1.png 300w\" sizes=\"(max-width: 498px) 100vw, 498px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">In this example, the technical debt ratio is 49.8%. This means that the development team needs to spend nearly 50% more time than they have already spent to eliminate all technical debt. This\u00a0is clearly not a good result for this particular project.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">But what\u2019s that SQALE rating appearing to the left?\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">SonarQube internally uses the <\/span><a title=\"SQALE methodology\" href=\"http:\/\/www.sqale.org\" target=\"_blank\"><span style=\"font-weight: 400;\">SQALE methodology<\/span><\/a><span style=\"font-weight: 400;\"> to compute the technical debt ratio and to classify the project to a SQALE rating. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Based on the outstanding remediation cost, the project is rated from <\/span><b>A<\/b><span style=\"font-weight: 400;\"> to <\/span><b>E <\/b><span style=\"font-weight: 400;\">according to the following rules:<\/span><\/p>\n<ul>\n<li><span style=\"font-weight: 400;\">Technical Debt (TD) Ratio &lt;=10%, the rating is <strong>A<\/strong><\/span><\/li>\n<li><span style=\"font-weight: 400;\">11%&lt;= TD Ratio &lt;=20%, the rating is\u00a0<strong>B<\/strong><\/span><\/li>\n<li><span style=\"font-weight: 400;\">21%&lt;= TD Ratio &lt;=50%, the rating is <strong>C<\/strong><\/span><\/li>\n<li><span style=\"font-weight: 400;\">51%&lt;= TD Ratio &lt;=100%, the rating is <strong>D<\/strong><\/span><\/li>\n<li><span style=\"font-weight: 400;\">over 100%, the rating is <strong>E<\/strong><\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">The last widget (illustrated below) is called the &#8220;Technical Debt Pyramid.&#8221; It\u2019s a simple representation of the technical debt added to the system per characteristic. SonarQube internally attributes\u00a0all reported issues to one of the categories shown in the image.<\/span><\/p>\n<p><a href=\"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/11151016\/sq-3.png\" rel=\"attachment wp-att-6276\"><img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"292\" class=\"alignnone size-full wp-image-6276\" src=\"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/11151016\/sq-3.png\" alt=\"Technical Debt Calculation: SonarQube report 3\" srcset=\"https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/11151016\/sq-3.png 500w, https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/11151016\/sq-3.png 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">The bars in the graph show the time needed to fix all quality issues per characteristic. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">The dark blue refers to the time needed to clean up the code as a result of\u00a0the issues reported on <\/span><i><span style=\"font-weight: 400;\">this <\/span><\/i><span style=\"font-weight: 400;\">characteristic. The light blue shows the cumulative time required, reading the graph from bottom to top. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">In a glance, the development team can easily understand where the biggest problems on this project are: maintainability and reliability!<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Again, every number is clickable, so you can drill down to the next logical level to\u00a0see details about each\u00a0characteristic and better understand where more effort is needed.<\/span><\/p>\n<p><a href=\"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/11171951\/Squoring.png\" rel=\"attachment wp-att-6297\"><img loading=\"lazy\" decoding=\"async\" width=\"561\" height=\"90\" class=\"alignnone size-full wp-image-6297\" src=\"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/11171951\/Squoring.png\" alt=\"Technical Debt Calculation Tools: Squore\" srcset=\"https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/11171951\/Squoring.png 561w, https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/11171951\/Squoring.png 300w\" sizes=\"(max-width: 561px) 100vw, 561px\" \/><\/a><\/p>\n<h2><span style=\"font-weight: 400;\">SQUORE<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">SQUORE by <\/span><a title=\"Squoring Technologies\" href=\"http:\/\/www.squoring.com\/\" target=\"_blank\"><span style=\"font-weight: 400;\">Squoring<\/span><\/a> <span style=\"font-weight: 400;\">is a commercial product that can be used in a variety of ways to manage software quality, including technical debt management, acceptance criteria management, project management based on automotive principles and processes, etc. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">In this article, we\u00a0will describe the features offered by the technical debt management version. It\u2019s a web-based application and, like SonarQube, utilizes\u00a0the SQALE methodology to compute technical debt metrics.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Evaluating SQUORE is pretty easy. All you have to do is either navigate to the <\/span><a title=\"SQUORE public instance\" href=\"http:\/\/www.agileranking.com\/XHTML\/PublicRestoreContext.seam?modelId=2\" target=\"_blank\"><span style=\"font-weight: 400;\">public demo instance<\/span><\/a><span style=\"font-weight: 400;\"> or\u00a0<\/span><a title=\"SQUORE demo request\" href=\"http:\/\/www.squoring.com\/en\/essai-gratuit\/\" target=\"_blank\"><span style=\"font-weight: 400;\">request a trial<\/span><\/a><span style=\"font-weight: 400;\">. For the trial, you have to zip your project and submit it via the website. After a couple of days, your dashboard will be ready. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Commercial users can download and install the latest version of SQUORE on\u00a0their own devices. The installation and configuration process is straightforward as everything that&#8217;s needed (application server and database server) is bound to a nice installer, which supports both Linux-based and Windows operating systems. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">For this article, we&#8217;ve used only the demo instance that was prepared for us. But if you want to read more about the installation and configuration steps, check out the <\/span><a title=\"SQUORE documentation\" href=\"http:\/\/support.squoring.com\/documentation\/15-A-SP2\/install_admin_manual\/bk01-toc.html\" target=\"_blank\"><span style=\"font-weight: 400;\">latest documentation<\/span><\/a><span style=\"font-weight: 400;\">. <\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Technical Debt Reports<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">The SQUORE dashboard is split in two sections. <\/span><\/p>\n<p><strong>Technical Debt Indicators<\/strong><\/p>\n<p><span style=\"font-weight: 400;\">On the left side, you\u00a0can browse projects and artifacts and see which technical debt indicator is most affecting code\u00a0quality. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">SQUORE uses four indicators \u2014 efficiency, portability, maintainability, and reliability \u2014\u00a0to calculate the technical debt. The following image\u00a0provides a sample of what information\u00a0you\u00a0can see about your\u00a0project.<\/span><\/p>\n<p><a href=\"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/15151817\/SQUORE-report-1.png\" rel=\"attachment wp-att-6327\"><img loading=\"lazy\" decoding=\"async\" width=\"443\" height=\"141\" class=\"alignnone size-full wp-image-6327\" src=\"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/15151817\/SQUORE-report-1.png\" alt=\"Technical Debt Calculation: SQUORE report 1\" srcset=\"https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/15151817\/SQUORE-report-1.png 443w, https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/15151817\/SQUORE-report-1.png 300w\" sizes=\"(max-width: 443px) 100vw, 443px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">The tree nodes are clickable, providing more details about sub-categories or specific rules affecting the technical debt. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Take a look, for instance, at the following image that illustrates some of the quality checks applied to the source code regarding maintainability.<\/span><\/p>\n<p><a href=\"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/15153447\/SQUORE-report-2.png\" rel=\"attachment wp-att-6329\"><img loading=\"lazy\" decoding=\"async\" width=\"462\" height=\"239\" class=\"alignnone size-full wp-image-6329\" src=\"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/15153447\/SQUORE-report-2.png\" alt=\"Technical Debt Calculation: SQUORE report 2\" srcset=\"https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/15153447\/SQUORE-report-2.png 462w, https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/15153447\/SQUORE-report-2.png 300w\" sizes=\"(max-width: 462px) 100vw, 462px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">In short, quality rules are assigned to a basic indicator and to subsequent indicators. Every time a violation is found in the code, it&#8217;s added to the corresponding indicator density. The summary of them is called the technical debt density. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">You might have already recognized a ranking system, reminiscent of\u00a0what we saw in the SonarQube dashboards. Indeed, SQUORE provides a similar rating (with grades from <strong>A<\/strong> to <strong>F<\/strong>) according to the following technical debt density scale: <\/span><\/p>\n<ul>\n<li><span style=\"font-weight: 400;\">TD Scale = 0, the rating is <strong>A<\/strong><\/span><\/li>\n<li><span style=\"font-weight: 400;\">0&lt;= TD Scale &lt;=300, the rating is <strong>B<\/strong><\/span><\/li>\n<li><span style=\"font-weight: 400;\">300&lt;= TD Scale &lt;=1000, the rating is <strong>C<\/strong><\/span><\/li>\n<li><span style=\"font-weight: 400;\">1000&lt;= TD Scale &lt;=1500, the rating is <strong>D<\/strong><\/span><\/li>\n<li><span style=\"font-weight: 400;\">1500&lt;= TD Scale &lt;=2000, the rating is <strong>E<\/strong><\/span><\/li>\n<li><span style=\"font-weight: 400;\">2000&lt;= TD Scale &lt;=5000, the rating is <strong>F<\/strong><\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Based on the above scale, to get an \u201cA\u201d for your project, you must eliminate all technical debt. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">But practically no project would be able to\u00a0get an \u201cA\u201d because (as\u00a0we discussed in the previous post) all software projects have and should have some technical debt. It\u2019s inevitable! So the best score you can get in SQUORE is really a \u201cB.\u201d<\/span><\/p>\n<p><strong>Widgets<\/strong><\/p>\n<p><span style=\"font-weight: 400;\">The right side of the dashboard is composed of various tabs, and every tab presents information using widgets.\u00a0<\/span><span style=\"font-weight: 400;\">We\u00a0will describe only the widgets that are related to technical debt representations. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">The most interesting widget is the \u201cremediation cost.\u201d\u00a0<\/span><span style=\"font-weight: 400;\">As shown in the image below, you can\u00a0see how many man-days are required to eliminate all technical debt.\u00a0The same information is presented in currency (USD in this case) per indicator and for the total technical debt.<\/span><\/p>\n<p><a href=\"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/15154844\/SQUORE-report-3.png\" rel=\"attachment wp-att-6330\"><img loading=\"lazy\" decoding=\"async\" width=\"525\" height=\"240\" class=\"alignnone size-full wp-image-6330\" src=\"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/15154844\/SQUORE-report-3.png\" alt=\"Technical Debt Calculation: SQUORE report 3\" srcset=\"https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/15154844\/SQUORE-report-3.png 525w, https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/15154844\/SQUORE-report-3.png 300w\" sizes=\"(max-width: 525px) 100vw, 525px\" \/><\/a><\/p>\n<p>The same information can also be displayed as a breakdown chart or a distribution chart, as illustrated in the following two images.<\/p>\n<p><a href=\"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/15155758\/SQUORE-report-4.png\" rel=\"attachment wp-att-6332\"><img loading=\"lazy\" decoding=\"async\" width=\"762\" height=\"404\" class=\"alignnone wp-image-6332 size-full\" src=\"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/15155758\/SQUORE-report-4.png\" alt=\"Technical Debt Calculation: SQUORE report 4\" srcset=\"https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/15155758\/SQUORE-report-4.png 762w, https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/15155758\/SQUORE-report-4.png 300w\" sizes=\"(max-width: 762px) 100vw, 762px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Examining both widgets will lead to\u00a0the same conclusions. In this particular project, for instance, maintainability is the most problematic indicator followed by reliability, whereas portability\u00a0and efficiency\u00a0seem to be in good shape.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">There are some additional SQUORE\u00a0widgets that display the distribution of technical debt across classes or across functions. This is extremely useful in cases where development teams want to focus first on the worst areas due to lack of time or experience. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">What&#8217;s really cool in SQUORE \u2014 although we didn\u2019t have a\u00a0chance to confirm it independently \u2014\u00a0is the fact that the four indicators we described above take into account not only the code base (source + unit tests), but also documentation quality, available functional requirements, etc.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This approach\u00a0makes the technical debt computation more accurate and complete. <\/span><\/p>\n<p><a href=\"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/11175736\/kiuwan.png\" rel=\"attachment wp-att-6300\"><img loading=\"lazy\" decoding=\"async\" width=\"519\" height=\"196\" class=\"alignnone size-full wp-image-6300\" src=\"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/11175736\/kiuwan.png\" alt=\"Technical Debt Calculation Tools: Kiuwan\" srcset=\"https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/11175736\/kiuwan.png 519w, https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/11175736\/kiuwan.png 300w\" sizes=\"(max-width: 519px) 100vw, 519px\" \/><\/a><\/p>\n<h2><span style=\"font-weight: 400;\">Kiuwan<\/span><\/h2>\n<p><a title=\"Kiuwan\" href=\"https:\/\/www.kiuwan.com\/\" target=\"_blank\"><span style=\"font-weight: 400;\">Kiuwan<\/span><\/a><span style=\"font-weight: 400;\">\u00a0<\/span><span style=\"font-weight: 400;\">is a commercial solution for code quality management, which is offered as a software as a service (SaaS) product. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">You can choose <\/span><a title=\"Kiuwan plan options\" href=\"https:\/\/www.kiuwan.com\/editions\/\" target=\"_blank\"><span style=\"font-weight: 400;\">your plan<\/span><\/a><span style=\"font-weight: 400;\"> according to your (development team) needs and enjoy a full set of code quality services, including\u00a0static analysis based on custom analyzers, duplicate code detection, more than 60 quality metrics, technical debt computation, what-if analysis, historic data and comparison to previous versions of the codebase, action plans, and more. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">All of the above are visualized through user-friendly and fully-customized dashboards, which makes Kiuwan a very attractive choice. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Since Kiuwan is a cloud-based solution,\u00a0<\/span><span style=\"font-weight: 400;\">you can <\/span><a title=\"Kiuwan free signup\" href=\"https:\/\/www.kiuwan.com\/signup\/free\/\" target=\"_blank\"><span style=\"font-weight: 400;\">apply online<\/span><\/a><span style=\"font-weight: 400;\"> for a two-week evaluation period and test all the available features with no limitations. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">All major programming languages (Java, C\/C++, JavaScript, PHP, C#, .NET, VB, Objective-C, Cobol, SQL, etc.) are supported. Kiuwan also provides support for popular frameworks like Android and Hibernate with specialized rule sets. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Analyzing a code base with Kiuwan can be done in two ways. You can either zip your code and upload it to the web analyzer, or you can use the local analyzer, a command line, and GUI utility. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">The latter option will\u00a0allow you to\u00a0analyze your code locally without uploading it to Kiuwan&#8217;s platform. However, you also have the option to upload the related source code fragments to the identified rule violations, which will make the web dashboard reports more comprehensive and valuable. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Once\u00a0the analysis is completed, the results will be uploaded to your Kiuwan account and displayed on your project dashboard. <\/span><\/p>\n<h3><span style=\"font-weight: 400;\">Technical Debt Reports<\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Kiuwan\u2019s dashboard is great! It\u2019s simple, colorful without confusing the user, and contains all of the important information on one page. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">On the left side, you can find a list of your analyzed projects. On the right, there are several tabs that display quality analysis information. As\u00a0with the two previous tools, we will focus only on the technical debt-related widgets. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">The summary tab is where you can find a high-level picture of the project (as illustrated in the image below). There are three main widgets related to technical debt, although the term \u201ctechnical debt\u201d is not actually used anywhere.<\/span><\/p>\n<p><a href=\"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/11151013\/kiuwan-1.png\" rel=\"attachment wp-att-6271\"><img loading=\"lazy\" decoding=\"async\" width=\"826\" height=\"293\" class=\"alignnone size-full wp-image-6271\" src=\"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/11151013\/kiuwan-1.png\" alt=\"Technical Debt Calculation: Kiuwan report 1\" srcset=\"https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/11151013\/kiuwan-1.png 826w, https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/11151013\/kiuwan-1.png 300w, https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/11151013\/kiuwan-1.png 768w\" sizes=\"(max-width: 826px) 100vw, 826px\" \/><\/a><\/p>\n<p><span style=\"font-weight: 400;\">Starting in the middle, the &#8220;global indicator&#8221; has the same meaning as technical debt ratio in SonarQube or technical debt density in SQUORE. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Kiuwan uses an internally-developed quality methodology known as CQM that\u00a0stands for &#8220;Checking Quality Model&#8221; for Software.\u00a0<\/span><span style=\"font-weight: 400;\">CQM suggests five indicators: maintainability, reliability, portability, efficiency, and security, which correlate with the software characteristics. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">The higher the global indicator, the better the quality of the analyzed project. By default, Kiuwan assumes that if you get a global indicator of 90, your\u00a0project is at the highest level of quality you can achieve. This threshold can be configured to match your needs or any special project requirements. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">The widget on the right labeled \u201ceffort to target\u201d shows the number of man-days needed to fix all defects found to reach your global indicator quality threshold (which, as we mentioned, is set at 90 by default). <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Every rule has an estimated effort to fix\u00a0and\u00a0is assigned to one of the five\u00a0indicators above. Again by default, Kiuwan computes the minimum set of rules that need to be fixed to get the global indicator up to 90.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Finally the widget on the left side\u00a0is quite\u00a0interesting. It\u2019s actually a combination of the other two widgets and tells you\u00a0about the risk of the project. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Simply put, if the global indicator is low and the effort to target is also low, then the risk is low because it assumes that the development team will be able to fix the problems easily. If, however, the global indicator is low while\u00a0the effort needed is high, then the project might be at risk because it\u2019s difficult to bring the code base back to a good level of quality. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">Kiuwan has two additional tabs (metrics and defects) that give you low-level information. <\/span><\/p>\n<p><span style=\"font-weight: 400;\">In the first tab, you can find\u00a0a plethora of metrics about complexity, coupling, documentation, duplicated code, effort to the target, governance, indicators, etc. The second tab is actually a search page where you can look up rules by indicator, programming language, or priority.<\/span><\/p>\n<h2><span style=\"font-weight: 400;\">In Summary<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">To conclude, here are the\u00a0top three advantages of each product we&#8217;ve discussed, which will help you determine which technical debt computation tool\u00a0is right for you. <\/span><\/p>\n<h3><span style=\"font-weight: 400;\">SonarQube<\/span><\/h3>\n<ol>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><strong>Free:<\/strong> You can use the full version without limitations. Of course, there are commercial plugins. But you only have to pay for them if you need analysis for specific languages or need to get extra features.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><strong>Polyglot:<\/strong>\u00a0There are hundreds of rule checks for almost all of the most popular programming languages.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><strong>Clear technical debt metrics:<\/strong> The technical debt ratio and the underlying SQALE methodology ensure\u00a0that you get the most accurate and correct technical debt computation.<\/span><\/li>\n<\/ol>\n<h3><span style=\"font-weight: 400;\">SQUORE<\/span><\/h3>\n<ol>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><strong>Clear technical debt metrics:<\/strong> As with SonarQube, the technical debt density\u00a0and underlying SQALE methodology ensure\u00a0that you get the most accurate and correct technical debt computation.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><strong>Full picture:<\/strong> Several widgets\/graphs illustrate the technical debt from different perspectives and\u00a0angles.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><strong>Goes beyond code base:<\/strong> The technical debt computation takes\u00a0into account not only the code base but also documentation quality, available functional requirements, and other non-coding related factors.<\/span><\/li>\n<\/ol>\n<h3><span style=\"font-weight: 400;\">Kiuwan<\/span><\/h3>\n<ol>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><strong>Clean design:<\/strong> Powerful and clean dashboards show\u00a0you exactly the information you need.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><strong>Polyglot:<\/strong>\u00a0As with SonarQube, there are hundreds of rule checks for almost all of the most popular programming languages.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\"><strong>Risk analysis:<\/strong> With just a glance, you can easily understand if your project is at risk or not.<\/span><\/li>\n<\/ol>\n<p><em><a title=\"Featured image via picjumbo\" href=\"https:\/\/picjumbo.com\/real-mens-tools\/\" target=\"_blank\">Featured image credit<\/a><\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Our technical debt series continues with a comparison of 3 top tools for technical debt computation, including SonarQube, SQUORE, and Kiuwan.<\/p>\n","protected":false},"author":70,"featured_media":6338,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[5],"tags":[485,479,467,496,364,502,497,503,404,146],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Technical Debt Computation: Comparison of Top Tools<\/title>\n<meta name=\"description\" content=\"Our technical debt series continues with a comparison of 3 top tools for technical debt computation, including SonarQube, SQUORE, and Kiuwan.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/thinkapps.com\/blog\/development\/technical-debt-computation-top-tools\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Technical Debt Computation: Comparison of Top Tools\" \/>\n<meta property=\"og:description\" content=\"Our technical debt series continues with a comparison of 3 top tools for technical debt computation, including SonarQube, SQUORE, and Kiuwan.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/thinkapps.com\/blog\/development\/technical-debt-computation-top-tools\/\" \/>\n<meta property=\"og:site_name\" content=\"Build Blog by ThinkApps | Content on Entrepreneurship, Mobile Apps, Web Platforms and more\" \/>\n<meta property=\"article:published_time\" content=\"2016-02-16T14:00:04+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2016-02-16T02:17:48+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/15173541\/Tools.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"5760\" \/>\n\t<meta property=\"og:image:height\" content=\"3840\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Patroklos Papapetrou\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Patroklos Papapetrou\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"15 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/thinkapps.com\/blog\/development\/technical-debt-computation-top-tools\/\",\"url\":\"https:\/\/thinkapps.com\/blog\/development\/technical-debt-computation-top-tools\/\",\"name\":\"Technical Debt Computation: Comparison of Top Tools\",\"isPartOf\":{\"@id\":\"http:\/\/localhost:8080\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/thinkapps.com\/blog\/development\/technical-debt-computation-top-tools\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/thinkapps.com\/blog\/development\/technical-debt-computation-top-tools\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/15173541\/Tools.jpg\",\"datePublished\":\"2016-02-16T14:00:04+00:00\",\"dateModified\":\"2016-02-16T02:17:48+00:00\",\"author\":{\"@id\":\"http:\/\/localhost:8080\/blog\/#\/schema\/person\/bbff910ac26ea64d3ed23cdcdb3f166a\"},\"description\":\"Our technical debt series continues with a comparison of 3 top tools for technical debt computation, including SonarQube, SQUORE, and Kiuwan.\",\"breadcrumb\":{\"@id\":\"https:\/\/thinkapps.com\/blog\/development\/technical-debt-computation-top-tools\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/thinkapps.com\/blog\/development\/technical-debt-computation-top-tools\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/thinkapps.com\/blog\/development\/technical-debt-computation-top-tools\/#primaryimage\",\"url\":\"https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/15173541\/Tools.jpg\",\"contentUrl\":\"https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/15173541\/Tools.jpg\",\"width\":5760,\"height\":3840,\"caption\":\"Technical Debt Computation Tools\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/thinkapps.com\/blog\/development\/technical-debt-computation-top-tools\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/localhost:8080\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Technical Debt Computation: Comparison of Top Tools\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/localhost:8080\/blog\/#website\",\"url\":\"http:\/\/localhost:8080\/blog\/\",\"name\":\"Build Blog by ThinkApps | Content on Entrepreneurship, Mobile Apps, Web Platforms and more\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/localhost:8080\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"http:\/\/localhost:8080\/blog\/#\/schema\/person\/bbff910ac26ea64d3ed23cdcdb3f166a\",\"name\":\"Patroklos Papapetrou\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/localhost:8080\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a6d5dbc6412ef643e03ffc4e2657e976?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a6d5dbc6412ef643e03ffc4e2657e976?s=96&d=mm&r=g\",\"caption\":\"Patroklos Papapetrou\"},\"description\":\"Patroklos Papapetrou is a software architect addicted to software quality and an agile team leader with almost 20 years of experience in software development. He is one of the authors of SonarQube in Action and is currently writing The Art of Software Gardening. (He treats software systems as flowers and thus prefers to call himself a software gardener.) Patroklos is also an occasional speaker, giving talks about clean code, code quality, and software gardening.\",\"sameAs\":[\"https:\/\/gr.linkedin.com\/in\/ppapapetrou\",\"https:\/\/x.com\/softwaregarden\"],\"url\":\"https:\/\/thinkapps.com\/blog\/author\/patroklos-papapetrou\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Technical Debt Computation: Comparison of Top Tools","description":"Our technical debt series continues with a comparison of 3 top tools for technical debt computation, including SonarQube, SQUORE, and Kiuwan.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/thinkapps.com\/blog\/development\/technical-debt-computation-top-tools\/","og_locale":"en_US","og_type":"article","og_title":"Technical Debt Computation: Comparison of Top Tools","og_description":"Our technical debt series continues with a comparison of 3 top tools for technical debt computation, including SonarQube, SQUORE, and Kiuwan.","og_url":"https:\/\/thinkapps.com\/blog\/development\/technical-debt-computation-top-tools\/","og_site_name":"Build Blog by ThinkApps | Content on Entrepreneurship, Mobile Apps, Web Platforms and more","article_published_time":"2016-02-16T14:00:04+00:00","article_modified_time":"2016-02-16T02:17:48+00:00","og_image":[{"width":5760,"height":3840,"url":"http:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/15173541\/Tools.jpg","type":"image\/jpeg"}],"author":"Patroklos Papapetrou","twitter_misc":{"Written by":"Patroklos Papapetrou","Est. reading time":"15 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/thinkapps.com\/blog\/development\/technical-debt-computation-top-tools\/","url":"https:\/\/thinkapps.com\/blog\/development\/technical-debt-computation-top-tools\/","name":"Technical Debt Computation: Comparison of Top Tools","isPartOf":{"@id":"http:\/\/localhost:8080\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/thinkapps.com\/blog\/development\/technical-debt-computation-top-tools\/#primaryimage"},"image":{"@id":"https:\/\/thinkapps.com\/blog\/development\/technical-debt-computation-top-tools\/#primaryimage"},"thumbnailUrl":"https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/15173541\/Tools.jpg","datePublished":"2016-02-16T14:00:04+00:00","dateModified":"2016-02-16T02:17:48+00:00","author":{"@id":"http:\/\/localhost:8080\/blog\/#\/schema\/person\/bbff910ac26ea64d3ed23cdcdb3f166a"},"description":"Our technical debt series continues with a comparison of 3 top tools for technical debt computation, including SonarQube, SQUORE, and Kiuwan.","breadcrumb":{"@id":"https:\/\/thinkapps.com\/blog\/development\/technical-debt-computation-top-tools\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/thinkapps.com\/blog\/development\/technical-debt-computation-top-tools\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/thinkapps.com\/blog\/development\/technical-debt-computation-top-tools\/#primaryimage","url":"https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/15173541\/Tools.jpg","contentUrl":"https:\/\/d1vqbpto5tbbz0.cloudfront.net\/blog\/wp-content\/uploads\/2016\/02\/15173541\/Tools.jpg","width":5760,"height":3840,"caption":"Technical Debt Computation Tools"},{"@type":"BreadcrumbList","@id":"https:\/\/thinkapps.com\/blog\/development\/technical-debt-computation-top-tools\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/localhost:8080\/blog\/"},{"@type":"ListItem","position":2,"name":"Technical Debt Computation: Comparison of Top Tools"}]},{"@type":"WebSite","@id":"http:\/\/localhost:8080\/blog\/#website","url":"http:\/\/localhost:8080\/blog\/","name":"Build Blog by ThinkApps | Content on Entrepreneurship, Mobile Apps, Web Platforms and more","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/localhost:8080\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"http:\/\/localhost:8080\/blog\/#\/schema\/person\/bbff910ac26ea64d3ed23cdcdb3f166a","name":"Patroklos Papapetrou","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/localhost:8080\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/a6d5dbc6412ef643e03ffc4e2657e976?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a6d5dbc6412ef643e03ffc4e2657e976?s=96&d=mm&r=g","caption":"Patroklos Papapetrou"},"description":"Patroklos Papapetrou is a software architect addicted to software quality and an agile team leader with almost 20 years of experience in software development. He is one of the authors of SonarQube in Action and is currently writing The Art of Software Gardening. (He treats software systems as flowers and thus prefers to call himself a software gardener.) Patroklos is also an occasional speaker, giving talks about clean code, code quality, and software gardening.","sameAs":["https:\/\/gr.linkedin.com\/in\/ppapapetrou","https:\/\/x.com\/softwaregarden"],"url":"https:\/\/thinkapps.com\/blog\/author\/patroklos-papapetrou\/"}]}},"_links":{"self":[{"href":"https:\/\/thinkapps.com\/blog\/wp-json\/wp\/v2\/posts\/6262"}],"collection":[{"href":"https:\/\/thinkapps.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thinkapps.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thinkapps.com\/blog\/wp-json\/wp\/v2\/users\/70"}],"replies":[{"embeddable":true,"href":"https:\/\/thinkapps.com\/blog\/wp-json\/wp\/v2\/comments?post=6262"}],"version-history":[{"count":34,"href":"https:\/\/thinkapps.com\/blog\/wp-json\/wp\/v2\/posts\/6262\/revisions"}],"predecessor-version":[{"id":6342,"href":"https:\/\/thinkapps.com\/blog\/wp-json\/wp\/v2\/posts\/6262\/revisions\/6342"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thinkapps.com\/blog\/wp-json\/wp\/v2\/media\/6338"}],"wp:attachment":[{"href":"https:\/\/thinkapps.com\/blog\/wp-json\/wp\/v2\/media?parent=6262"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thinkapps.com\/blog\/wp-json\/wp\/v2\/categories?post=6262"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thinkapps.com\/blog\/wp-json\/wp\/v2\/tags?post=6262"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}