Microsoft Health Solutions works out of a pretty classic suburban office building --- seven total floors, three underground for parking and four for humans. The building is pretty much a rectangle, with a central elevator core and two stairwells, one at each end. Most of the space is taken up by individual offices (thanks to Microsoft's long-standing tradition of trying to give each employee some personal space), but also includes conference rooms, a couple of computer labs, kitchens and bathrooms, and some small common areas.
Most of us range between floors during the day --- not least of all me, whose office is on floor two while my entire team is on --- really --- one, three and four. And I'm always amazed at how many people will sit and wait for freaking EVER for the elevators to show up rather than just taking the stairs. Now don't get me wrong --- as much as I'd like to be I'm not Mr. Fitness myself --- but sheesh, it's not like this is a high rise or anything.
This seemed like a perfect opportunity for a fun and simple HealthVault app --- one that would encourage folks to add a little exercise to their day by choosing the stairs as part of an intra-office competition. And thus was born "Stairs" --- an experimental (and still not totally finished) HealthVault app that tracks total time spent and elevation gained while climbing stairs.
My primary challenge was to make it easy and quick to record stair climbing activity --- unobtrusive enough that people wouldn't get annoyed and quit participating. While theoretically there are devices out there that could do this completely transparently by tracking elevation and such, that wasn't a realistic option. Instead, I seized on Microsoft Tag as the perfect compromise between ease of use and broad availability.
The easiest way to think about Tag is that it's just a shortcut for typing a URL into your phone (this isn't completely fair, but works for my purposes here). The Tag application takes control of the camera and uses it to scan a 2D barcode. Encoded into the barcode is a URL, which Tag automatically sends to your phone's browser. It is pretty dang slick, and makes it feasible for mobile apps to use long, data-rich URLs that would be otherwise just ridiculous to try to enter on a phone.
Tags made the user experience really easy. After a one-time registration process that links a phone to a specific HealthVault record with a persistent cookie, all the user does is scan a tag when they enter and exit the stairwell. Each stairwell door has a unique barcode and URL that identifies the stairwell, the floor and the elevation (by a count of stairs from the lowest level) at that doorway. For example:
This is the tag for the 4th floor of the Microsoft Building 113 North stairwell --- you would have to climb 117 stairs to get from the bottom of the stairwell to this point.
There's a bunch of annoying logic to make sure the users leave from the same stairwell they entered on, etc. --- but pretty much that's it. We collect all the stair climbs for a single day into one HealthVault "exercise" session that accrues throughout the day, like this:
... and from there, the items can be used in HealthVault applications like RouteTracker or Heart360. Pretty sweet! The last thing I plan to do is to write a nightly job that pulls the items from HealthVault and stores them in our internal Amalga instance --- so we can keep track of who is winning the office challenge.
If you'd like to try the app yourself, you can start at the Stairs Preview website. There are a few sample barcodes there to play with, or you can make your own --- just create a free Tag account and use the URL format above for your own stairwells! Remember though that this is still an experiment, and is running against the test instance of HealthVault, not the "real" one --- so you can't use your production account. I may get around to promoting the app, but not sure exactly when. Maybe a summer intern task? Or --- I'd be happy to donate the code if somebody else would like to make it real, just let me know using the contact form here on the blog.
Fun stuff indeed. Next on the list --- Kinect!