CodeQ Invest

New way to deal with internal software quality

View project onGitHub

Publications

New metaphor: Quality Investment

CodeQ Invest implements a model for investment in quality based on the SQALE method. Instead of just pointing at problems in your code base this helps you to determine which problems should be fixed to gain an immediate productivity advantage.

You define quality requirements (e.g. code coverage should be greater than 80%) and estimate how long it would take to fix the violation of such a requirement. Then you estimate how expensive (in terms of time) it would be to leave the violation untouched. The first estimate are the remediation costs (RC) and the latter the non-remediation costs (NRC). From these two estimates a profit is derived: the time you save when you fix the violation, NRC - RC. This is the basic idea of the quality investment.

The quality investment makes a proper management of internal software quality possible. This metaphor enables you to report the internal software quality in a useful way to business people. As a team you think in terms of return on investment and profit when discussing internal software quality.

The estimated costs are additionally weighted by other factors, e.g. the non-remediation costs are weighted by the change probability of the code.

Important: The mindset is the game changer! Please see this issue for more information.

CodeQ Invest concept

Features

CodeQ Invest supports the following features:

  • Defining your own projects which will be analyzed by a cron job
  • Visualization of investment opportunities with a tree map
  • Calculation of the best possible investment plan
  • ROI calculation and visualization
  • Manual estimates for code change probabilities
  • Subversion support for automatic calculation of code change probabilities
  • 3 different methods to weight code changes

Coming soon (these features will be included in the version 1.0.0):

  • Support for PostgreSQL (should work but it's not tested yet)
  • Multi-module project support
  • Defining and managing quality profiles via the web-ui
  • Git support

There are a lot more ideas for this tool. A detailed roadmap will be published when the first version was released.

Screenshot

You can get a glimpse of the software by the following screenshot.

CodeQ Invest screenshot

For early adopters

CodeQ Invest is in an early development phase. You can run the software from scratch with the following easy steps:

  1. Download the source archive which you can find on the right side.
  2. Run mvn clean install -DskipITs in the root directory of the project.
  3. Change to the directory web-ui: cd web-ui.
  4. Run mvn org.codehaus.cargo:cargo-maven2-plugin:run -Pdebug-web-app.
  5. Afterwards you can access the running application under localhost:8080.

This will start the application with test data and an in-memory database. You can find a project with a succeeded analysis under localhost:8080/projects/3.

For developers

Feel free to contribute. You can find more information in the readme.