Embrace Quality, use Sonar

Sonar is a code quality management platform, it enables to collect, analyse and report metrics on source code. Sonar not only offers consolidated reporting on and across projects throughout time, but it becomes the central place to manage code quality.
I've been using Sonar for the last couple of months and I'm positively impressed with it. It's very easy and quick to setup (I use  Sonar from an Hudson build, in a Maven 2 project) and it offers a very clear and attractive overview of the project code. The time machine feature tracks the metrics of the project, enabling the team to track progress and improvments. It's a separate server, so your build doesn't slow down to produce the reports, Maven launches it transparently. It hogs quite a lot of memory (around 300Mb) and we had an out of memory recently (after upgrading to the latest version) but it's really a must have tool on your project.

What's really agile?

Today we ended a scrum sprint, two weeks long. In two weeks a team of five developers managed to setup a project using state of art tecnologies such as DRW, ActiveMQ, ServiceMix, Hibernate, Spring, Atomikos XA Transactions. Not only we have a use case up and running and we are able to show case it to the customer. Now,  few choices in my opinion made this "more agile". - The usage of Maven, we have probably 50 dependencies, I can't imagine how to handle this with ant. - The usage of Hudson as CI tool, simple UI, no need to read the manual - The usage of Spring, in a couple of hours we had all we need (DAOs, JMS senders and receivers especially) - The usage of Hibernate3 with annotations, can't be faster to write down your domain - The usage of Jetty to have a fast feedback locally - Well, ovious maybe but worth mention, we wrote tests first, we used Junit4.5 - Flexible pair programming, we paired only when in trouble or when we felt the solution was mature enough to be showcased and shared in the team - Focused work, one developer on the Web UI, one on the deployment, one on the ServiceMix/ActiveMQ, one on the Transactions + Design of the system I call this agile, hard work and good fun.