The Genesis of Popfly or What I've Been Doing for the Last Year

Some of you have been following this blog more closely than others. Well, a few of you. OK, there are like four people who read this regularly. (Hi, mom!) But for those of you who have been reading it, you've probably noticed that I've been suspiciously mute when it comes to what I'm working on. That's because for the past year I've been working on a service that just launched today -- Microsoft Popfly. I'm not going to spend a huge amount of time explaining what Popfly is -- you can get that from the web site. I am, however, going to explain a little about how this thing came to be.

It started in November of 2005 when Ray Ozzie started talking about Live. I sent email to Somasegar and Craig Symonds (the general manager of Visual Studio) and said, basically, "This Live thing is going to be big; who do you have thinking about it?" And that's how I wound up working for Craig thinking about Live. Originally, I started by exploring a huge number of possibilities -- what I called Tuscany -- that covered all sorts of scenarios where software+services could help developers. I ran a variety of scenarios through both technical and business analysis -- things like developer marketplaces and hosted IDEs and various other services.

As I ran through these scenarios, I became fixated on how people learn to program we could make programming more accessible to more people. Huge numbers of people had skills with HTML and JavaScript and were actively using them on sites like MySpace to create very personal experiences of the Web. I kept wondering what someone with that level of skill could do if provided with better tools than a text editor.

In a conversation with John Lam (now at Microsoft, but at the time he was just a Really Smart Guy) I began to think about things like TryRuby and what we could do with interactive programming in dynamic languages, and what we could do if there were really seamless ways for this kind of person to share things with other folks. The result was a couple of prototypes of what a web-based tool that connected to a social network could look like.

And then Adam Nathan joined up and everything changed.

In one weekend, Adam had built a prototype that laid down the groundwork for where we are today. Over the course of the next four weeks, he built an HTML-based mashup creation tool, integrated with Windows Live ID and began to demonstrate how drag-and-drop mashup creation could work.

It took another four months for us to get a team in place. In October, we reached critical mass, with enough developers and program managers to start turning the prototype into working code. By December, we could plausibly show mashup creation, storing things to Windows Live Storage (the back-end to Windows Live Spaces), sharing, and a host of other scenarios. In February, we invited in our first set of pre-alpha customers to try it out with. In March, we opened it up further and Adam rewrote the AJAX-based mashup editor in Silverlight and we introduced a host of Silverlight-based blocks. And how, in May, we're ready to take the next step and invite in a few more people and to start talking about what we're doing.