CodeMRI Portfolio Users Guide
CodeMRI® Portfolio is a powerful tool for quick visualization and assessment of the current state of a collection of software assets, and is often considered the first in the Silverthread software economics suite of tools.
Figure 1: Example of CodeMRI® Portfolio
Portfolio is intended to provide a high-level summary of the detailed descriptive and prescriptive statistics included in Silverthread’s other product offerings, with a focus on high-level composite scores, trends, and at-a-glance simplicity. Creating a new Portfolio requires a standard CodeMRI® Platform installation, a Portfolio license, and either the source-code or metadata for all codebases to be included in the portfolio. Please see Capturing and Transporting Data for CodeMRI® Portfolio for a description of how Local and Distributed organizations can gather information for Portfolio.
The overall Quality Index represents an aggregate 1 to 100 score of the overall quality of a codebase including both code quality and design quality dimensions. Higher scores are better. Additionally, Portfolio includes Silverthread recommendations for courses of action based on the overall score. The three categories are:
This codebase is in good overall condition and does not require immediate action. Continue to ensure this software asset’s condition trends in a positive direction.
This codebase is in borderline condition and should be a candidate for improvement depending on business need.
This codebase should be considered a candidate for immediate improvement depending on business need. Performance of teams working with this software asset will be negatively impacted by its current condition.
Figure 2: CodeMRI® Portfolio Quality Index
The Software Quality Indices represent aggregate 1 to 100 scores of both code-level and design-level quality metrics.
Figure 3: CodeMRI® Portfolio Software Quality Indices
Code Quality Grade
The Code Quality Grade is a 1 to 100 score representing the code-level quality of the software asset. This score is based on the percentage of files found to contain code that is of exceptionally high complexity. Complex code is harder to maintain and more at-risk for defects over time.
The Cyclicality Grade is a 1 to 100 score representing one dimension of the architecture-level quality of the software asset. This score is based on the size, number, and composition of highly complex architectural hotspots in a software asset (known as “Cores”). Cores can dramatically impact an engineer’s productivity and increase the likelihood of introducing systematic defects that are difficult to diagnose and correct.
The Modularity Grade is a 1 to 100 score representing one dimension of the architecture-level quality of the software asset. This score is based on the average number of files directly impacted by a change made in this codebase. Elevated numbers of impacted files are an indication of poor modularity and increase the likelihood that defects will propagate through the software system once introduced.
The Software Economics Indices represent aggregate 1 to 100 scores of expected business outcomes based on the software quality characteristics of this codebase.
Figure 4: Software Economic Indices
The Maintainability Grade is a 1 to 100 score representing the projected ratio of good, bug-free lines of code expected during development in this codebase, and is calculated by running the technical health characteristics of this codebase through Silverthread’s software economic models. A higher score is better and is indicative of codebases in which engineers can expect to spend less of their time fixing bugs versus writing new, valuable feature code.
The Agility Grade is a 1 to 100 score representing the projected amount of time required to ship a 1000 line, bug-free feature, and is calculated by running the technical health characteristics of this codebase through Silverthread’s software economic models. A higher score is better and indicative of codebases in which features can be expected to ship quickly, or fit into more rapid sprint cycles.
The Risk Grade is a 1 to 100 score representing the projected amount of defect code likely to escape test and reach customers because these defects exist in portions of the codebase simply too complex to test comprehensively. A higher score is better and is indicative of codebases in which defective code can be caught and corrected by engineers, unit testing, quality assurance, and similar processes prior to reaching customers.
Cloud Readiness is a three-color (Red, Yellow, Green) assessment of this software asset’s expected capability to undergo a microservices transformation. The three possible values here are:
Silverthread finds no, or very few, architectural roadblocks to facilitating a microservices transformation.
Silverthread finds emerging, but still manageable, architectural hotspots that should be addressed prior to undertaking a microservices transformation.
Silverthread finds architectural hotspots of significant size that should be addressed prior to undertaking a microservices transformation.
Figure 5: Cloud Readiness Index
CodeMRI® Portfolio provides these areas to be filled in by the user to keep track of important information about this codebase that may inform business criticality and prioritization of effort or funding. Silverthread does not automatically populate this information.
Figure 6: Business Details
Software Asset Details
CodeMRI® Portfolio provides high-level descriptive details about each software asset tracked in the Portfolio itself. This information is useful for quickly understanding the size and composition of your organization’s technology stack and resource distribution.
Figure 7: Software Asset Details