Blog  |   Puzzles  |   Books  |   About

Fun with Facebook & Yahoo!

My latest project for my employer (Yahoo! Music) was pleasantly unexpected on a number of levels.

It’s an application for Facebook, called Yahoo! Music Videos. If you’re on Facebook, check it out!.

If you’re not on Facebook, check out Facebook! It’s kind of like MySpace, but not as ugly.

UPDATE: The first two reviews for YMV/FB have been very encouraging! facereviews.com says it “rocks,” and Pulse 2.0 called it the “best Facebook app so far”.

Our app is a mashup of sorts, which combines the personalization features of Facebook with the massive video library of Yahoo! Music. When you load it, it gets the music-info from your facebook profile and your friend’s profiles and finds a collection of music videos which match the names of the singers and bands you and your friends have listed. From those videos, you can then find videos of related artists, view them, and share them with your friends.

If you’re not interested in software development, you’ll probably find the rest of this pretty boring. Go watch a video!

* * *

Yahoo! is a very big company, and like most big companies it can be difficult to turn projects around quickly. Learning how to work quickly in this kind of environment has been a real education for me.

This particular project was started about a month ago, when I received an email from Ian Rogers asking if anyone was interested in getting Yahoo! Music onto facebook. Ian is the head of Yahoo! Music, and I’m pretty sure that without his annoying naggingpersistent encouragement during that first week, the project would still be in the planning stages.

I got involved (even though I was already pretty busy on other projects) because a Yahoo!/Facebook app would amount to a mashup, and I love making mashups. Mashups are challenging because they involve multiple colliding technologies. In this case, not only would we be combining the Facebook and Yahoo APIs, which are very different, but I would need to be working in both PHP and Flash Actionscript, and I’d need to do a little image rendering on the back-end. I had been hired by Yahoo! pretty much on the strength of the mashups I had created with Flickr, using those same technologies, so here was a chance to exercise those skills, but also to get to know a new platform I had little familiarity with.

By the following day, I had a basic “Hello World” style app running, using Facebook’s awesome F8 APIs. By the way, you can read more about Facebook’s development platform here.

Within a few days, I had received a hastily hand-drawn spec (I contributed to it by drawing a little stonehenge monolith in the corner, marked 18″), and I began a series of little experiments to see what was possible to do on Facebook. I found out, for example, that for the most part, I wouldn’t be able to use Javascript, which is normally available and makes it possible to do most of the cool AJAXy things web users have come to expect. On the plus side, I found that we could embed Flash movies into our Facebook app, and make use of an embedded video player that Yahoo! music was already preparing for another project. The video player wasn’t a perfect fit for facebook, but I saw that we could slightly tweak it to fit our needs. Scott Haynie, from our web services team, helped me identify a set of existing Yahoo! Music services that could power the app, allowing users to search for videos in various ways.

Two weeks later, our design folks had transformed the hand-drawn spec into a pretty ambitious multi-page full color print-out, and we had set a tentative (and insane) release date of June 30, but I hadn’t gotten much done on the actual app, and I was starting to get nervous. I sent out an email stating emphatically that we needed another developer to concentrate exclusively on our backend or video player needs if we were going to get the application out in time. As it turns out, I was wrong. We didn’t get that developer, but we did get the app out.

In retrospect, I think I was feeling the same angst that a child feels, when tasked with washing a sink full of dishes. There was a mountain of work in front of me, I pretty much knew how to do it, but I was overwhelmed by the size of the pile. I needed to dunk my hands in the water to get over that initial hump of inertia.

So when I was done kvetching I got to work, and cranked out the first version of what became our Facebook app over the weekend. The app didn’t adhere all that closely to our original spec, but it was useable and fun, and more importantly, it contained a feature-set that was doable in the time-frame we had to work with. In making the app, I omitted the features that would have required bulding a back-end database. At the same time, I added some “low hanging fruit” features that were cool (like “Video Dedications”), but not in the original spec. This is a good example where building a quick and dirty prototype becomes an essential part of the application design process. It made me, the programmer, much more invested in the design process, and enabled our designers to get their hands on a working app so that they weren’t working completely in a world of hypothetical constraints. Fortunately, our project manager, Michael Spiegelman, encouraged this method of working. If I had been required to stick to the spec more slavishly, we would have been in trouble.

Now, I wonder what would have happened if we had added that second developer I wanted to the project. I think its likely we wouldn’t have made our date – the additional manpower would have justified maintaining more of the original feature set, and made the project more complex.

Instead, working closely with our awesome UED folks, Ruth Kaufman and Lino Wiehen, we modified the spec to more closely match what I had actually made. We essentially threw away the full color print out, and went back to working with hand-drawn specs. In retrospect, I think this is the way to go. The full color print outs really aren’t needed until most of the functionality has been fleshed out in a working prototype. Ruth and Lino produced a beautiful visual design that retained most of the functionality that I had introduced, but used the visual grammar of their original specs. Their flexibility made it possible for us to bring the app to completion in the remaining two weeks.

The last two weeks have been a mad rush as we raced to complete the app by June 30th. Last night, June 29th, we finally gave it it’s first “push” into the world, and I’ve been proudly tracking it’s progress since.

The app is still a little rough around the edges (hence the word ‘beta’ at the top of the page), and we’re still tweaking it, but I’m pleased to say it’s a very compelling way to view videos!

I hope you like it!

Oh yeah, I almost forgot! During those first two weeks, when I was still experimenting and procrastinating, I made a pretty cool mosaic of 3,600 of the artists on Yahoo! Music (that’s the picture at the top of this post). Here’s the jumbo-sized version. Click on any of the artists in the image to view their page at Yahoo! Music.

8 Responses to “Fun with Facebook & Yahoo!”

  1. rumford Says:

    The link to the blog post for the facebook app does not work. can you repost the link to the facebook app here or email me. We would like to review it on http://www.facevereviews.com

  2. rumford Says:

    Killer application with great execution. We love this. You can see our detailed rating and review of the Yahoo Music Facebook Application here:

    http://facereviews.com/2007/06/30/yahoo-facebook-music-videos-application-rocks

    Cheers!

    Rodney Rumford
    http://www.facereviews.com

  3. pdirty Says:

    The links to the videos app in your post have invalid anchor tags.

  4. rumford Says:

    http://www.digg.com/software/Yahoo_Facebook_Music_Videos_Application_Rocks_Just_launched_hours_ago

    Let’s get this moving on digg. This is an amazing application

  5. jbum Says:

    Thanks Christopher! Fixed. This is what I get for posting before coffee…

  6. woollymammoth Says:

    Kudos Jim et al. on this awesome app! You make us all very proud!

    I also really enjoyed your post about the innovation process and what it takes to get a project like this out the door in less than 30 days… an almost herculean feat no less and you are so correct – with more developers and more requirements we would not be here today.

    Absolutely fantastic to see that in the new rogersian era – this is the kind of thing that yahoo music is capable of. Kick ass! (-:

  7. willa Says:

    jim, the facebook app rocks. congratulations. thanks also for posting about the process you guys used to get it live so fast. this is a great illustration of a “lean” way of doing things. if you haven’t seen it already, you might enjoy mary poppendieck’s work.

  8. phpied.com » Blog Archive » LA Web devs meetup at Yahoo Says:

    […] On Yahoo’s side, Jim Bumgardner, a.k.a. krazydad will be demoing the Facebook app he did that allows you to find music videos and discover artists similar to the ones you like. The app, Jim talking about it, Yahoo Developers Network posting. […]