We do cross-platform development with .NET, Java, and iOS. I have been tasked with selecting an Application Lifecycle Management (ALM) solution suitable for managing multiple small distributed teams.

I'm struggling to see how any one of the vendors have any major advantage over the others. It's not at all clear to me how to choose between any of the major vendors solutions as they all seem pretty good, all support cross-platform, etc.

Just for context, I'm trying to decide mostly between the following suites of ALM tools:

* Atlassian (JIRA, Greenhopper, Confluence, etc.)
* Microsoft Visual Studio 2012 ALM: (Team Foundation Server, etc.)
* IBM Rational Collaborative Lifecycle Management (Rational Team Concert, Requirements Composer, Quality Manager, etc.)

What **process** should be used to assess and pick the best solution? I'm struggling with how to proceed.