My #Mingle experience

One of the things I love about being a consultant is that you are forced to work with new technologies. Companies and people tend to find something they like and then stick to it. This is true whether we are talking about food, TV shows, or software. I have used TargetProcess for an Agile project management tool in the past and I loved the interface and the functionality that was provided.

On my latest project, the client had already chosen Mingle. I was actually looking forward to using a different Agile project management tool so I could compare and contrast. After being able to use Mingle for a while on my projects here are my observations:

Kudos!

  • I love that Mingle and TargetProcess both allow you a ton of power to customize the product to fit your current situation. Both TargetProcess and Mingle also implement the concept of workflow. This is very powerful and if anything I would suggest that Mingle’s transitions are a more elegant solution.
  • Although Mingle seems easier at the start, it actually took me longer to understand the structure and process and what structuring my cards in a certain way really meant. That said, once I understood those implications, Mingle provided more power and functionality.
  • The flexibility to make every object in the process a card and define the attributes for those cards is a very powerful metaphor.
  • The only place Mingle seems to be awkward is when you are creating and managing by Iterations. The process and functionality didn’t seem to flow as nicely as it did in TargetProcess. In hindsight I believe TargetProcess is perhaps better suited to Iterative execution of projects where Mingle is better suited to pure Flow execution of projects. Once we dropped the concept of Iterations and just focused on the Flow and WIP, the Mingle template and process was much simpler and easier.
  • MQL is an interesting beast. Once you understand what the basic syntax and functionality is, it provides a lot of power to be able to generate reports and graphs to report on your projects. To be honest, once you get the hang of it you wish that MQL provided more functionality so you can generate more metrics straight from MQL. Pretty cool stuff.
  • The concept of having a Wiki per card that you can modify is very cool. Once you realize that you also define templates for the Wiki’s for each card, you start to get even more bang for your buck.
  • The concepts of Trees and setting up Aggregate properties took a little playing to fully grasp. This might be something that Thoughtworks could generate a FAQ as I’m sure I’m not the only one that had questions. Once you understood the how and why to generate trees and how to create aggregate properties, the benefits of using these structures were unquestioned.
  • The ability to create grids or lists from any types of Cards and customize the appearance is awesome. Took a while to grasp just how powerful this is. Once you understand, you can virtually do anything you want.

Pet Peeves

  • I really wish I could hide the All, History, and Murmurs tabs. For some projects where we are all co-located, these tabs are not used and they just clutter up the screen.
  • I hate how my tabs are in alphabetical sequence (for the most part) and I can’t change the order. Seems like a minor thing, but the experience would be so much better if I could do this.
  •  The visualization of the Trees need some attention. This is a great idea for a visualization, but real estate quickly becomes an issue. Options to expand cards horizontally instead of vertically would help greatly. It quickly becomes cumbersome when you have 20+ cards. 

Summary

It will take a bit longer to get the hang of using Mingle as compared to TargetProcess or Rally. But this is time well spent. I will have a real dilemma to choose an Agile Project Management tool for my next project. If you haven’t used Mingle and especially if your project is more flow-based than iteration-based, I’d highly recommend looking into it.

#Selenium Tales from the road part 1 – Artifact Naming and Organization

How have people organized and structured the artifacts that Selenium uses? As a moderate user of Selenium, I wonder if I am doing this the recommended way or if there are better ways that I am unaware of. To this end I thought I would share the organization and structure I have used and see if anyone can provide suggestion on how to make it better.

Current State

I am using Selenium 2.1 and I am also creating Test Cases and Test Suites. I am using User Stories to capture my requirements and the Test Suites and then the Test Cases are based off of those requirements. The table below shows the naming standards and organization that I have used:

Artifact

Naming Standard

Conventions

User Story

