Is a nice read, covering a lot of interesting topics, some of the more meaningful points as I see them:
- The most valuable course he ever took was the one he dropped after one lecture. It was valuable because it convinced him he shouldn't go to grad school for CS. I had a similar experience myself, when I learned that while I really loved technology, I really didn't enjoy coding all that much :-). Fortunately I soon enough found out about the other job functions that let me geek out without coding.
- He describes the historical culture difference between Windows and Unix when it comes to commandline - e.g. the unix model is build cmdline first and UI on top of that, whereas the windows model usually ends up as build the GUI first and maybe do cmdline for parts of it. Exchange 2007 broke the standard mold here, as all of our GUI is built entirely on top of Powershell cmdlets. This caused a fair amount of pain during the beta cycle and with the RTM release, because we spent so much time on the plumbing of the cmdline that we weren't able to get in as much GUI as we wanted to in the Beta1 build and even by RTM. Fortunately we were able to address much of this in SP1.
- The role of good management is to get the furniture out of the way so the smart people can get their jobs done. I couldn't agree more, and I would put the 'program management' role at microsoft in that same bucket - get the furniture out of the way to unblock dev and test. I've been a manager for a few years now and some of the most exciting moments of my management career have been watching one of my reports succeed on some tough challenge and know that I played a role in helping them get there.
- "Being able to write clearly on technical topics is the difference between being a grunt individual contributor programmer and being a leader". Love it. Raymond does this very well too. I have long been interested in communications and written communication in particular (it's one of the reasons I started this blog) and I aspire to write as well as he does some day. For now I content myself with spending time crafting emails and responses in a thoughtful manner instead of firing at random... as much as possible. Nobody can do it all the time. 🙂