One of the great things about Microsoft is you can work on so many different types of projects and customer segments without ever leaving the company. With the growth of the SQL Server Compact team and the Sync Framework team, I had some interesting challenges to consider. While I worked with the Sync Team and my old Visual Studio BizApps teams to design Sync Services for ADO.NET, the Local Cache Designer and the integration with the Sync Framework, I’ve been “in” the SQL Server Compact team which has been based in Hyderabad India for the last 4+ years. I’ve actually been the “off shore” guy as everyone but me was together. For a while, there was plenty to do, and with frequent trips to India to work directly with the team, we made a lot of progress. Releasing Compact on the Desktop, Sync Services for ADO.NET, the 64bit release, private deployment support, and several other efforts that haven’t quite made it public yet we had a great ride. However, as the team grew, and our expanded scenarios grew, I became a bottleneck for customer interaction and design discussions. The team had so much experience with the product, the codebase, customer support issues, that trying to coordinate conversations over video conf calls, and ~quarterly trips to India didn’t match the productivity of hallway conversations, discussions over coffee or cricket. As much as I loved working with the team, on the product, and with the Compact customers, my role became more of a limiter, rather than an enabler. There are many interesting conversations regarding global development, what works, what doesn’t, and how to build a great team. I would like to think we did it right. Can’t say we knew what we were doing when we started, but with a great team, great management, and a lot of scars we were able to navigate, foresee and respond to the issues as the presented themselves.


I’d like to say I considered moving to India to continue working directly with the team as the last few years were some of the most satisfying and enlightening experiences. While in the remote broadcasting industry I worked in Cuba for the ‘91 Pan Am games, and I thought that was interesting. But, that was nothing compared to seeing the growth of India. With a wife, 2 kids, 2 dogs, and all my family here, it really wasn’t an option. I was a teenager the last time I had to manage a geographically undesirable relationship and can’t say this was any easier to decide. The Compact team is a great group, we had a lot of fun, I learned a lot about India, and have tremendous respect for people and the country that I’ll remember for a long time.
So, what am I doing? With all our “cloud offerings” we’re not only changing the operating environment and development platform, but we’re also changing the revenue model for Microsoft. While you can go to the store to buy Microsoft products, the majority of people buy Windows and Microsoft Office with their PC from Dell and other computer manufacturers. When purchasing our cloud offerings such as Exchange Online, CRM Online, Sharepoint, Azure, …, customers will be purchasing these services directly from Microsoft. It turns out you need a robust billing system to actually collect on all that revenue, and a system that is designed to scale to the volumes of direct sales. We’re not by any means eliminating the partner model, in fact we believe that will continue to be one of the stronger channels for our online services, but that also creates interesting challenges for a billing system at scale to manage the commissions and international models.
We haven’t said much about our new billing system, other than the assumption we have one to bill for our current production services, such as Business Productivity Online Suite (BPOS) and other online properties. This is the same system we’ll be using for Azure and our other online properties.


Why the new blog? With some changes to our internal teams, some of the features I was using have changed, and figured with the new gig and new focus, was a good time to switch. The marketing vehicle of the blogs.msdn.com site were hard to beat, so I’ll cheat for a little while and cross post, but this is where I plan to monitor feedback and such.


With the new focus and blog, I’ll be talking more about the architecture of our billing system and how we plan to meet the challenges of a highly available system at scale, and distribution across the globe. This of course will include how we’ll be using Azure, but it’s not the simple as most “real world” systems will likely have a mix of on-premises system and hosted systems. For those old enough to remember, there was a big transition between “rich client” apps and browser apps. While not as obvious, there’s another architectural shift in place to move from simple stateless “web apps” and services, to highly available and scalable systems.
That’s all for now,
Steve