ThoughtFerret: your happiness monitor

22 Dec 2010

ThoughtWorks Android comp

A few months ago, ThoughtWorks Australia ran an Android competition where anyone could create an app and present it during our annual winter team hug. The apps would then be judged on several criteria including originality and usability. What better opportunity to give Android development a go and discover the platform?

So Fabio Pereira and myself set up to create something useful, and settled on the following context: what if it was easier to monitor and analyse your happiness? What if companies could react to this information in an Agile way and make sure they are focusing on the right areas? What if a device everyone already carries around could help achieve this goal?

Here is the 10 slides presentation we used to introduce our app:

Of course, you'll have noticed that slide 6 leads to a live demonstration. In the absence of us gesticulating, here's a small walkthrough with lots of screenshots.

The app

It all starts after you install ThoughtFerret on your phone - it's the virtual equivalent of adopting a nosy pet weasel that enquires about your well-being. At random times during your week, your pet ferret will pop out to ask you about your day; feel free to share your joy or frustrations or ignore it for this time.

ThoughtFerret Notification

If you choose to share some info, you are then prompted to rate your current happiness on a scale from 1 to 5. We decided to go for a small scale that avoids false precision while still giving a few distinct states of mind.

ThoughtFerret update with tags

Your ferret will also prompt you to enter a few tags to explain your rating. Really, this could be anything from "agile" to "fish and chips". We'll see very soon what we can do with this information! This screen uses voice recognition and separates all words into tags, and you can join words into a phrase by drag and dropping them.

ThoughtFerret update with tags

All this data is then stored safely for you to look at whenever you want.... which brings us to the home screen! From here you can access several tools to help analyse trends and patterns.

ThoughtFerret home screen

The first tool we'll look at is the tag cloud. This screen displays the most common tags you entered, plotted in different positions and sizes. The rightmost tags are the ones associated with happy moments, whereas the leftmost one you should probably avoid. The tags' relative sizes represent the frequency at which you have used them.

ThoughtFerret tags screen

On to another tool now: the mood history, which shows your happiness data plotted over time. This helps you visualise how your happiness varied over the course of the few months. The time scale can help you correlate your mood with important events that happened and reflect on how you handled them.

ThoughtFerret history screen

This screen has its own options menu which lets you change the graph type (because we can Smiley ) and the graph's scale, from a single month to a whole year.

ThoughtFerret history options

Finally, the last tool available in ThoughtFerret is a world map which displays all of the ThoughtWorks offices around the globe. Every time you shared your mood with your ferret, it recorded your approximate location. Here we use this information to show which offices you worked in recently, and what you happiness was like over the last 2 months. We also analyse the trending up or down, displayed as an arrow in the bottom right corner.

ThoughtFerret map of the offices

Using pinch gestures, you can zoom out on the map. After a certain level, the cities aggregate into countries to show which countries you were the most happy in if you recently travelled a lot:

ThoughtFerret map of the countries

While this last feature can seem of little relevance for the moment, if makes a lot more sense when fitted into the bigger picture that we didn't have time to develop. From here, we'd like to synchronise everyone's data anonymously to a central server where human resources can analyse global trends. Using the same app pointed to the remote repository, it's easy to imagine how the tags screen could represent the most popular hash tags in the company, how the history can give an overview of our global happiness, and how the world map makes a lot more sense!

Finally, I thought I would just mention the last screen which allows you to fine tune your ferret for optimal nosiness.

ThoughtFerret options

A few links

Well that's our app! But you might wonder: why talk about this now when the competition happened 3 months ago? What motivated me to write this post Jeff Sutherland's recent article called happiness metric. I encourage you to have a good read, he talks about the benefits of using a happiness metric, with concrete examples and many links to valuable resources. I can really see value in companies being more aware of their employees happiness and am really happy to see this becoming a more common practice. Oh and Jeff also mentions recording this data in a spreadsheet using a scale from 1 to 5.... you have to admit this is a nice coincidence!

Another reason is that our code is finally on GitHub, accessible for anyone to poke at or play with. Unfortunately it's not the latest version since we suffered a bad computer crash before we could push the last changes, but it should be close enough to run on a phone without too many bugs. Of course fell free to fork it and make it better! Smiley