Tech support postgraduate studies
Easily the best Mini Microsoft quote of all time:
I need you to be able to write a GC, not be in an unhealthy co-dependent relationship with one.
Amen.
In a recent (and notably positive) post, Mini discusses the increasing difficulty in finding University hires that can be immediately productive building software at Microsoft. One solution suggested by Mini is to create a Microsoft Academy, a proposed training program designed to give new product team members the practical knowledge necessary to be more quickly and fully productive in their jobs.
While I think universities are thankfully trending back toward native code programming (I can tell you horror stories about interviewing new CS grads utterly clueless about the most rudimentary aspects of memory management), there is still a clear practical knowledge gap found in that area in between academia and professional software.
Anyhow, I was immediately struck by two thoughts: "hey, that's a pretty good idea" and "Back in my day, we called that Technical Support."
I'm really not that old (I'm 35), but sometimes I feel positively ancient when it comes to how the industry has evolved since I began my professional career. Back then, when the earth was still cooling and dinosaurs roamed the planet, the industry was a smaller place and it was much more difficult to get a job writing commercial shrink-wrap code directly out of school (at least it was in Silicon Valley, where I started). Consequently, we gravitated toward what was then considered "entry level" jobs, such as doing technical support or working in quality assurance.
I began my career doing tech support at a little terminal emulation company that built PC software to emulate VT, Tektronix, and X terminals. After a couple of years, I moved to Borland, where I took a job supporting programming language products, such as the Borland/Turbo C++ and Pascal product lines. What was cool about that job is that it really taught me to think on my feet. Pick up the phone and it could be someone trying to write a TSR or maybe building a DPMI app or perhaps writing a Windows app in OWL or a DOS app in Turbo Vision. And people were often paying by the minute to talk to me, so -- boy howdy -- was it important to give them answers and fast! Apart from learning a lot about a lot of different technologies, the most important thing I learned was how to find answers to programming problems (and, yes, this was before the web put many of the answers at our fingertips).
When I think about the group of folks I worked with in tech support back then, I'm amazed at how much talent we had working in a little old tech support department. Many of them are today senior engineers, architects, leaders, etc. building great software for great companies. I even work with a number of these Borland languages tech support alums here in Microsoft Developer Division today, including Chuck Jazdzewski on the Cider team, Charlie Calvert on the C# team, and Bill Dunlap with me on the VC++ team.
After I moved out of tech support and gained experience writing commercial code, I began to see differences between those of my peers that did a stint in tech support in their career and those that did not. The tech support veterans seemed to be less apt to being blocked by technology issues, better able to find their own answers to questions, showed a higher level of customer empathy, and tended to be more results-driven, not to mention generally more attractive and affable. Okay, I'm kidding about the last bit, but it's true that I did see a marked difference between these two populations. When I became a hiring manager, I found myself looking favorably upon those candidates that did a stint in support, and my bias here usually proved well-founded.
As the industry grew, it became more and more commonplace for people to gain jobs writing commercial code right out of school and tech support became less of a programmer training ground opportunities as tiers and specialization took hold. However, for some of us, tech support was our programming academy. So, yes, I'm in favor of the Microsoft Academy. It would fit a need and fill a gap that isn't well addressed in the industry today.
Comments
Anonymous
November 28, 2006
The comment has been removedAnonymous
November 29, 2006
The timing of your post is quite fortuitous, since it appears at the same time as an interview with Bjarne Stroustrop in which he makes the same point about computer science grads' not knowing enough about what is going on "under the hood". I doubt that anyone is surprised that his recommended remedy is to train programmers in C++. Here is a quote from the interview: "That said, C++ has indeed become too 'expert friendly' at a time where the degree of effective formal education of the average software developer has declined. However, the solution is not to dumb down the programming languages but to use a variety of programming languages and educate more experts. There has to be languages for those experts to use--and C++ is one of those languages." The whole interview, dated Tuesday 28 Nov, appears here: http://www.technologyreview.com/InfoTech/17831/Anonymous
December 03, 2006
The comment has been removed