(A different sort of post. Around hiring people [Goodness!]. Enjoy the dissonance.)
Microsoft Academy. What's that? A new movie franchise? Real Genius + Revenge of the Nerds + Police Academy? No, though Val Kilmer and Steve Guttenberg are of course welcome on campus anytime (sorry Curtis Armstrong, no welcome for you... more for screwing up Moonlighting, though, than the whole Booger thing).
No, it's more a small thought I had walking back to the house with the paper one morning.
Like many of you, I fill my spare work hours doing interview loops, technical screens, and informationals. As much as I bitch and moan about rampant hiring, I do my duty tracking down high-quality "A" hires for Microsoft. It's never been easy. And it's never been more difficult than now. There are many reasons: we're in higher competition for talent than ever before, H1B visas are not being handed out like candy anymore, and enrollment in computer engineering / computer science and relevant fields is on the decline.
Plus, my personal dev-focused bugbear: more and more candidates who can lay down the smack with Java and script can't manipulate memory and discuss deep operating system constructs just-in-time at all. I need you to be able to write a GC, not be in an unhealthy co-dependent relationship with one.
So, there I was with another interview candidate, getting ready to review their work on the whiteboard. Smart. Self motivated. Passionate. Great potential. Resume? Accomplished. I studied their whiteboard results and their thinking around a simple coding problem. Sigh. No hire. It's not always that easy, though, as you try to reconcile the whiteboard results with a smart accomplished person. Once again, ABBA echoed in the back of my mind singing "Take a Chance on Me" (hopefully I didn't hum that while busying myself as the candidate reviewed their later work). Nope. Yet another candidate who, metaphorically speaking, knows how to drive a car but doesn't know how the engine and transmission works.
And the future looks bleak. I know we're trying to instill a grass-roots education initiative to increase enrollment and interests in the science and technical fields. But even then, is it enough? Are the increasingly smaller set of seemingly qualified Microsoft candidates on the path to be aligned with the needs that the company will have in the years and the decades ahead?
Do we need to change our strategy? Rather than hiring people who can hit the ground running and slowly assimilate knowledge, do we instead need to look for potential to deeply learn the hard skills we need and then put them through an educational hands-on gauntlet to prove they have the stuff to be hired full-time? Something like a Microsoft Academy.
I'm thinking that it's intense training a potential hire would go through before joining any team. There would be tracks for all the major disciplines in the company, whether development, program management, testing, consulting, user content, HR, etc. etc. Deep instruction on topics relevant to all aspects of the discipline at Microsoft along with practical lab and perhaps even field work. Along with some cross-discipline training. I appreciate that the NEO has increased in scope but it's more about navigating the culture of Microsoft (thumbs up for that Stack Ranking exercise - whoever got that through deserves a big bonus).
I'd like to see at least three-months investment in the new hires in deeply learning what we're using now across the company. For developers, it would be stuff like C/C++, Win32, COM, ATL, XML, DHTML, AJAX, .NET, debugging, performance, Watson analysis, design patterns, security, using our best internal tools and resources and so on. Working against real code for Microsoft products. Testers would get a dose of various automation technologies around the company, along with debugging and Watson analysis, too, so that they could dig deep. PMs would focus on design concepts and real-world user management and relationship building. And everyone should take some of the key professional courses on cross-group communications and effective individual leadership.
And just like academies in other real-world professions, some folks would wash-out. Fine. Better upfront than to be a deadwood burden later.
Come graduation, Microsoft would have a deeper perspective into the new hire and vice versa. With their fellow academy attendees, they would have a built-in cross-group network from day-one of their new position. And people out of the academy could be situated in the team that best suits them, perhaps even spending the last few weeks focusing on content directly relevant to their new team (e.g., focusing on fine art of backwards compatibility for the shell).
And current Microsoft employees could lobby to qualify for the academy. Maybe you're looking to switch disciplines, like from test to dev. Go through the dev-academy first to sharpen your saw and prove your ability. Excel while in the academy? Okay, let's find a spot for you. It would be a source for renewal for our current Microsofties to find new positions and opportunities in the company, versus letting them become more and more marginalized over time and eventually more of a liability than an asset.
The Microsoft Academy should be hard. Intense. Push-you-to-the-edge-perhaps-this-was-a-bad-idea-crazy-hard. But once you've accomplished all the class, lab, and practical training, you are aligned and ready to contribute with the skills that Microsoft needs today, not bits and pieces you pick up over your first year or so. Or never, if you don't have the refined abilities to start from day one.
I'm just trying to think of how people out there who have the raw abilities to be great Microsofties but do not possess refined talent could reach the point that I'd be proud to have them on my team - perhaps even work for them one day. Although we continue to gobble up more bodies, I do not feel we're in a talent glut. I see a talent crisis. How do you think it will be solved for Microsoft?