By Darryl K. Taft  |  Posted 2007-09-10 Print this article Print

: An Open Book for Developers"> How do you facilitate that? Do you have certain tools or processes? Yes. One thing is we have a weekly release cycle. So every Tuesday night we do a push of the code and we release a whole new version of the site. And thats actually pretty quick. Some companies might go months between releases. And its a challenge to maintain that kind of release cycle when youve got a bigger and bigger team.
So weve built up a lot of tools that help us with that. The other thing about us is everything we do is at pretty big scale. We have 30 million users and were growing at about 3 percent a week, so that means that all the code you develop has to be highly scalable. So one of the reasons why startups and small companies can develop code so quickly is they dont have to worry about scalability problems because they only have a small number of users.
But once you get to be as big as us, every new feature we launch or everything we do has to be able to scale to support our 30 million users. So what weve done is weve built a lot of these generic abstractions—like pieces of infrastructure—that our developers can use to develop their features on top of. One example of this is a server called Memcached [a high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic Web applications], which is an open-source server written by someone else [Danga Interactive], and we took it and we made all these improvements to it—giving it back to the open-source community. But Memcached is just this piece of infrastructure—it just stores data temporarily—and it makes it a lot easier to develop new features. No matter what the feature is it can usually make it easier. And so we have a lot of these internal abstractions that weve built that make it easy to build new features quickly and not have to worry about the scalability, because the abstraction itself will automatically spread the work over a large number of computers. Click here to read more about Facebooks Developer Platform. So are you looking to continue to grow your development team as well? Yeah, were always looking for good people. I saw a blog post somewhere that said legacy applications like Lotus Notes might be considered competition for Facebook. Do you see that? Wed be happy for them to build on top of Facebook Platform. We have a Notes product as well. Lotus Notes is actually a lot different than our Notes product. Our Notes product is more like a blog, so its not actually competing with that. Were fine with it if developers that build on top of Facebook Platform compete with our own applications. So somebody could build a photos application and compete with our own photos application. We think its really important to level the playing field, because if developers think that were going to decide that their application is too valuable and not let it compete with ours, then theyre not going to want to develop in the first place. So we think that the real value is just in providing this platform. And were fine with competition. Are you one of the founders of the company? I was involved from the beginning. I wasnt working full-time then, but I helped to set up the servers. Speaking on how quickly the company has grown and the use of Facebook is so widespread, did you always anticipate that this would be? Not really. I guess it kind of just grew and grew. Its been pretty exciting to be a part of it. Weve been on this growth curve where 3 percent of our users every week are new, and it is incredible to be part of that kind of growth because every week you come in and the numbers are 3 percent higher than the last week. And that uncovers all kinds of scalability problems, and there are all kind of challenges that come up. Weve proven that any system weve built that wasnt built to scale perfectly will eventually hit its limit, and so its a really exciting experience. This isnt really a fair question. Its like if you have kids, asking which one you like best. But what Facebook apps do you like most? Well, theres this Scrabble application thats really taken off inside the Facebook office. Anything else? In general, the common paradigm is to take some kind of objects in the world and let users associate with those objects. So we have photos and Facebooks all about the connection between users and objects, and the Photos product is about users and photos. So one other example of a good application is iLike, which is a music application. It lets users say what music they like and what concerts theyve been to. And there is a whole class of applications like "places Ive visited" so you can say which cities youve been to, or which countries or which states, and you can see which youre your friends have been to. So those are pretty good. Do you have any advice for developers who want to put their stuff on the platform? I think that some of the early developers got a little too concerned with growth, or with the total number of users their application had. And so youd see these applications where there wasnt really much to the application, but whether you could get all your friends to join the application and have the application take off. But it seems like the applications that are doing the best and that will do the best in the long run are the deeper applications. These are the applications that have more to their experience than just something simple like something in your profile. I think iLike is a pretty good example of an application thats pretty deeply integrated into Facebook and not just trying to spread itself. Another pretty good type of application is the applications where the developers used to have a Web site. The Scrabble application is an example of this. The Scrabble application used to have a Web site and the developers had already built some type of Scrabble game. Then they turned it into a Facebook Platform application, and because it had already been a Web site, they had to have a pretty good product. So theres a lot of value in taking some of these other Web sites where there was something social going on, but there was a lot of difficulty as you had to type in your friends e-mail addresses. But on the platform its like porting them inside Facebook.

Darryl K. Taft covers the development tools and developer-related issues beat from his office in Baltimore. He has more than 10 years of experience in the business and is always looking for the next scoop. Taft is a member of the Association for Computing Machinery (ACM) and was named 'one of the most active middleware reporters in the world' by The Middleware Co. He also has his own card in the 'Who's Who in Enterprise Java' deck.

Submit a Comment

Loading Comments...
Manage your Newsletters: Login   Register My Newsletters

Rocket Fuel