Wow – I can’t believe it has already been 13 years at Microsoft. I have had a great time here and learned so much from the smart and passionate people I work with as well as the incredible developer community around .NET. But I have decided it is time for me to try something new – so my last day at Microsoft will be Friday, April 23rd .
While I am leaving Microsoft, I continue to have a positive view of the company. No other company has the footprint that Microsoft does on the industry. I am confident that the company will continue to have an impact in the years to come. I will be looking forward to watching the next release of .NET from outside.
Of course, there is never a good time to leave, but I feel a great sense of accomplishment shipping Silverlight 4 and Visual Studio 2010/.NET Framework 4. The technologies I have been most closely involved with have found amazingly good homes. MEF and RIA Services are in the right teams and on the right track long term and I believe those technologies will have great futures.
What I loved most about my time at Microsoft is the opportunity to work with some of the smartest, most passionate people in the industry to ship some great software that customers LOVE. As I have been thinking about this transition, I have reflected on a few of the releases I have been a part of and what I learned in the process. Hopefully you can take these learnings as my last words of wisdom to you.
- MS-Travel (later spun off as Expedia ) – My first experience at Microsoft as an intern in Test. I landed the job because I was able to help my future boss debug a VB issue in the interview ;-). I learned what it was to be a PM and I fell in LOVE with it.
- VB 5 – I came back the next summer as a PM intern and found my sweet spot – PM in the developer space. I was a PM on the Control Creation Edition of VB 5 and learned the blocking and tackling of consensus building, prioritization and specing!
- IE4 and IE4.01 with Win98 - It was so energizing to be involved in the first browser wars. At the time, I think we had IE4, 5 and 6 all going in parallel! As Release PM I learned a ton about shipping: balancing priorities, triaging, war rooms, and working very broadly across teams.
- Common Language Runtime (“Lightning”) and overall .NET Framework (“Project 42”). In the 4+ years incubating the first release I got my taste for “doing a V1” and I loved it! We all *knew* we were changing the industry with our work as much as we knew the project could be canceled at any time. After PDC2000, when we came out of the veil of secrecy, I learned about how to listen to customers and got hooked on bringing customer feedback into the product with the DOTNET@DISCUSS.DEVELOP.COM email list. If you were on that email list at the time, you helped shape what become the glasnost of Microsoft that lead to weblogs.asp.net, blogs.msdn.com, and eventually channel 9 and the whole community arm of MS.
- .NET Framework 1.1 (“Everett” ) and .NET Framework 2.0 (“Whidbey”) – Between these two releases, I learned about the “V2 trap”. That is, the critical importance of having a clear vision for a release rather than just “make stuff better”. It is so much more valuable to customers, and therefore more satisfying for engineers, to work on “3-big bets” rather than peanut-buttering our efforts over a bunch of small “rounding out” features.
- .NET Framework 3.0 with Windows Vista (“WinFX”) – Back to my “V1.0 passions”, with this release we aimed to make .NET the most important programming model for Windows. With broad new technologies, WF, WinFS, WCF and WPF there was a LOT of new stuff. I was asked to bringing this work together to a coherent whole. I learned a TON about how to develop software at scale and what works (and doesn’t) across such a large organization. This experience also gave me much deeper insight into executive decision making and what works (and doesn’t) to get the most effective decisions made.
- ASP.NET 3.5, ASP.NET AJAX and ASP.NET MVC – I learned a whole new development area – AJAX and the web. This time lit my passion for the web development area that I continue to believe is a game changer. I learned the value of shipping out of band releases to clearly address customer scenarios as they emerge. I also learned the value of small, lightweight (download size, concept count, etc) frameworks.
- Silverlight 2, 3 and now 4 – That rate of maturation of Silverlight has been amazing. From the first release where there was literally no button, to Silverlight 4 where we have a viable line of business platform. Here I learned a lot about how to do small, frequent, incremental releases.
- MEF – This technology has a huge potential to change the core patterns the average .NET Developer uses to build their applications. Through this release, I learned two big things: The value of a close customer (eg VS) shaping and guiding requirements and how to work diligently with the community in a very transparent way (shipping source, open license, etc).
- WCF RIA Services – The thing I love about RIA Services is that we tackled an end-to-end customer scenario that crossed database, mid-tier, client and tooling to deliver really compelling customer value. While this sort of end-to-end thinking forced us to work very closely with many teams, the results were fantastic! Out of this release I learned the value of focusing on the end-to-end rather than just one small island.
I am deeply grateful for the opportunities I have had at Microsoft in working with such an amazing set of co-workers and vibrant community.
Initially, I am going to take some time off to enjoy the wonderful spring weather in Seattle and visit Legoland with the kids before starting my next endeavor.
While I will not be as deeply involved in the .NET Developer Community – I will be keeping up and enjoying the successes I know you will have. Good luck and have a great time!
I’d love to stay in touch:
Facebook: Brad Abrams