We all live in our own bubble. Our perception of the universe is filtered by our individual experiences. As open minded and knowledgeable as we try to be we must reach outside of our natural surroundings to gain additional perceptive. Simply put, you don’t know what you don’t know. This is why I jumped at the opportunity to visit Microsoft for a day when Glenn Block extended the offer. And it took me a minute to realize that this was also Glenn’s motivation for rolling out the red carpet.
In less than 8 hours I met with 9 technical giants. Given the current direction of our company this could not have been a better combination of talent and knowledge. I have written about the lack of passion that most developers seem to have. Even though my time with them was short, I got the feeling that they all have a passion for what they do.
Glenn Block – Author, speaker, blogger and Engineer. Glenn was my tour guide during my visit and is a great resource for a handful of technologies.
Henrik Frystyk Nielsen – One of the principal authors of HTTP! Henrick is currently working with the Web.API team.
Conner Cunningham – Principal Software Architect for SQL Azure.
Madhan Arumugam – Lead Program Manager, SQL Server Engine
Corey Sanders – Principal Lead Program Manager at Microsoft on the IaaS team
Josh Twist – Program Manager at Microsoft on the Mobile Services team
Vittorio Bertocci – Principal Program Manager at Microsoft on the Access Control Services team
Levi Broderick – Developer on the ASP.NET team, focusing on security
Justin Beckwith – Program Manager at Microsoft Corporation on the Web Matrix team
Microsoft’s Redmond Campus
This was my first visit to Microsoft and while I arrived in Redmond with time to spare, homing in on building 35 was like chasing Brigadoon. Apparently there are over 80 buildings on campus with nearly 10 million square feet of office space. This houses a work force of 50,000 people! The campus manages a fleet of shuttles which move people from building to building during the work day. And the commons area supports several dozen independently owned shops and restaurants.
Ok, so a Microsoft employee’s bubble is a little larger than most, but I can’t help but think that teams form bubbles of their own until they need to intersect. Having access to that many resources could further remove you from your customers, so I see why technical teams could use direct feedback from respected clients once in a while.
Building 35, where I started my day, was largely conference rooms. Room after room of conference tables, whiteboards, cork boards and projectors. While it wasn’t difficult to reserve a room, we were kicked out at the top of each hour to make room for the next meeting. Between musical conference rooms, shuttle rides, and the vast quantities of people, I can now say; I’ve seen a human version of a bee hive.
Meeting #1: SQL Azure Issues
So the main reason for my visit was to talk to the SQL Azure team about the issues we are having with timeouts. Conner and Madhan were very open and helpful in getting me to understand one simple truth; timeouts are a fact of the platform. How often they occur and how long they last is improving all the time. Even several 30 second timeouts, several times a day are still within the constraints of the SLA. What this really means is that apps built using SQL azure should be built to deal with these issues. Not an easy feat to be sure, but I look at it like this; we have traded occasional, severely disruptive hardware failures for more common, less disruptive, short term timeouts. At the moment all SQL Databases have the some class of service. Conner suggested that SQL Azure will eventually have enterprise level solutions. He also was sure to make the point; “spread it like peanut butter”. Meaning we might want to split our databases into even smaller chunks.
The good news is that Virtual Machines (VM) hosting SQL Server will be released to General Availability (GA) at the same time VMs are released. In addition, the physical storage for these databases is currently protected by the GA agreement. This was my primary fear when pondering SQL on an Azure VM vs SQL Azure. Madhan was quick to point out that this is really a temporary solution and that, ultimately, we should be on SQL Azure.
Meeting #2: Azure IaaS
We had a quick phone meeting with Corey from the IaaS team. I only had a few questions but I heard “Non-Disclosure Agreement” (NDA) several times in the conversation so my lips are sealed. One good thing I can report is that I have seen dramatic improvement in Azure IaaS over the last six months. That being said, Corey told me they will be releasing an even more significant changes “soon” and that the GA environment will been operational a few months before they really call it GA. Sweet.
Meeting #3: Mobile Services
I had a great conversation with Josh from Mobile Services. He was fast, detailed and to the point. There are a few services that we might benefit from but their primary objective is to take away the friction of developing mobile applications. Out of the box the framework supports data storage, authentication, and push messaging just to name a few.
Two new mobile technologies I learned about were Phone Gap and Xamarin. Both are designed for “native application” development to get a mobile app offering to each marketplace quickly.
Meeting #4: REST
Between meetings Glenn and I talked about a handful of topics. The most exciting and educational for me was our discussion around REST. We spent over 2 hours talking about what REST really is, what it means for real world companies like mine, and what the future of web development looks like. This post is already long enough, so I’ll be addressing these topics in another blog entry.
Meeting #5: Web.API
This was a quick meeting with Henrik. For the most part, it was just praise for the simplicity and elegance of Web.API. Glenn, Henrik and the Web.API team have delivered a strong typed HTTP framework. HTTPRequest, HTTPResponse, and an extendible management pipeline. A simple and effective .Net API from one of the principal authors if HTTP itself. Simply genius.
Meeting #6: Security
Vittorio and Levi helped me to understand what Microsoft has in store for Azure security services. While not yet available, it promises to be a great base for single sign-on systems. Based on Active Directory, Azure ACS could be what we are looking for. Unfortunately their timeline does not fit with our own. So it looks like I’m going to have to build what we need. Levi suggested that we DO NOT use the Asp.Net’s forms authentication membership provider as the starting point. Vittrio, sounding much like Giotto from the movie Cars tells me; “You don’t know what you want. Tell me what you need, and I will tell you want you want”. A great conversation with two very smart security people.
Meeting #7: Web Matrix
Web Matrix is a free and easy to use lightweight web development tool. If you are familiar with Visual Studio, you may not see a benefit. If you’re a web developer who is not comfortable with VS and its complexity, Web Matrix may be the droid you’re looking for.
All in all it was an amazing day with some amazing people. I received confirmation on much of what I already knew (always helpful), picked up a handful of new insights, and extended my perception bubble. My world was a little larger on the way home. And of course, with my head spinning, I missed my I5 exit, and ended up taking a 2 hour detour. No worries though because I think I have a new vision for Morpheus.