Trello meets tracking
Trello is a very good surrogate for a physical team board: it’s simple and effective, and it can really help when you have a distributed team. That said, Trello (still) doesn’t offer a way to track time estimated and actually spent on cards, though many people are asking for that feature on Trello’s development board.
I had such precise need while working with one of our teams, so I came up with the following idea: using Trello’s mention system to send tracking notifications to a predefined board member (I call him the ‘tracking user’), collecting along this way all tracking events such as estimates and efforts.
Then I built a simple tool to persist and aggregate this data, so that it would have been possible to show interesting metrics such as estimate errors. I called this tool Tracco: a gem to help track estimates and efforts from Trello.
Tracco is a gem, and you can use it as is, but it’s intended use is inside an app which displays collected data. To give an idea of what I mean, I developed a bare minimum Rails app to properly present card estimates and efforts: it’s called Trello Effort App. It’s really simple, but I wish it could be improved with the help of other committers :O)
More details
To start using Tracco you should have a Trello account, a Trello board and a board member to use as ‘tracking user’. You’ll also need to know your Trello developer key and generate a proper auth token to have access to the trackinguser’s notifications. To see how to have these two keys, read the following section.
The Trello API is used behind the scenes to read data from the team board. Tracco uses the awesome Trello API Ruby wrapper for this purpose.
An example
Here I show an example of how you could use Tracco. For more info please refer to the official README.
1 2 3 |
|
Then run the initializer
1
|
|
to create the two configuration files, which you’ll need to edit properly (see “Where do I get an API key and API secret?” section).
To fill the correct values for the mongodb environments (see here to have more details).
Where do I get an API key?
Log in to Trello with your account and visit https://trello.com/1/appKey/generate to get your developer_public_key.
Where do I get an API Access Token Key?
To generate a proper access token key, log in to Trello with the ‘tracking user’ account. Then go to this URL:
https://trello.com/1/connect?key=<YOUR_DEVELOPER_PUBLIC_KEY>&name=Tracco&response_type=token&scope=read&expiration=never
At the end of this process, you’ll receive a valid access_token_key, which is needed by Tracco to have the proper rights to fetch all the tracking notifications sent as comments to the ‘tracking user’.
Collecting data from Trello
1 2 3 4 5 |
|
Console
You can open a irb console with the ruby-trello gem and this gem loaded, so that you can query the db or the Trello API and play with them
1
|
|
The default env is development. To load a console in the (e.g.) production db env, execute:
1
|
|
Estimate format convention
To set an estimate on a card, a Trello user should send a notification from that card to the tracker username, e.g.
@trackinguser [15p]
@trackinguser [1.5d]
@trackinguser [12h]
estimates can be given in hours (h), days (d/g) or pomodori (p).
@trackinguser 22.11.2012 [4h]
will add the estimate (4 hours) in date 22.11.2012.
Effort format convention
To set an effort in the current day on a card, a Trello user should send a notification from that card to the tracker username, e.g.
@trackinguser +6p
@trackinguser +4h
@trackinguser +0.5g
efforts can be given in hours (h), days (d/g) or pomodori (p).
Tracking an effort in a specific date
To set an effort in a date different from the notification date, just add a date in the message
@trackinguser 23.10.2012 +6p
There’s even a shortcut for efforts spent yesterday:
@trackinguser yesterday +6p
@trackinguser +6p yesterday
Tracking an effort on more members
By default, the effort is tracked on the member which sends the tracking notification.
To set an effort for more than a Trello user (e.g. pair programming), just add the other user in the message, e.g.
@trackinguser +3p @alessandrodescovi
To set an effort just for other Trello users (excluding the current user), just include the users in round brackets, e.g.
@trackinguser +3p (@alessandrodescovi @michelevincenzi)
Tracking a card as finished (aka DONE)
Sending a tracking notification with the word DONE
@trackinguser DONE
will mark the card as closed.
Moreover, a card moved into a DONE column (the name of the Trello list contains the word “Done”) is automatically marked as done.
Google Docs exporter
To export all your tracked cards on a google docs named ‘my_sheet’ in the ‘tracking’ worksheet, run
1
|
|
The default env is development.
If you provide no name for the spreadsheet, a default name will be used. If the spreadsheet name you provide does not exists, it will be created in you google drive account.
So, running simply
1
|
|
will create (or update) a spreadsheet named “trello effort tracking” using the development db env.
Requirements
- MRI version 1.9.3+
- mongoDB - macosx users with homebrew will just run ‘brew install mongodb’ to have mongoDB installed on their machine.
- (optional) rvm is useful (but optional) for development
Roadmap and improvements
I develop Tracco using Trello itself.
Contributing
If you’d like to hack on Tracco, start by forking the repo on GitHub:
https://github.com/xpepper/tracco