Howto migrate from Mingle to Pivotal Tracker

by on January 22, 2009 · 3 comments

After using Pivotal Tracker myself for a couple of weeks, I recently migrated our complete development from Mingle to Tracker.

Migrating existing data between tools using CSV is always a pain. It starts with Mingle using tabs as a separator instead of, well, commas. Of course, you have different field names to match up, and then there’s the difficulties of making MS Excel write a CSV file with commas as separators instead of semi-colons. To avoid all that, I put together a super simple Ruby script to convert a Mingle export into a valid Tracker import:

Note that you might need to install the fastercsv by typing sudo gem install fastercsv

require 'rubygems'
require 'fastercsv'
 
def convert_type(mingle_type)
  types = {
    'Story' => 'feature',
    'Issue' => 'bug',
    'Operations' => 'chore'
  }
  types[mingle_type]
end
 
def convert_owner(mingle_owner)
  owners = {
    'mm' => 'Matthias',
    'da' => 'Dan'
  }
  owners[mingle_owner]
end
 
def convert_status(mingle_status)
  status = {
    'open' => 'unstarted',
    'in progress' => 'started',
    'ready for deploy' => 'finished',
    'deployed on ref' => 'delivered',
    'tested' => 'accepted'
  }
  status[mingle_status]
end
 
FasterCSV.open("/Users/mm/Desktop/to-import.csv", "w") do |csv|
  header = ['Story', 'Story Type', 'Owned By', 'Requested By', 'Description', 'Current State']
  csv << header
  FasterCSV.parse(File.read("/Users/mm/Desktop/current-iteration-20081222.csv"), {:headers => true, :col_sep => "\t"}) do |row|
    story = []
    story << row['Name']
    story << convert_type(row['Type'])
    story << convert_owner(row['owner'])
    story << 'Produktmanagement'
    story << row['Description']
    story << convert_status(row['status'])
    csv <<  story
  end
end

Things Puzzling New Tracker Users

There are a few things, which might confuse a user coming from Mingle or any other traditional agile project management tool.

The Description Text Area is Tiny

tiny-text-area-in-tracker
Whether this affects you depends on how closely you follow best practices of formulating User Stories. If you’re following the “as a, I want, so that” template, you should be fine with the provided space. But if you’re more into formulating complete specifications, you might run out of space pretty quick. Fortunately, you can expand the text area by dragging the grey handle below it.

Attachments Only After Saving a New Story

Unfortunately, saving a newly created story closes the expanded details forcing you to re-open it in order to add attachments. This is inconvenient in comparison to the direct upload possibility in Mingle’s detail view.

Floating Release Markers

I like the idea of a release being shown as a special story type acting as a marker in the flow of stories. What I don’t like there is that you cannot position the release marker above stories which are in progress. Usually we want to fix the scope of a release during an iteration, and not all stories, which are currently being worked on, will be in the next release. But Tracker assumes that everything currently in progress will be finished by the next release. This is one of the very few points where Tracker’s assumptions and our perception differ.

No Rich-Text-Editing For Stories

Like with the size of the text area for the story descriptions, this might not be any problem for you. But as soon as you want to add some test criteria to a story description, you might run into this limitation: You can’t nicely format a bullet point list. The only possibility to format your text are bold or italics. And that’s it. While I’m not a fan of fully fledged WYSIWYG editors (as I consider them overhead – especially in a tool like Tracker), I would like some basic formatting like provided by textile or markdown. Please, Pivotal, at least give us bullet points!

No Internal Story Links

In the same vein, I miss Mingle’s feature to just enter #1234 (where 1234 is any story ID) and Mingle creates a hyperlink to the story. In Tracker, each story has a permalink, but using it e.g. in an application specific browser like Fluid, opens the story in my default browser instead of focusing the selected story in my current screen. While I really like the permalink feature, e.g. for putting them into an email or sending via skype, I would love a simple way to internally link to another story. It could work like the reveal button in Tracker’s search results.

While even Tracker has a few minor shortcomings, it nevertheless runs in a league above all the traditional agile project management tools. Tracker’s seamless support for your agile project makes the tool fade into the background and leaving you free to focus on creating customer value!

Did you enjoy this article? Get new articles for free by email: