I work for a small software consulting company that had been doing work for Microsoft for a number of years, creating the original Contoso Demo Showcase demos that were available on the Microsoft Partner web site. By October of 2008, we had created over 200 of these demos in eight different languages (so about 25 in English that had been translated 8 times), with each one taking anywhere from two to six weeks to create. Much of this work was done before I had ever joined the company in January 2008, but I witnessed many of the late nights and long weekends that it took to get a demo just right by manually shooting each screen, and building a WPF executable from a series of screen shots. Some of these demos had 200-300 screen shots in each, and a missed step or slightly misplaced hotspot would cost hours of work. The developers had built some tools, and an engine to run the sims, but both needed a lot of work to make them usable for a non-developer user. I think the developers on that original effort are still having nightmares about it. They do get the shivers when you mention it.
In October of 2008, I had just finished three projects for other customers, one small ASP.NET website, one large ASP.NET website, and a major upgrade to a very large Win Forms application in C#. Throughout those three projects, I kept a mental list of what we did right, and what we did wrong, with the intent of applying the lessons to the next project.
Dan, one of the owners of the company I work for, who doesn’t like being called my boss, told me at the beginning of October that he was lining up my next project, and that it would be huge. It would involve this idea they had sold to Microsoft to automate the production of these demos. Dan and Benjamin, the other partner here, dropped some big Microsoft names into the conversation to entice the glory hound in me out of hiding. I didn’t know anything about the project at this point, and though I was flattered by the trust they were putting in me, and excited by the possibility of working on a big, high profile project, I was nervous about being associated with this Contoso project and the late nights that I heard had come with it. They assured me those days were over. This was a completely different project. Yes. It was.
I was a couple of weeks late getting started on the project as I had to wrap up one of my previous projects. It’s never good to start out behind the eight ball, but in the scheme of things, that wasn’t a major impact on the project. I officially started looking at the project documents on Friday, October 24th. I remember going home all excited to be working on something new, starting from the ground up. I returned on Monday morning, October 27th, and started digging in to the project in more detail, and started to outline my approach. We were going to do this one right.
On Tuesday, October 28th, my boss sent me a note, asking if I heard of this Azure thing Microsoft had just launched, and wondered if it might be worth looking into for this project. Sure, why not? The Microsoft PDC in Los Angeles was going on that day, and info was coming out fast. I spent the afternoon watching the PDC presentations on my pc. By noon the next day, I reported to Dan that Azure looked pretty cool, and that it would save us a bunch of time doing the hard things. Scaling with load, synchronization, blob storage, queues, security. All things we had dealt with on previous projects that caused us major issues. Developers could focus on the business app, and not on the environment. Perfect. I don’t remember his exact words, but it was something like “Good, because the customer wants the site built on Azure.”
I had never worked on a project with an OS that was in CTP. Hell, I had never worked on a project that involved any CTP technology. I came from a business systems background that waited at least a year and a half after software was released before using it. In 2007 at my last job, we were barely upgraded to Visual Studio 2005. I didn’t know what CTP meant. CTP is after Beta, right? Well, not exactly.
We started the project with a Proof of Concept application. There was the web site (at the time called Simulation Server), a web service (SimSync), a web app (SimBuilder), a WPF Simulation Engine (SimEngine) and a Windows Service (SimCompiler). Azure wasn’t quite ready for us to use, and we were still working out the details of getting into the Azure early adopter program, so we deployed the POC in a Win2K8 / SQL Server environment. We delivered the POC a week or two before Christmas to give the execs a chance to look it over, and to get a feel for the project before we really dug in.
We took the time during the Christmas lull to get fully indoctrinated with Azure, to begin to flush out a few details, to organize ourselves, and to begin to look at some of the more complicated features. We also took the time to take a well deserved break while the details of the system got worked out. We knew there would be a lot of work to do after the New Year.
We were accepted into the Azure early adopter program in late December. The execs signed off on the project in early January. Everyone was rested and raring to go. It was time to get coding.
To be continued…