Pragmatic Agile Weblog

Agile software development in real life

Development facts

Recently I had the occasion to think back to our releases and collect some stats about our development process and on the code. Here are some results and thoughts.

Development process

Thanks to the use of Rally of rallysoft from the latest release we started to track iterations, backlogs, user stories and estimates. It is incredibly useful and the amount of information it gives you is just amazing. I do not mean just the information that is physically stored in the system, but also the information that you can gather from the possibility of reviewing previous releases and iterations. How user stories were done, how much they were estimated, how many story point have been done in each iteration… I really do not understand how someone can seriously tell you that you should use stickies on a wall….

Anyway, here are some data.

+---------------------------------------------------+
|                    | Capri   | Ischia  | Countach |
+--------------------+---------+---------+----------+
| # of sprints       |       6 |       3 |     n.a. |
|--------------------+---------+---------+----------|
| Sprint length      | 4 weeks | 4 weeks | 2 weeks  |
|--------------------+---------+---------+----------|
| # of completed     |         |         |          |
| user stories       |     136 |     171 |     n.a. |
|--------------------+---------+---------+----------|
| Completed story    |         |         |          |
| points             |    n.a. |     585 |     n.a. |
|--------------------+---------+---------+----------|
| Total velocity     |    n.a. |    ~200 |     n.a. |
+---------------------------------------------------+

Another aspect I want to track is about code quality. It is not easy to say what code quality is, and there is no silver bullet, therefore for now I am happy to record code analysis reports. I have aggregated the reports we run on the open source code (and available on the projects sites generated by maven at http://m2.funambol.org/sites) and these are the results:

+-----------------------------------------------+
|                           | Capri   | Ischia  |
+---------------------------+---------+---------+
| Classes total             |     940 |    1014 |
| Methods total             |    8517 |    9541 |
| NCSS total                |   80350 |   90243 |
| Javadocs                  |    6973 |    7727 |
| Javadoc lines             |   47714 |   52741 |
| Single lines comments     |   11830 |   13260 |
| Multi lines comments      |   34415 |   37190 |
| Unit test line coverage   |  10,88% |  12,24% |
| Unit test branch coverage |   9,36% |  10,88% |
| Average complexity        |    2,94 |    2,86 |
+-----------------------------------------------+

It is interesting to note that the average complexity of our classes has decreased and test coverage overall increased. The latter however is the parameters we need to focus more in the next release, since unit testing coverage is still not satisfactory.

Another interesting software I am trying is sonar; it runs a number of metrics and then shows a cruise control to navigate each metric from the project level down to the packages and then the classes. It is very well integrated with maven, therefore integrating it in our CI should be straightforward. If you are using sonar already, do not hesitate to leave your feedback.

Advertisements

January 16, 2009 - Posted by | Uncategorized

No comments yet.

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: