Tuesday, May 29, 2007

Architecting for Participation

I was scanning feeds on Rojo last night, and saw this post about Steven Bao, and the Facebook apps he has created. He is 14. He's a freshman in high school.

What languages does he know? Java? Nope. But he knows PHP and MySQL, plus JavaScript and the rest... and he's learning C++. And of course he has his own company. At that point in my life I was trying a new skateboard trick, unsuccessfully.

Then I read a note about MySpace versus Facebook on TechCrunch, reinforcing the obvious.

A hallmark of Web 2.0 is that it is participatory, and as we delve into the enterprise we need to pay careful attention to this, not just from a feature/function perspective, but from an architecture perspective. Poll the enterprise today, and Java and .NET will be strong, poll the people hired in the last two years, and the LAMP stack and browser-side programming will show a steep rise. And if freshmen in high school are tooling away in these languages, just think what the work force will be like 5 years from now. All purveyors of Web 2.0 technology in the enterprise should take notice.

And what should the APIs give access to? Everything. If you're afraid of people doing themselves harm with your APIs, then either you don't have respect for people, or you have a bad architecture. Here's an idea: document the interfaces, and let people invent. If you seek to control the applications people build with your platform, then you are almost extinct.

Some people reading this will think he doesn't get it -- the things that matter in the enterprise are security, robustness, things not available in these new architectures. To you I say that you don't get it, innovations will fill the void, and that is exactly what we are trying to do. Embrace the architectures of participation, because you don't want to build for the past. Building for the future means being open, giving a big-ol bear hug to the emergent stuff on the web, and doing the heavy lifting to find ways for it to meet the needs of the enterprise. Because people will find a way to get their jobs done... either with or without the technology that their company wishes they would use.