After presenting a review of Atlassians JIRA with its Agile GreenHopper plugin, this article within our series regarding Scrum Tools will be about ThoughtWorks Studios Mingle.

ThoughtWorks Studios are quite well-known for their Agile Application Lifecycle Management (ALM) portfolio, which comprises of an agile project management tool (Mingle), an agile release management tool (Go) and an agile automatic testing tool (Twist). The first mentioned of these three is the subject of this review, Mingle. As stated above, Mingle is well-known. In fact, we did already review it four years ago, but four years is quite a timespan – much can happen in such a period of time, especially when we are talking about software. So, let’s have a look what Mingle is up to, nowadays.

Functionality

When you are confronted with Mingle for the very first time, you don’t exactly know what you are dealing with. Of course, ThoughtWorks Studios name it an agile project management tool as one can read on their website. To make a confusing intro short, let me tell you the following. When I stated that JIRA is a feature monster I did not know Mingle. After having evaluated it, I can say without hesitation that Mingle is a feature hydra. Why? Because for every new feature I have explored, two new features emerge. Lets explain this by starting at the beginning.

When you open Mingle for the first time, you will be welcomed by a bright orange (I like!) login screen. After logging in, Mingle will ask you to create a new project, which is normal – still, there are tools that do not ask you that. This is the very moment when the hydra awakes: Mingle offers you to create an empty project or a template-based project, where template means the choice between a Scrum template, an agile hybrid template and a XP template. Before I knew which template was most suitable, I have created and deleted at least three projects. My first choice was the Scrum template, which is obvious. After the project had been setup by Mingle, I was confronted with a Scrum project, that had already more than hundred tasks. “I want to start clean” was what I thought, so I deleted that project (and Mingle presents me a nice warning screen whether I really would like to continue, which should minimize the chance to accidently delete any project) and created a simple, empty project. But Mingle takes “empty” very serious. No release plan, no product backlog, no taskboard – all gone. I started to play around, in order to resurrect these items, but no luck. Ok, go back to the beginning, same process: deletion of the empty project and choosing a new one. But which one? Eventually, I chose to use the Scrum template again and wiped out the content. Finally I got where I was heading to – and this is what I mean by hydra: Mingle offers you absolute freedom, but this freedom comes at the cost of ease of use.

So, what does Mingle offer?

A list of tabs, ranging from release plan over sprint backlog to the taskboard. Wait, did I say sprint backlog and taskboard? Yep, apparently for Mingle these two are different, although they should be the same. Still, Mingle uses the sprint backlog tab for a storyboard; it represents epics and their corresponding stories, whereas the taskboard represent stories and their corresponding tasks. Like with JIRA, Mingle also uses AJAX, for example to get detailed info about a task, to move a task and for adding a task. As a result, again no undo functionality is available. Access control is also very detailed, different user groups are represented like PO, QA, SM, developer, etc. At the same time, it is quite easy to use. Still, the hydra comes back into play, see the interface section below.

So, when one wants to start with Mingle, he has to keep one very important aspect into mind: everything in Mingle is a card. By card a rectangle on the screen is meant, not the physical cards we know to write down our stories. That means, no matter whether you talk about an epic or about a task, both are cards. Once you grasped that aspect, Mingle makes much more sense at once. The concept of the tree is still available within the “All” tab – this tree-based hierarchy makes it a very fast, easy & joyful task to create complex hierarchies, from task level all the way up to release level. People that love hierarchies will love Mingle.

Time registration works at task level and is based on hours. Mingle is quite strict: one can create a task without defining the amount of hours needed, but as soon as one wants to move tasks from “To Do” to “In Progress”, hours have to be defined, otherwise no movement is allowed. That option is enabled by default; it can be argued whether it is useful or not – in my opinion that depends on the company.

One feature that I was quite pleased with was the ability to add comments to tasks and other activities. I like that more and more social network aspects are introduced within Scrum tools as they encourage interaction with each other. Further on, Mingle has most of the features I want it to have, be it connectivity to other tools (Go, Twist), product backlog integration or export functionality (just Excel). Like Atlassians JIRA, Mingle offers a powerful API, which enables developers to let Mingle communicate with their favorite tool.

Usability