[User Story #]-[User Story Description]

Documented in TargetProcess

Test Case

[User Story #]-[Test Case Description].tc

Multiple test cases per User Story

Test Suite

‘US'[User Story #’s (separated by ‘-‘)].ts

Multiple User Stories per Test Suite.

Why?

Why did I choose the following seemingly complex naming standards? Well I was having these problems:

  1. I could not tell which Test Cases where in which Test Suite
  2. I could not tell which Test Cases tested which User Story
  3. I could not tell which User Stories were tested by which Test Suite

By using the above naming standard and organization, I was able to answer all of these questions and also organize my Selenium artifacts relatively easily. I wrestled with possibly numbering the Test Cases and then referencing those Test Case # in the Test Suites. But I realized that the Test Case # was not that useful. What I really need to know was what User Story the Test Case and Test Suite exercised.

So far these naming standards and organization has worked quite well.

Suggestions?

What has everyone else found? Are there best practices I am not using? Any recommendations?

Next Steps

Over the next little while, I will publish three additional Blogs related to my Selenium experience. The Blog posts will address the following topics:

  • Selenium integration and reporting with TargetProcess
  • Selenium integration and automation with Maven (or possibly Fitnesse)
  • Selenium Test Case tips and tricks (I’ve already found a wealth of tips and tricks but I thought I would wait until I have automated all my tests)

Hopefully this will be of interest to others out there. Please let me know if there are certain topics people would like to see discussed.

Best Agile Tool and Technique awards for 2011

Hot on the foot steps on my post about Agile Project Managements tools, I felt it was a good time to present the inaugural Best Agile Tool and Technique Awards for 2011. There are some components of these other Agile Project Management tools that I felt I would be negligent to not recognize. In addition, there are several other tools, techniques, and services that I consider critical to my day-to-day existence. I will be excluding Facebook, Twitter, and Linked In from these awards as they get enough attention without additional awards from the Best Agile Tool and Technique Academy.

Here is the line-up for the BATTY awards for 2011.

Best Manual Technique in a leading role – Planning Poker (Planning Poker)

I know it has been mentioned before but due to its impact on the success of a project, I would be negligent to award Planning Poker in the Inaugural BATTY Awards. The impact the technique can have on solution design is usually more important than the estimates provided.

Best Drawing Tool in a supporting role – Gliffy (Gliffy)

I have been searching for a while for a simple drawing tool that takes us back to the early days of Visio and MacDraw. Something that I can use to create quick drawings that also convey information simply and professionally. Gliffy is the answer. Simple, elegant, and relatively inexpensive. ($5/month for an individual license) The User Interface is very pleasing and intuitive.

Best Kan Ban Tool in a leading role – AgileZen (AgileZen)

Hands down Agile Zen is the best Agile Project Management Tool at providing a Virtual Kan Ban board. Agile Zen is extremely easy to use and has the nice feature of tracking how long a particular User Story has been blocked. Agile Zen’s intuitive interface, ability to colour code stories, and also produce progress reports based upon the user stories make it a true winner. A colleague has also written a process to extract the data contained in Agile Zen using the published API to allow for additional reporting. Very cool.

Best source of Agile and Technical information in a supporting role – InfoQ (InfoQ)

Every month the InfoQ email newsletter arrives and every month there are at least three presentations that have “must watch” content. The presentations are focused on the practitioner with real stories from the front line on how specific technologies have been implemented in real companies. The content is for a multitude of topics. Currently InfoQ offers the following streams:

  • Java
  • .Net
  • Ruby
  • SOA
  • Agile
  • Architecture
  • Operations

There is truly top-level presentations and information for everyone.

Best Self-Hosted Agile Project Management Tool in a leading role – TargetProcess (TargetProcess)

Please see my previous post: The #2 Agile Project Management Tool

Best Externally hosted Agile Project Management Tool in a leading role – Rally (Rally)

If it was not for the criteria of needing to easily host the Agile Project Management Tool, I would have chosen Rally. Granted, there is little to choose between Rally and Version One as they are both excellent choices. The only reason I choose Rally over Version One is primarily personal preference. My impression was that Rally has a more intuitive interface and also provides me with more opportunity to customize the use of the product.

Best Adaptation of a technology to Agile – Automated Testing (Automated Testing)

Although automated testing is not a new technology, it has been adapted to Agile exceedingly well. In fact, many people state that they would not consider doing an Agile project without Automated Testing.

Please comment if you have a tool or technique you feel was shut out by the academy this year! I’d better happy to post additional products that you feel should have made the cut.

The #2 Agile Project Management Tool

Why would I write a post about the #2 Agile Project Management Tool and not #1? Because we all know that sticky notes, and physical Kan Ban board and team stand ups are obviously #1, right? I mean what tool could improve upon that? But in addition to the physical sticky notes, there are some other advantages that can be realized by using one of the many Agile Project Management tools out there.

Agile Project Management Tool Objectives

The additional value I think that can be realized are:

  1. Provide mechanism to manage a Virtual Kan Ban board and facilitate project and release planning.
  2. Provide a virtual, web-enabled Project Management tool that can be used by remote team members.
  3. Provide automated reports that can be used to report on project status, velocity, burn up, and burn down.
  4. Create a database of project estimates versus actuals that can be used to improve.

My Search

I know when I started looking around I was overwhelmed with the amount of tools out there. My purpose in writing this blog post is to provide the information that I wish I would have been able to find to help me with my choice back then. I have downloaded and installed each and every one of the five tools that I will be discussing. Now some of these tools I downloaded and evaluated a few months ago so the functionality may have changed somewhat. My apologies if certain aspects have changed, but these tools are all changing very quickly and it is almost impossible to keep up with all of them.

The Candidates

The Agile Project Management Tools I evaluated were:

  1. Version One
  2. Rally
  3. Target Process
  4. Mingle
  5. Agile Zen

 The Rating Categories

I rounded the criteria down to 10 rating categories which I graded the candidates in each. I graded the candidates by a number from 0 to 3. The ratings were awarded based on my review at that time of the functionality. The review was what I would term to be an intermediate review. I tried to go into a good amount of depth, but I also did not have an inordinate amount of time to perform the review. As usual when I do review like this I fill out the numbers and let mathematics define the winner.

  • Internet-enabled (Private) – allows for all team members to remotely log in and review status
  • Virtual Kan Ban – provides a virtual Kan Ban board that all team members can view
  • Manage Physical Kan Ban – allows for the management of the physical Kan Ban board by printing cards and splitting stories
  • Iteration Planning – facilitates the planning and managing of Iterations
  • Release Planning – facilitates the planning and managing of Iterations and Releases
  • Project Planning – facilitates the planning and managing of Iterations, Releases, and Projects
  • Self Hosted – Allows for the client to host the tool. (Easily and with little additional effort or cost)
  • Workflow and Customization – provides workflow functionality and allowing for customization
  • Build Project History – allows for the retention of project estimates and actuals to improve
  • Reporting – provides canned reports to help to report on status.
  Version One     Rally Agile Zen Mingle Target Process
Web-enabled

3

3

3

3

3

Virtual Kan Ban

2

2

3

2

2

Manage Physical Kan Ban

3

3

3

3

3

Iteration Planning

3

3

1

1

3

Release Planning

3

3

1

1

3

Project Planning

3

3

1

1

3

Self Hosted

0

0

0

3

3

Workflow & Customizations

1

2

1

1

3

build project history

3

3

1

1

3

Reporting

3

3

1

1

3

           
Total

24

25

15

17

29

Notables

  • For what I needed out of the Agile Project Management Tools, Agile, Version One, and TargetProcess were at the head of the class. This is because they allow me to manage iterations with a Kan Ban board AND facilitate overall project planning as well.
  • AgileZen probably has the best Kan Ban board with a timer on the duration a story has been blocked. Very nice feature.
  • TargetProcess has a great feature to be able to easily split stories.
  • TargetProcess was the only one out of the big three that allowed me to EASILY host the solution. This was a key differentiator
  • TargetProcess had an excellent Workflow system with the ability to add custom fields and rename standard terminology in the system. Very cool.
  • TargetProcess also had a good suite of canned reports and a facility for me to create my own reports

In Summary

For my needs, TargetProcess was the clear winner. Any of these tools are great choices depending on what you need to do. But given that I needed to host my data and plan releases and the entire project, TargetProcess was a clear choice. It was also a huge benefit that I was provided the ability to customize the solution and workflow. I have learned to appreciate the power of the customization and workflow features and have used continued to increase my use of these features.