Recently Robert Scoble posted a blog entry about how Windows engineers feel Win7 is being managed differently than previous Windows releases. As I read through the list, I immediately thought, "Hey, that's just like Office." It also reminded me of an analogy I came up with when I first joined Microsoft.
Before I continue, I should note that I consider myself to heavily influenced by the "Office-way of software engineering". When discussing software development philosophies with other Microsoft employees I often say that "I grew up in Office". I believe that foundation in large scale software engineering tempered by my exposure to the "Open Source-way of software development" has been invaluable to my development as a software engineer. There was many a day when I was in Windows where I longed for the "Office-way". However, as a disclaimer, do know that I was young when I was in Office and it was a long time ago so nostalgia may have seeped into some of my memories. Also, as always, these are my feelings and views alone... others may see things very differently.
Now, back to my story.
When first at Microsoft I was trying to describe to my Mom the differences between Office and Windows. Not that one was suite of productivity applications and the other was an operating system. Instead, I was trying to explain the cultural differences across the two organizations. It amazed me how incredibly different the culture of two parts of the same company could be. I described it to my Mom back then as the "Office family" and the "Windows division".
In Office, everyone felt like a part of the extended family. I always worked on a "Core" team so the build team and UI team felt like siblings while the "Word" and "Excel" teams felt like cousins and the "Powerpoint" team felt like distant cousins (since they were down in Silicon Valley). Development managers and directors felt like "heads of the household" and the "head of the family" (Steven Sinofsky, during my tenure) all provided direction, discipline and support at their various levels. You were expected to work out issues at your level and not "go crying to daddy". In fact, escalating usually had negative consequences for all of the people involved. Overall, it felt like everyone was working together to ship a very complex and large product on time.
In Windows, it felt like there were all of these small kingdoms vying for attention and resources. Everyone felt very compartmentalized on their particular feature. The development manager and directors were necessary to exert your requirements on other team. Escalation was the norm and sometimes you'd have to go through 6 layers to get the leverage desired. Also, rigorous process seemed to be valued over developer productivity. I think the term "death march" was invented in Windows. Overall, it felt like constant battle to test the mettle of teams and the features to be delivered into the operating system.
Now, to be fair to the culture that developed in Windows, there is a serious amount of pressure to be all things to all people. Not only do you have to build features that capture the imagination of the future but you have to make sure everything that worked in the past continues to work today. And the OS is always on. If you want to see someone take the responsibility seriously check out Raymond Chen's blog. He's one of the true Microsoft heroes.
Anyway, after I heard Sinofsky would be moving from Office to Windows I hoped that many of the changes Scoble described would occur. When I later heard that Jon Devaan was moving in to lead another part of Windows, I expected a culture change was inevitable. Why? Because the guy that led Office before Sinofsky was Devaan. I believe culture comes from the top and the Windows division got a huge injection of "family values" when Devaan and Sinofsky moved in.
Now I just hope the (IMHO) improved culture creates an incredible product.
PS: The Live Mesh team has a different feel than any other team I've been on. I expect that is due to Ray Ozzie's influence (remember, culture from the top). Maybe I'll write more about my feelings on the Live Mesh culture when I understand it better.