I was in Bangalore to check out the ThoughtWorks Master Class. They had a stall with a demo of Mingle at the venue, so I took the opportunity to have a look at it. Since it was open to the public, I’m assuming I can blog about it. There are still a couple of weeks to go before the tool hits the market (June 2007 according to the website).
The demo was both interesting and surprising.
First, the interesting part:
In Mingle, the basic unit that you manipulate is a card. Everything else is a property of the card. One of the cool things is that you can define a number of custom properties for a card. You then manipulate, filter and group cards via these properties.
Almost everything is defined in terms of cards and properties. For instance, other tools might have the concept of Iterations as a separate entity. In Mingle, the iteration is just a property of a card. So you create a custom field and name it Iteration. To schedule a task to an iteration, you set the field value to the iteration number (or name, it doesn’t have to be a number).
You can also group tasks by any property. This results in a swim-lane view with cards having the same property grouped in one lane. You can then drag and drop cards from one lane to another to change the value. So another way to schedule cards would be to group tasks by iteration and then drag and drop from one lane to another.
Since properties can be created on the fly, it allows you to completely customise the tool. For instance, by creating appropriate properties, you can make it into a bug tracking tool, with each card representing a bug. Other features are the ability to tag cards, an in-built wiki that can be used to manage documentation and requirements and the ability to define transitions for the cards. Every change is also logged and you can see the complete history of changes to a card.
There is a large emphasis on customising the workflow to suit your process. Custom properties, custom grouping and filtering, freeform tagging, custom card transitions and saved views are all powerful features to create a workflow that matches the process used in the company. The demo spent a lot of time on the custom workflow features and that aspect of Mingle looked impressive.
Now for the surprising:
One of the things I expected was that the tool would be very agile specific. It turns out that because of the was properties can be defined, it’s a very generalised tool. I was talking to Mahesh Krshnan, the Project Manager for Mingle in Bangalore, and he was telling me how you can use it for tasks as varied as managing conference calls and bug tracking by creating appropriate custom properties. While this makes the tool very generalisable, it also means that its hard to take advantage of agile specific knowledge.
For instance, I was surprised that there were no burndown charts or velocity calculations in the demo. The website says its there, so I guess it was not enabled in the demo version on display. Similarly for iteration reporting and dashboard. They weren’t there in the demo too. Since these are central to most agile teams, I expected most of the emphasis in the demo to be on them.
I’m also not sure how the burndown and velocity is calculated. In the demo, the iteration number was a custom field which could take an integer or string. But in order to calculate burndown and velocity, you need to know the start and end dates of the iteration. I couldn’t see any iteration properties anywhere, so I’m not sure how you define the iteration dates that are required to generate the charts.
Another thing was that the tools shows all the values in the swim lane view. So if you group by iteration, it will show all iterations. When the view had only 2-3 iterations, the display was fine, but with a lot of iterations (say 10), the swim lane and card displays get really small. Usually a team is interested in the backlog items, the current iteration and some upcoming iterations, so I wonder if there is an easy way to filter out only those iterations.
Mingle is currently being used by a some teams internally in Thoughtworks, and they have dog-fooded it on live projects, so I’m pretty sure that the above features will be there. Some of these things will get clearer once Mingle releases next month.