Introduction¶
Making the right decisions and making them on time are key for reaching any goals set. In the software industry, everything revolves around the software produced. Therefore, making the right decisions within this industry is nearly impossible without knowing enough also about the software itself. Static source code analysis measurements provide essential, valuable and fact-based software insights. Developers, testers, leaders and managers can incorporate these insights into their decisions. Ignoring such a relevant knowledge on the other hand can lead to bad decisions and costly issues.
QualityGate is a software measurement framework that measures and presents several aspects of a software’s implementation. These aspects include software metrics, software quality (e.g. maintainability) and technical debt, trends, developer and team productivity. The aspects measured with QualityGate are highly customizable. For instance, one can build a fully customized software quality model from the metrics available. Metric and model evaluations are using continuously updated benchmarks. Those benchmarks can be customized to include the measurement results of hundreds of open and closed source systems. QualityGate also comes with a built-in code advisor which helps developers identify the most burning tasks to improve the quality of the software developed.
QualityGate can be used in every situation when a well-prepared decision requires software metric based facts. Such a situation occurs, for instance, when the quality of a software implementation needs to be quantified, when the location and type of quality improvements need to be determined, when the degree of following best practices need to be evaluated, when testers identify what to test and what not, when managers decide about money to be spent on education, etc.
QualityGate analyses every check-in made on a selected branch. This means that the effect of every change can be measured and acted upon. The use of QualityGate can therefore be integrated into sprints, code reviews and continuous integration / continuous delivery pipelines to provide the needed information on time. Since software implementations consists of software elements at multiple levels of abstraction, the metrics QualityGate measures are also defined at these multiple levels (global, module, unit and other technology dependent levels, like a package or class).
Value propositions¶
IT manager
With QualityGate an IT manager can get more done and all within the deadlines promised. Based on the continuous and global maintainability measures QualityGate provides, an IT manager can instruct developers to increase their effort they send on improving maintainability. This investment pays back several times, since with a more maintainable system it takes much less time to implement features and to fix bugs.
Furthermore, by using QualityGate an IT manager can follow how the performance of the developers and teams change over time and whether further adjustments are needed. Such an adjustment can be to spend more time improving maintainability or to educate underperforming developers. QualityGate can also be used to motivate developers, since the effort developers spend on producing quality work can be visualized, tracked and therefore be valued.
Even when building software is sourced out, it is crucial to keep the quality of the delivered software under control. This way, one can perform fact-based negotiations and maximize the amount of value received for the money and time invested.
Developer
QualityGate helps developers in many ways. First of all, it enables them to be more precise when development efforts are estimated. Since QualityGate can identify those parts of the implementation which are less maintainable and have several coding issues, developers can plan more time in for those feature and change requests that touch upon them.
Second of all, after a change has been implemented, with QualityGate developers can check whether and to which extent the quality of the implementation got altered. If needed, they can take the required corrective measures. QualityGate can be integrated into the development process and its indications can be integrated into the definition of done in agile developments.
Third of all, Qualitygate enables developers to find and prioritize the quality-related issues in the implementation. This way, the most relevant quality related improvements points can easily be identified and planed in.
Forth of all, just by using QualityGate, developers get more quality oriented and better in producing quality code. QualityGate makes this improvement path visible. Developers can therefore receive their well-deserved acknowledgements for their performance.
Tester
Finding which part of the software implementation to test next, is a continuous challenge for all testers. Testers are expected to be efficient in finding bugs that matter the most. QualityGate helps to achieve this by identifying those areas of the implementation that are likely to have more or more severe bugs. For instance, the areas with the highest complexity, many coding issues and frequent recent changes.
Next: Basic concepts