Facebook’s Encouraging Worst Practices

I'm not a huge fan of Facebook to begin with, however they are an undeniable part of any online marketing strategy and are likely to remain as such for at least another 6-10 months (which is an eternity by web standards). I've recently been working on a Facebook application built on the Zend Framework. Our team is sprinkled across the United States and Canada and we're all committing to an SVN repo and running updates from there to Facebook. While dev / test / staging / production is a typical approach to web development, Facebook's FBML and FBJS make local development practically impossible without a really fat development harness.

If you choose to use their iframe approach, you're putting the burden of maintaining the Facebook look & feel entirely on your own shoulders. If Facebook decides to change their design (which they do pretty frequently), your application will be forced to play catch up. All this puts the developers at the mercy of the platform. At least with Microsoft, you could choose when to upgrade when you had the time and money to burn a hole in your wallet. Facebook unfortunately doesn't provide best practices for enterprise development. This is no surprise when one discovers that their testing model involves inflicting new changes to subsets of their user base rather than going through the trouble of creating a testable development environment.

In the longterm, I think this will hinder v2 versions of Facebook applications. If Facebook wants to see more powerful enterprise integration, they'll have to provide more than what's required to create a "grow your own bonzai" application.