Scrum is Hard!

In the post The Decline and Fall of Agile, James Shore highlights some of the problems with introducing agile methodologies.

“Scrum is popular because it’s easy–and that’s part of the problem.”

It is a great blog post, and I am sure that you will feel familiar with the  descriptions if you have been applying Scrum or other agile methodologies in real life. I certainly do!

SVNKit 1.2.2

After four weeks of vacation, it takes some time to get started again, but I will give it a try 🙂

Lately, I have been writing a couple of small applications integrating with different tools, such as ScrumWorks, Mantis and Jira. Now the time has come to Subversion. SVNKit 1.2.2 was released recently this year, so I had to try it out.

SVNKit is a pure Java toolkit that implements all Subversion features and provides APIs to work with Subversion from within your Java application. I have only had time to play around with the SVNRepository class so far. The API is pretty straigthforward and easy to use. For my use the performance is OK, but it is maybe a little slow if you have a user hanging over your shoulder waiting for response…

Integrating with ScrumWorks

In an earlier post, I wrote about ScrumWorks. After having used it on a couple of projects I have gathered some thoughts here.

I usually prefer the good old whiteboard with post-its or an Excel sheet to track progress and generate burndown charts. But ScrumWorks has proved to be an excellent alternative to these old techniques. Developers find it pretty easy to use, and ScrumMasters get a pleasent user interface and a nice burndown chart almost for free.

So what is the downside? Well, sooner or later you will be asked by management to report progress. And managers are usually not willing (or capable) to using any unfamiliar tools, so you end up exporting the data to make some burndown chart or excel sheet available for them. This type of status reporting is overhead (or waste in lean terminology) and boring.

Luckily, ScrumWorks has a decent Web Services API which makes it fairly easy to extract the information you want. For example generate live burndown charts automatically on a wiki, or use the task information in ScrumWork to verify valid commit comments in a Subversion hook script. Imagination is the only limit…

ScrumButt

Ever heard “We’re doing Scrum, but…”?
According to Jeff Sutherland at Øredev 2008, great Scrum teams can boost revenue by 400%. With ScrumButt you are limited to 0-35%. When are we going to understand that Scrum is just a set of simple rules and common sense and not a buffet to choose elements from….?

Value Stream Mapping

Value Stram Mapping has been around for years, but it is only recently that I started hearing about it in the context of software development. Maybe the renewed attention can get us to focus at the whole process rather than only the development part?

Nearly all projects I have either been involved in or heard of that claim they are using Scrum, are only using it for the development part of the process. The total process from an idea is born until it is in production usually consists of a gazillion boxes and arrows where the development part is one of the boxes. By optimizing this little box (for example by introducing Scrum), the process efficiency (if you are lucky) maybe increases from 4.0% to 4.1%…. Is this what we call sub-optimizing…?

Value Stream Mapping can help us optimize the parts that really gives impact and is an excellent tool for removing waste.

NetBeans 6.5

NetBeans 6.5 is now available for download at netbeans.org. I have been using the beta and release candidates for some time now, so there should not be too many surprises. The feature I am happiest about right now is that it is possible to configure projects independently. This enables me to push out code conventions in the root pom.xml file for the entire project. Hence there is no excuse for not following the conventions 🙂

Download NetBeans!

Mockito

If you are going to set up a completely new greenfield project, I would definately consider using Mockito as mock framework. It expressive and very intuitive, and results in less boilerplate code in your tests than for example EasyMock.

Very few of us are so lucky to be setting up a completely new project, but are stuck with legacy code that probably require more advanced features than those offered by Mockito. In this case I would probably go for a combination of EasyMock and PowerMock.