Keeping track of your tasks – even in a one-person hobby project – is a good idea. If you do not want to use Excel sheets but try out one of the dozens of project managements tools out there, here is one tip: check the export options first! Otherwise you might fall into the same trap as I did when I tried Favro and moved to Jira a year into the project.
The Story Behind
I am used to managing my project tasks, user stories, and bugs with a dedicated project management tool. For my current hobby project I decided to give Favro a try. That was in March 2017. I signed up for the free plan with a ten day trial of the full commercial version. At this time Favro was still relatively new but it promised a nice framework for agile teams, especially in gaming, where teams are very heterogeneous. Of course, my team only consists of one person, but I was curious about their approach to agile development.
It is not my intention to write a review for Favro here, so let me just state that it is a useful enough tool with some nice features for collaboration. Especially the free plan lacked some of the tools you would expect for agile development such as burndown charts, and managing your tasks always required one or two clicks more than necessary. But for a one-person development team it was more than enough. The big disappointment came in November last year when Favro announced that the free plan would be terminated. I had the options to either choose a commercial plan (at $34/month for up to five users) or switch to another tool. The first, of course, was not really an option.
Exporting from Favro
When the free plan was cancelled I had ten days of “trial” left to get my data out of Favro. That was when I first checked the export options – of which there were none. No export to csv or any other format. There were some summaries of your task lists, but copying them to clipboard completely broke the formatting. Fortunately, I only had a little more than 40 entries so far, so I resorted to copying each task to an Excel sheet by hand as well as saving the summary pages locally for later use.
Not having much time to continue work on my project I left it at that, being happy that at least I had rescued my data. These days I gave it another try to find a new tool for my project management. However, I realized that manually creating all tasks again was still a lot of boring work, so I sent an email to Favro asking if they finally had implemented an export method. Favro support was actually very forthcoming and suggested that I try their REST API to get my data. They even put me on the standard plan for two days so that I could recover my data this way. Again with the help of Favro support I managed to recover my task lists in JSON format. Here is, in short, what you have to do:
- Generate an API token from your user profile as described here.
- Download and install curl.
- Make a first REST API call to get your organization ID. The windows command line call would look like this:
curl -k -X GET "https://favro.com/api/v1/organizations" -u "firstname.lastname@example.org":"VHu3MVHuP6jHzuVa7qRwHmdFeIRA4ZSBi5dXtKr2-Gg"
The cryptic string after your mail address is the token you generated before.
- Use the organization ID to download all remaining data of your project, such as users, tags, widgets, cards, and comments. The call for getting your backlog, e.g., would be the following:
curl -k -X GET "https://favro.com/api/v1/cards?widgetCommonId=09e6dc039911ef68397f2439" -H "organizationId: af77fd8d3516e1eha75df4bf" -u "email@example.com":"VHu3MVHuP6jHzuVa7qRwHmdFeIRA4ZSBi5dXtKr2-Gg" > Backlog.txt
All commands and examples can be found in the developers documentation.
Setting up Jira
Jira is a commercial product just like Favro. However, the entry costs for small teams are much lower than with Favro. The hosted version is available for $10/month for up to ten users. Even better, this becomes a one-time price tag if you host Jira on your own server. Of course, prices increase drastically for more users, but it’s a long way to an eleven-person team. Finally, if you are a one-person team anyway, you do not even need a server but can just install it on your local PC. Following the installation guide this was done in less than 20 minutes.
Jira provides a number of methods for importing projects from other sources, one of them being JSON. Using the input format description for Jira I wrote a small C# project which converts my Favro export files to Jira format. In case someone ever needs it I uploaded it to GitHub. Just don’t look to closely, it’s a very dirty hack!
The Moral of the Story
The lesson I learned from this episode is simple. Always make sure there is an exhaustive export functionality when you entrust your work to an online service. With the transition from Favro to Jira I lost some very useful information. Timestamps of most events such as task creation or updates were not exported. I also lost the ticket states such as open, in progress, or closed. Fortunately I can look this up on the pages I saved locally, and there are only few tickets in total.
One final note: there is an option to sync Favro with Jira which I did not have the time to try. For anyone with a paid plan this may be a good way to backup the data in Favro.