Any agile coach (except perhaps Chet Rong) will tell you that there are a few critical keys to doing agile right:
- Don’t depend on email and spreadsheets; collaborate on work with an issue tracker.
- A short daily stand-up is important to keep everyone up to date on progress and identify dependencies.
- Display all critical team information on a highly visible wallboard, so nothing gets missed.
The Atlassian Marketplace team relies on our wallboard to display the important shared information, like the status of our CI builds, high-priority bugs (blockers), and our team calendar. We also group “What’s for lunch?” into this tier of wallboard-worthy info.
A few months ago, we weren’t always sure what was for lunch (the horror!). We played it safe and used the Flickr API to pull in images that matched our search term: “corned beef”. Every day, our wallboard pulled in the latest photos of corned beef from Flickr and we could rest assured that, at the very least, corned beef was always an option. Then our San Francisco office started getting lunch delivered daily, and our wallboard would never be the same.
How to feed an Atlassian
Here at Atlassian, we. love. food. We like to eat together so much that we keep fully stocked kitchen in our Sydney and Amsterdam offices. Here in San Francisco, we take it one step further. We’ve partnered with local startup EAT Club to deliver freshly prepared lunches from local restaurants for every employee. It’s simple: Every morning, select your lunch from a rotating menu, and just before 12 pm you can find your individually labeled lunch in the kitchen.
After three months of Eat Club, one hungry San Francisco developer found a major flaw in the EAT Club service: no REST API.
How to feed a wallboard
Once Atlassian SF had EAT Club, we knew exactly what the choices were for lunch each day. EAT Club even sends us an email each morning with the day’s menu. But what self-respecting agile development team depends on an email? We knew there had to be a better way.
Our hungry developer set out to see if EAT Club has an API. Finding none (we’ll cut them some slack, the food is pretty good) he decided we could create our own, using the primary data source we had – the daily menu emails. First, he set up a Gmail filter to forward all emails from EAT Club to Postmark. Using Postmark’s new inbound email parsing service, each EAT Club email gets parsed and posted as JSON to a new application with a REST interface.
We build a lot of simple apps and services at Atlassian like this one. To speed up development while keeping Atlassian apps looking similar, we frequently use an app skeleton with AUI, Atlassian’s own front-end library, and a Django backend. That skeleton already included the Django REST framework, so implementing an API became a straightforward process. Postmark POSTs the parsed email to the app as JSON, the app provides a REST interface for each menu item and image link, and our wallboard consumes the API. Voila!
If you’re curious what we’re eating, check out the app. And kudos to Patrick Kaeding, the developer hero of our story.