Friday, April 17, 2009

Wearing our Developers' Shoes

I set a quarterly goal to write an application in my 20% time that uses publicly available Google APIs. While some would call this scenario testing, I refer to it as "method user experience design" (think method acting). The process can often be painful, but I do it in the hope that it will make me a better designer. It puts me in the shoes of our customers who build products on top of Google's products. I read the same documentation, search the web for the same solutions, write code against the same APIs, and deploy to the same infrastructure. From this exercise come product improvements and empathy. I also enjoy attempting to make something useful, sketching with Python and JavaScript (the charcoal and conte crayon of web development), and proving that 20% time is alive and well.

When it came time to pick last quarter's application, I wanted to work with YouTube's APIs for two reasons: I have a background in video (as a filmmaker and as a software designer) and I wanted to share family videos with my oldest brother, who is hard of hearing and learning disabled. Fast forward a few months later and I had CaptionTube, an application for creating captions for YouTube videos. CaptionTube has launched on TestTube and Hiroto has written a post about it on the YouTube blog.

In addition to the YouTube Data and Player APIs, the application is hosted on Google App Engine and uses the Datastore, Google Accounts, Mail, and URLFetch Python APIs. I used several open source software projects to create it: Django and jQuery, and app-engine-patch. If you are attending Google I/O in May and would like to ask me questions about my experience or discuss your experience using Google's developer's products, please look for me in the developer sandbox or office hour sessions.

1 comment:

  1. Thats a great plan! I am going to be something similar for my honours year project. I should be spending atleasy 20% of my time working on it.

    I am still thinking about whether i should create a search engine or another web 2.0 application