Usability in Mingle has its ups and downs, let me explain why. First keyboard shortcut commands are not available, although requested by the community since 2008. Developers love their keyboard. In fact, they do as much with it as they can, be it file navigation or something else. That is what I loved about JIRA, having this enormous amount of keyboard shortcuts. Sadly, this is not available within Mingle, although one can alter the layout and add keyboard shortcuts to the code, but that’s quite advanced in my opinion. A nice thing to have was the always-available bar at the bottom for adding a card. Even better, when working in the taskboard tab, one is able to drag and drop a card from the bar to the taskboard. When doing so, a dialog pops up that requires entering a name for the task, followed by a click on the “Add” button and that’s it – the task is automatically assigned to the story and is visible on the taskboard. The same works within the sprint backlog tab, but (I know you have feared an upcoming “but” and here it is) make sure that you do not mistake the tab you are working in. For example, if you are working in the “sprint backlog” tab and you want to add a task, everything will work fine but after clicking the “Add” button the task will disappear.

The reason for that is simple: the sprint backlog view is too high-level, it shows the relation between epics and stories and thus not tasks. Once you click on the “taskboard” tab, you will find your previously added task in a special “(not set)” category. As a result, it would be better to restrict the creation of tasks to the “taskboard” tab to avoid such confusion. Something similiar happens when I want to add a new user. To do so, I thought clicking the “Add Team Member” button in the admin panel would be sufficient. However, it does not offer to add new users. After being somewhat frustrated, i consulted the help pages – to add a user, one has to click on the Mingle icon in the upper left corner, which leads you to the start menu where you can choose your projects. There (and only there) you can add new users. The “Add Team Member” button in the admin panel is thus somehow confusing  – by clicking it, you can assign a created user to a certain role. Not very intuitive. These examples show that some aspects could be more self explanatory. However, each tab features a help bar that is visible by default when you click on that tab for the first time (good!) – a step in the right direction. I also liked the search bar, which is very present and delivers useful context information, although it does only work with whole words, e.g. if I search for a task named “coffee” I have to enter “coffee” since “cof” or “cof*” will yield no results. Last but not least, the contrast is very good – the orange header bar matches quite good with the darker tabs, featuring white text.

Performance

Performance-wise the experience is quite the same, it does not have a big impact whether I use a 16mbit DSL line or again my smartphone as hotspot. The only measurable difference is the amount of time one has to wait until the login screen is presented; when using the smartphone hotspot it takes ages to load. Interestingly, the experience after logging in is the same. Mingle supports AJAX as previously already mentioned, however, some actions like moving a task take a tickle too long – a performance improvement in this area would be very pleasant.

Resources

Mingle runs on all major platforms; Windows, Mac OS X and Linux are supported. You can also download a VMWare image or request a hosted trial for evaluation purposes. However, the hosting option seems not to be available in general. Computer requirements are comparable with the ones of other tools. However, I could not get Mingle to work with Safari (Firefox works just fine). Currently installed is the newest Safari version (5.1.5), but I cant drag & drop a task, some buttons work, pressing others has no effect and most of the dropdown menus do not work. That is quite surprisingly, as the system requirements state that Safari is supported since version 2.0.

Interface

Briefly already discussed within the first paragraph, the interface is quite ok. The layout is useful; it does not waste too much space (although the header could be smaller). A plus is that the header space can be used to show valuable information. By default it shows the amount of story points planned/completed for the current sprint and the whole release. The different features of Mingle are divided into tabs that immediately catch the attention of the user. Still, without a preconfigured template, I felt kind of lost. Mingle offered me too much choice so that I had no idea where to start. It does offer a fullscreen mode, sadly the text size of the cards does not scale and stays very small. To read the task titles one has to come very close, even if you are using a large screen. Therefore, readability is low; it makes thus little sense to use a big screen to replace a paper taskboard. Besides, if a user updates the status of a task, that information is not used to update the screens automatically nor is it used to notify the users that a change has occurred. Instead, one has to refresh the browser manually to check whether a change has happened.

Motivation

When it comes to the question how Mingle can motivate its users, the answer is “murmurs”. What are murmurs? They form the comment component of Mingle. A murmur can be attached to a task when creating one or when moving one. A murmur is thus a comment by the user, which adds valuable information for others. Besides this comment system, no additional motivation is provided.

Costs

Mingle does run on various platforms, as discussed above. Even better, it is free to download if 5 users are enough. If more users are required, the costs are 400$ per user per year, which is roughly 33$ per user per month. Compared to JIRA, which offers 10 users for 10$ dollars, that is quite much. Still, there are even more expensive tools available, so the costs are reasonable for what you get – depending on if you need the flexibility and features of Mingle.

Advantages

  1. Flexibility
  2. Hierarchies
  3. Help

Disadvantages

  1. Inconsistency
  2. Safari Issues
  3. Costs

The curtain falls

This was the second article of the Scrum Tools Series in which Mingle’s abilities to represent a taskboard were evaluated. In my next article I will have a look at TargetProcess.