Lessons from Facebook Connect

December 11, 2008

Last week we finally launched Facebook Connect to the general public. In the time since I joined the team last May, I’ve definitely been surprised by a few things I thought I’d share.

think big

This time last year, I thought “Man, wouldn’t it be cool if Facebook became an OpenID provider? Maybe if we just put it out there, then eventually people could do redirect back to Facebook, and we could expand the platform incrementally.” Moments of surprise:

  • When Wei told me that we were going to do the entire login flow in an iframe on the remote site, without any redirects needed. And he would build an extension to HTML that would render social data on a remote site, but in Javascript. Whoa, I didn’t even know that was possible.
  • I started to think, “Wow, maybe some sites will actually use this.” Then Josh, Matt, and Dave told me that they had already talked to Citysearch, Digg, CNN, CBS, … I thought, “Wow, real sites? Like ones my friends would use?”
  • As we got closer to launch, the dialog kept growing and shrinking. The feed form kept changing. Engineers would add checkboxes, options, and then Julie would smack them down. Or if she didn’t, Zuck would. After several iterations, I started to grasp the vision. This wasn’t just about letting users share their blog comments if they wanted to. This was about radically changing human behavior so that everything they do is shared through Facebook. Everything. Ultimately, that’s the goal. It blew me away.

marketing matters

The team built a great product, if I don’t say so myself. But it would have been impossible without the partner managers. Zhen, Josh, and Anand were out there every day for six months talking to partners, nursing them, giving us feedback. Somehow they kept track of a software product that was constantly changing. They cajoled and explained to the folks at shopping sites, media companies, newspapers, tech sites, and bloggers. They figured out what each one needed and let them know that Facebook would make them money.

Most importantly, they explained it to us. I didn’t really know what we were building back in June. It was the partner managers that gave us the early Citysearch mocks that let the team know we were onto something. And as the product rolled on, they helped us prioritize. I think most features we built between August and November were geared towards one partner or another, whose feature requests represented the voices of huge swaths of developers that would never ask, but just would not use our products. For example, Citysearch operates on multiple subdomains - chicago.citysearch.com and miami.citysearch.com - and we needed to build out support for that. But because we did that, it made the product that much better.

speedy is as speedy does

The engineers on this team are quick! I think every day for months someone was checking in code. There were some days with over 30 commits, and code being pushed two or three times a week. This is only possible because the whole company is geared towards speed, speed, speed. I credit our main pusher, Chuck Rossi, for launching us at least a month earlier than we would have otherwise. Of course this also meant incredible pragmatism when it came to churning out features. Very little work was wasted in the end, which was a tribute to the product management.

listen to developers

As the first few … dozen … partners rolled out, the team cheered. Each of them represents hours of engineering time on our end working with developers, helping them solve problems, debug issues, just get a mental model for how XFBML is supposed to work. Internet Explorer is not kind to cross-domain Javascript developers, I’ll say that much. But it was worth it. In the past two months we’ve seen what kind of errors people kept making, and tried really hard to reduce the code necessary to make simple things happen. Our initial partners spent so much of their time helping us smooth things out. David Recordon and Jonah Schwartz were rock stars really early on.

Wei and I made a video demonstrating Connect today. The code in this video would have taken hundreds of lines of Javascript only two months ago.