Build Metrics: B448

| | Comments (0) | TrackBacks (0)

Metrics Overview

Before covering the detailed metrics for B448 I figured a bit of an overview on Understand 2.0 metrics would be useful.

Project vs Change Metrics

There are two basic kinds of metrics that we provide in Understand 2.0.   The first is Project Metrics, which give a static view of a particular point in time.  Examples of this are CountLine and CyclomaticUnderstand 2.0 computes and presents the value of these metrics for any snapshot in the database.  

The second kind is Change Metrics. These show differences between snapshots. The differences can be static - i.e. comparing Cyclomatic from B448 to Cyclomatic in B447. Or it can be dynamic, for instance showing lines deleted (calculated by looking at diffs).

How are Snapshots Made?

You can make a snapshot in three easy ways. First, make one from the current database. Second, make one from an alternate source location where you checked out another version of your source code, and third you can make one from any point in time using TrackBack (after version B443).  All these are done from the Change->Snapshot Manager menu.

Build 448 Metrics

After making a snapshot for B448, the Snapshot Manager showed me this basic information about each recent snapshot:

2008-06-18 01.27

 

Here is the entire source for the project compared to the major components. Maintain is the source for Understand 2.0

B448-CodeVolume

That is nice, but what "happened". Here are some more dynamic views showing changed SLOC and classes:

B448vsb447-CodeVolume

B448vsb447-ClassChange

Not nearly as busy as we were last build (-:   Not quite true, these numbers reflect the code checked in. Last build had a lot of code checked in because we'd held the build for two weeks waiting for the Estimate and Metrics Graphing features to be ready.

I'm a big fan of "new complexity" as an important metric. This captures the dynamic that new complexity, in the form of new logic or changed logic represents the biggest source of bugs.  Put another way, a new complexity of 10 is way more dangerous than a stable unchanged complexity of 50.  Well... unless some changes ripple through that complexity of 50... but that is for another blog posting about using Change to find risk.

Here is a view of "new complexity" for this Build

18 2008-06-18 01.20

Note that the above chart was done with Excel by exporting data out of Understand 2.0.  I also sent a note to the pertinent engineers asking them to put in various "new complexity" charts into the Metrics feature of Understand 2.0  Except for this chart, all are made directly by Understand 2.0's new Metrics graphing menu.

Timeline:

12:52 - rescan/update code in project.
12:54 - make snapshot
12:55 - update metrics database including change metrics (more time consuming)
           This gets more time consuming each time I add a snapshot becuase it compares all snapshots to all snapshots.
            For the next build I'll likely disable past snapshots and only do comparisons between the last two.
13:05 - starting making graphs using Metrics Graph Browser
13:35 - finished posting this blog plus sent several e-mails with ideas to pertinent engineers.

 

0 TrackBacks

Listed below are links to blogs that reference this entry: Build Metrics: B448.

TrackBack URL for this entry: http://scitools.com/blog/mt/mt-tb.cgi/69

Leave a comment

About this Entry

This page contains a single entry by Ken Nelson published on June 18, 2008 1:47 AM.

Tip: Auto-Completion improved considerably in B447 was the previous entry in this blog.

Tip: Selecting blocks in the 2.0 editor is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.