On Leaving Microsoft
April 22, was my last day at Microsoft. I have thought a good bit about how I would talk about this publicly. Would I write a blog post? Would I just leave it to a short messages on social various networks?
I finally decide that it was necessary to write this post as a record of my thoughts for my future self.
This post is not an indictment of Microsoft, if anything it is the exact opposite. I was at Microsoft 7 1/2 years. It was easily the most amazing organization I have ever been a part of. I am proud to be part of several product teams that shipped products that helped developers. And most important, got to work with some amazing people that truly care about making developers more productive.
To understand why I left, it is important to understand why I decided to join back in 2005. I had been in the software industry for ten years, bouncing between startups, riding the dot com bubble. At the time, I found myself pushing my employer to improve their development process. But personally I was frustrated that I was not learning from people with more experience shipping professional products. I was faking it in a big way.
After encouragement from a few co-workers to pursue my goal to work at Microsoft, I took the leap. Microsoft was to become my master’s program in software product development. Not many companies ship software at this scale and have the ability to impact so many lives. This was my chance to play in the big leagues, and learn from some of the best in the software industry.
Not only did I learn how to ship software to millions of developers, I was a member of teams that helped change how we executed. Moving from 2-3 year milestone based development efforts (waterfall) to an agile iterative release cadence that is now producing quarterly updates for Visual Studio, and updates to Team Foundation Service every three weeks.
There were plenty of barriers to moving an organization and product the size of Visual Studio in this direction, but it is damn rewarding when you start making progress.
Along the way I learned a ton about designing and building products. Mostly by making mistakes along the way. Are the products I worked on perfect? Far from it, but I valued the tradeoffs to ship. Shipping is a feature after all. But each of those tradeoffs, taught me something for the next time around. Make new mistakes. This to me is one of core values of shipping frequently.
Microsoft is a very large organization, easily the largest organization I have ever been a part of. Hell, Developer Division is larger than any place I have worked before. And there are aspect of working for such a large organization that exhaust me after a time.
I am proud of my time at Microsoft, but it is time for a refresh, a reboot if you will. I believe change is a good thing, gives you an improved perspective, keeps you learning and improving.
I start my new position at Splunk Seattle tomorrow. In one aspect a completely new space for me, I have never done much with big data. There are familiar aspects that I know I love, working on products for developers and IT. Learning new domains always bring new challenges, wish me luck.