Wednesday, November 01, 2006

Microsoft Academy

(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?


112 comments:

Anonymous said...

A great idea and one that's already been done, to some extent. Perhaps you should look into the Exchange Ranger program, not necessarily for its content, but for its original concepts around what training should look like, what difficult should be.

Unfortunately, it has been watered down as its success has increased and more touchy-feely types have taken interest in it. The original concept, however, is exactly what Microsoft needs for all disciplines. I find myself quite frustrated with sales people that don't even understand how our products work. That's like a soup salesman that has never tasted soup.

I think we need two academies. One is focused on PG, one for the field. I can't speak to all the disciplines for PG, but for the field, this needs to cover MCS-style deployments (broader topics), PSS troublshooting (on a specific discipline) and environmental dependency basics: hardware performance, writing code, basic infrastructure, TCP/IP protocols, automation of tasks, debugging, etc. Ideally, the course should be taught over a year or semester to keep people productive. The only issue is (for those already carrying the badge), what is the incentive to keep going? What does the degree do for you? I don't mean money or promotions; I mean why would anyone stick with this like they stuck with their college degrees?

Great idea, how do we make it a reality that provides enough value outside of Microsoft to encourage participation, while not losing these people that have accomplished it?

Anonymous said...

Holy cow mini - an entirely positive post, and a fantastic idea to boot.

The times they are a changin'.

Anonymous said...

Sign me up...I'd pay tuition.

Anonymous said...

Back in my days as a MS Dev I recall how the company was full of very bright, very sharp devs. The problem with all this high powered talent is that each one wanted to "out-clever" the other to prove their Alpha-coder prowess. Now innovation is good, just like cell regeneration, but when it runs rampant, un-checked innovation is more akin to cancer than healthy growth.

The net result of all this developer "chest thumping" was a boatload of clever things that found their way into the OS. Some things were actually useful and well engineered. Some things were clever features that, unfortunately, duplicated other clever features. This seemed like a waste of cleverness. Others were useful but, while clever, were a nightmare to maintain so became a net drain because the original dev had moved on to prove himself in another group.

My point to all this is that the hiring model and subsequent employment environment seemed to encourage survival of the fittest. The theory seemed to be that the smart will rise to the top (i.e. stay with the company and write more clever things). The not-so-smart would be edged out through natural selection. So if they can keep a steady stream of smart cookies coming in the door to feed the pipeline, the natural turnover that resulted would allow the best to succeed. The problem is that it enourages the best to succeed and move on rather than to succeed and stay.

And I'm not saying that this can't be an effective model, but if that's the plan, then the notion of a career plan is a bit silly because the company is really encouraging people to move up and out and make room for the new blood. If that really IS the plan, then the compensation should be factored accordingly to attract the type of new talent they are looking for.

If, on the other hand, the company is looking for long-term candidates that will grow and contribute more than five years to the company, then the fact that they can code a virtual memory manager on the whiteboard or not becomes less important. What becomes more important is: Are they smart enough to know when to be clever and when to write boring code (that can be tested, delivered on time, and that someone else can maintain two years from now) because there won't be the constant peer pressure to write one more new feature that just delays the delivery of the OS.

Not that that would ever happen.

Anonymous said...

I came from EDS and we did just that. We had a 10 week intense "boot camp" so to speak where we learned much of the skills we would need to be "engineering systems engineers": the Systems Life Cycle (SLC), PL1 and C programming. With it came the knowledge that we then owed the company a certain amount of time. If we left before the required tome commitment, we owed a pro-rated amount to the company based on what they deemed our 10 week "education" was worth.

Anonymous said...

Obviously it is a beautiful idea!

Anonymous said...

I think there is more than enough "Microsoft capable" talent out there but I think Microsoft has become too focused on finding "plug 'n' players" instead of looking to cultivate the talents that exists in the job market. As a result, I believe the company has started to blindly look past smart people who would make great employees.

I recently did a phone interview with a recruiter at Microsoft for a Technical Support Engineer (TSE) position and she was so focused on coding, coding, coding that she couldn't even bother looking at my more extensive technical support background. And this was for a TSE position! Microsoft seems to think that if your job is in ANY way related to tech, then you must be able to code. That's unfortuante. It might be a software company, but coding isn't everything. This particular recruiter went so far as to say that technical/customer support skills could be taught, but that the coding skills could not - I strongly argued the opposite - that communication, support, and interpersonal skills are not necessarily the "easy" skills (especially for some tech people...) - but she didn't buy it. So, needless to say, because I wasn't a coder the interview effectively ended. I had to chalk it up to their loss.

The "Microsoft Academy" is a great idea, I think. But I think that there needs to be a hiring culture change as well to truly start finding the excellent talent that exists out there. I'm not saying Microsoft needs to lower its standards - I'm just saying it needs to become more flexible and consider potential. Besides, Microsoft is all about "potential", right?

Anonymous said...

I would not, and have not recommended that any recent high school graduates go into CS or IT as a major. I also will not recommend it as a path for my children.

There's no future in it on these shores since the software industry is subject to the whims of Wall Street and will do anything to save a buck. I've see too many of my peers jobs outsourced. The quality is down but to do the work is way less expensive up front. Long term maintenanc, on the other hand is a nightmare, but that's someone else's problem.

Anonymous said...

I like it! Why haven't we done it?! It's the best way to ensure consistency and a certain level of competency. Suggest it would help all discplines and busnesses - HED, HR, Legal, etc.

Anonymous said...

We already have such a program. It's called internship.

Anonymous said...

I hear that big engineering firms like Motorola send their new engineering hires through a multi-month program.

This would certainly herald a new day at Microsoft, signaling that Microsoft has finally moved in to the world of the LARGE CORPORATION.

1. Is Microsoft still heavily skewed to college hires?

2. For industry hires, as Microsoft tries to push all of us out of their precious kernel, it deprives itself of developer oxygen because it pushes us to high level technologies like .NET and JAVA. By your very outward facing practices, you tell the worldwide development community to stay away from core operating system functions. University professors are smart, they get the message and teach appropriately. You see the result.

I once asked at a career fair how long it would take for a junior programmer to work up to being allowed to work on an operating system kernel. I was laughed out of the room by the recruiter, my professors, and my classmates. Guess what I hack on today?

3. For industry hires, maybe compensation isn't what it should be for kernel-level technical expertise.

4. Having spent 5 years in Windows, I wonder if "Mrs. Manners" classes aren't needed more than technical classes.

5. If you switch to teaching all of the technical details, interviewers will need massive re-training and all of their cute code brain-teasers will go out the door.

I like the idea. It would just be a huge shift.

Anonymous said...

I'm not sure what new Microsoft employees need is a strong dose of "the microsoft way". Maybe it's the other way around, Microsoft needs a strong dose of the "real world" way.
I'm sure the Academy would turn out people who go on to have successful careers at Microsoft by all internal measures and would probably reduce burn-out and turn-out, increasing job satisfaction (of the survivors). But I think it would further penalize and repel independent thinking. Goodness knows we're insular and reactionary enough.

Anonymous said...

Talent is not determined by "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". We need people who can solve problems, people who have integrity, honesty, who can think. Everything else can be taught or learned.

We need managers who know what their reports are really doing and not simply managing up. The bar needs to be really really high for people managers rather than "of he was a really productive dev so he is ready to lead" crap.

Anonymous said...

Although it usually seems that all we need is just a few more people who will take direction to fill in the gaps in the project, that's just a snare and a delusion. The really big innovations in software come from small teams and are born half-clothed. By the time they grow up and are fully clothed, our fickle users have adopted another baby.

Anonymous said...

Nice idea, most of the Indian consulting companies do something similar with a 6 month training regimen.

There was a thinkweek paper on this a while ago, if you want to read up on it.

Anonymous said...

Great idea! We can have Microsoft Internal Training Certificates for Dev/PM/Test. All new hires go through it and are required to pass it otherwise they will not be eligible for promotion.

The existing employees can take it on a bonus-driven basis.

Anonymous said...

My only objection is that what you seem to be proposing is heavily front-loaded, a big slug of training at the start and then "good luck with your career". (Not that sharpening up skills and weeding out the unfit is a bad thing; indeed your post deserves a standing ovation.)

However, the half-life of engineering knowledge has been estimated at 2.5-7 years, and is skewed toward the lower end in the computer industry. After ten years, three quarters of the knowledge a person started with could reasonably be considered obsolete.

Where is the emphasis on continuing education? MSTE and the other continuing education programs surpass most of the industry already, but there is little incentive other than a check mark on their review to take them and even less incentive for groups to allow people time to use these programs to any great extent. As they stand now, our programs also can not cover fundamental knowledge (e.g. algorithmic efficiency for a dev) needed to switch tracks with any reasonable track of success.

In a world where skilled people are increasingly scarce, growing the skills of the people we have is just as important as recruiting talented people.

Anonymous said...

hear that big engineering firms like Motorola send their new engineering hires through a multi-month program.


Nope, not Motorola. I have been there and they dont have any such program. Actually it sucks even more there being a new hire than in microsoft.

Anonymous said...

A nice idea. At some point Trilogy had this intense bootcamp called Trilogy University and it seemed very useful for the new hires.

Anonymous said...

A friend of mine hired in January 1989 went through an almost three month training academy. It was run by Doug Klunder. She learned all the Microsoft tools and went on to work on Cirrus and Access development. And finally left in 97 after they wouldn't let her take a sabitical to write a book. Not about Microsoft so no dirt. :-)

Anonymous said...

Posts like these are really hilarious. Top talent is not interested in MSFT. Any coder worth anything is aiming for GOOG or startups. The MSFT culture is the old IBM culture.

Anonymous said...

I'd like to recommend the following additional subjects for new hires:

- RFC's: What they are, how to read them and why they benefit everyone.
- Wizards: Why they don't belong in development tools.
- Layers of abstraction: Why more isn't always better.

Anonymous said...

Being around CS types all my life, there are programmers and there are programmers.

There's the head down COBOL programmer who is great at what he does but could care less about bit-level stuff; there's the reverse and then there's the maven...does it all.

IMO, if someone comes through your doors and doesn't care "what's under the hood" no Microsoft Academy is going to make him/her want it.

It's a Darwin thing to me and, as much as I like the idea of a Microsoft Boot Camp, I don't believe it would do much. Especially, considering the current culture: Insular, Political, Evil.

No, what's more likely needed is a white knight with a set of balls.

Anonymous said...

The idea is this: Invite poor kids, street kids etc. to attend a boardingschool, to learn all the basics, as they do in "regular schools" in America today and then slowly start edging them towards IT. Introduce Maths early, let them use the best tools available etc. etc.

Oh Lord! This is why we pay taxes and every State has a Department of Education. We might as well open a Gates basketball Academy for kids who don't have the necessary skills to make it to the NBA.

Anonymous said...

Interesting idea. But I think the real problem is something touched upon by another poster above.

At this stage, why should any kid smart enough to write OS kernels WANT to? I would never recommend that they pour their energies into that. I'd recommend that they pour their energies into advanced mathematics and go to Wall Street.

American industry has spoken loud and clear and the message is that the US doesnt want technology people. If you come into MSFT knowing OS internals, memory manipulation and deep hardware level coding inside and out, what will that buy you? An entry level $60k/yr level 59? No thanks.

And as for Google, no superstar deep internals coders are going to Google. They dont need them. Google is a perfect example of the problem. Startups and places like Google just need the kind of high level coders that mini is rightly saying MSFT has too many of. Google produces cheap commodity code for the web. They dont write an OS. Of course there are some brilliant engineers there driving strategy and working on search, but overall, a place like Google is just even MORE incentive for college kids to not bother getting mired in deep internals.

The way we're headed, the OS base is going to end up being open source Linux maintained by hobbyists. In the US, we're just not creating an ecosystem that will cultivate the talent needed to do deep OS internals work here at home - and thats a real shame. As long as business feels that coding should be roughly the equivalent, in terms of compensation, as being a janitor thats how it will go though.

I guess corporate execs agree with Stallman in that programmers have "no right" to earn a nice living. Unfortunately for them and him, there are still PLENTY of other ways in the US for kids that smart to apply their mind to something that WILL make them a good living.

If I were starting over, I would put all of my energy into finance where friends of mine earn 4x my salary despite being my peers in terms of intellect and background. They just happened to channel their energies into an MBA.

Anonymous said...

If you want to get a new hire up to speed with what your team does, mentor them! I served as a mentor on my last team, spending a few hours a week talking about the tools/processes we our team used, and then giving little assignments using those tools. After a few months, the new hire was a fully functioning member of our team.

It is crazy to outsource the training of your team members to someone else. Sure, they might learn some of the stuff your team needs them to know, but they'll learn a lot more useless junk. In the case of Mini's potential hire, that developer would learn a bit of "deep operating system concepts" from the proposed Academy, but would learn far more about everything else (managed languages, Web development, SQL, Office programmability, Xbox games, etc.). And Mini's interviewee probably had already taken at least one operating system course in school; why would taking another OS course now make a difference, especially when presented with all the other training?

As I read through the rest of the comments, I feel that everyone is forgetting that they are not the center of the Microsoft universe. Your team, and what you work on, is just a tiny cog in the whole scope of things. Your team is the only one that can properly train your team's members.

Anonymous said...

"There's no future in it on these shores since the software industry is subject to the whims of Wall Street and will do anything to save a buck. I've see too many of my peers jobs outsourced. The quality is down but to do the work is way less expensive up front. Long term maintenanc, on the other hand is a nightmare, but that's someone else's problem"

I don't understand your point. You argue that there is no future in Computer Science careers because quality is down. That doesn’t make too much sense in my opinion. If quality is down it implies either that there is a lack of talent or that the developed products are overly complex. Either way, a company is going to be forced to hire more people to solve the problem. If there is a lack of talent, your salary should go up by supply & demand. If the problems are overly complex then, at the very least, you will have greater job security (chaos leads to job security). With the number of students entering CS as a major in decline worldwide (I just don’t get that), I think it is actually a combination of both cases. The end result, in my opinion, is that CS is a worthy field to pursue.
On another note – great idea Mini. I’ve always thought our training programs lacked a basic foundation. When I started from school it was just assumed I knew Win32, COM, SQL, and ASP. Unfortunately, my Mac and Linux friendly professors were not as thrilled about Microsoft technologies as some U of Washington ones might be. In the end I did fine, but I would have done better had the company invested a few weeks in me before I actually started my job.

Anonymous said...

Perhaps the "whiteboard" stress interview doesn't identify the best candidates? Are we merely selecting for snap judgment and an ability to project certainty? Is every person who doesn't pass the screening a bozo? I'll argue the baby is being thrown out with the bathwater.

Anonymous said...

I would be among the first existing employees in line... great idea.

Anonymous said...

Mini, you need to do some analysis about the "talent gap" before going off on taking managements line hook line and sinker around "can't find qualified workers."

No evidence exists of any kind of engineering shortage in this U.S. and Microsoft certainly isn’t facing one. Salaries are flat for engineering occupations and Microsoft still pays below market rates.
How many engineer has the company actually hired in the past year out of all of their new hires? How many of those were RCG compared to experience engineers?

It is all supply v. demand. The only way to tell if Microsoft is truly facing a shortage is to be able to break down actually hires based upon occupation. A number they keep secret because it would blow their "shortage myth" the management want to continue.

Just My 2¢ said...

There is a good parallel for your Microsoft Academy. Look at the oil companies. There are less than 2000 petroleum engineering graduates per year from a handful of colleges and universities. These folks are ready to work, but they are in short supply. It is an incredibly specialized field - drilling and producing oil and gas.

As they did in the 1975-1985 era, oil companies and oilfield service companies are now hiring good engineering students with good aptitude (and little or no college instruction) and are shouldering the expense of sending them to school.

If demand for qualified workers outstrips supply, Microsoft will have to adapt to its new environment.

Anonymous said...

not a bad idea, but i can see it costing the company a lot in both time and money and then once people graduate they can take their amazing new skills and apply them at google or whichever other company has a better overall deal.

the same people who suck at the whiteboard don't suck at all when it comes to looking out for themselves.

you have to fix the fact that msft sucks in many many ways as a place to work for the kind of people you are looking to work there.

this little idea seems like a way you have found to distract yourself from the continuing suckitude of your situation. msft academy won't grow ballmer a brain or anyone else a spine.

first fix the ongoing suckitude and then you can have your academy.

Anonymous said...

"Posts like these are really hilarious. Top talent is not interested in MSFT. Any coder worth anything is aiming for GOOG or startups. The MSFT culture is the old IBM culture."

Go home flame boy. People of high caliber are indeed choosing Microsoft over Yahoo or Google. Gary Flake is a good example of this.

http://techblog.typepad.com/my_weblog/2006/09/interview_with_.html

Anonymous said...

Back in the 70's Sears (Sears Roebuck and Co.) needed IBM 360 Assembler language programmers that were few and far between. They set up their own 3 month training course and graduated a couple of hundred people a year. Almost everyone that entered the program finished it and by the time it was over the talents of the students were quite well known, making placement on the various programming teams fairly simple.

One interesting aspect of this was that people that came into the program who were Computer Science graduates were generally worthless. They made truly lousy programmers. The superstars were people who had no programming background but who had majored in something that required actual, honest, rational thinking ability, like Library/Information Science, Music, Math, any of the "hard" sciences.

I started in the program in 1973, spent 10 years at Sears programming, then went off on my own as a PC programmer. I still make a quite decent living doing programming and database development. And most of the Computer Science majors I still encounter are lousy programmers. The crap that comes out of Microsoft is further proof of that.

Anonymous said...

I can tell you one of the reasons the pipeline of students in CS/IT type tracks is dropping. Women are being increasingly turned off of this sort of work.

One reason is the lack of forward progress made by women in the industry. For such a skills/talent-based system, talented women are still shut out, shut down. MS's widely-touted female VP was never on the technical side of the company. And there aren't any women up at those levels elsewhere.

When I started at MS, only 25% of the total employees were women. They were very proud of that fact. But as I looked around, I noticed that the majority of those 25% were in HR, admin, or other people-skills roles. Very few were PMs, a few were testers, and I've yet to actually work with a female developer on ANY of the technologies I've documented.

Second, most women who are likely to have gone into high tech are going to be eventually put off by the stupid, bull-headed way levels and raises and such are done. They don't encourage teamwork, they encourage cowboy/lone wolves. Yes, it's all wonderful if something like that can happen, but in reality, most work NEEDS to be done in a team setting. Most guys don't play well in those situations. So we get sick and leave.

Third, there is the objectification of women issue that is still around. And company-sponsored. Things like:
* "nymphs" and go-go dancers for the entertainment at TechReady--self-explanatory
* posters saying "Pimp My Office"--enough with the rap-boy bitches & hos mentality
* (admittedly a while back, but)t-shirts like the Windows Millenium Edition one with the slogan of "Just do ME"--not really wanting to wear an invitation to rape, guys
* a token-budgeted "Women's Conference" that doesn't talk about getting ahead at MS, it talks about managing your money and your work-life balance--I think because most women don't want to acknowledge you have to play into the bitches & hos, frat-boy hijinks to get ahead as little as you can

And as time rolls on, and guys become more self-aware, they're going to find they are dissatisfied with the culture/job here as much as women are. Not all guys are frat-boy pimps.

And I think, as a previous poster pointed out, that many people are not going to want to have skills that are only good for jobs being outsourced. People are going to get skills-based training around something that they can use to get a well-pay job in the US. Why waste time and money? People are more practical and smart about these things that you give them credit for.

And I also agree that MS is NOT the be-all-end-all hiring destination it's made out to be. Stop deluding yourselves. It's A JOB. If you let it take over your life, your opinion of your life will steadily erode.

Anonymous said...

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.

There is also the aspect that Microsoft doesn't get a look at all the top qualified people. Just like "criminologists" understand the criminal minds of only those criminals who have been caught, Microsoft evaluates its recruitment against only those candidates who show an interest.

After ten years, three quarters of the knowledge a person started with could reasonably be considered obsolete.

That depends greatly on the quality of that knowledge to begin with, and I disagree entirely that much of it has a 'half life'; some certainly does but most does not. Knowing how to write thread-safe, reenterant OS kernel logic, how to optimize for a given machine architecure, how to write relocatable, transportable logic even in "machine independent" languages like C/C++ never expires.

Good OS architectures are forever (as are bad ones) and once one knows their way around a few OS's and machines, that kind of knowledge evolves very slowly. Virtualization is a classic example; the techniques employed in IBM's VM and MVT OS's of 30 years ago have improved, yes, but the basic architectures and problems they solved have changed little. The mainframe hardware assists added 25-20-10 years ago have changed little, and the similiarities can be seen in the recent AMD and Intel virtualization enhancements. Good solutions (and knowledge of them) tends to be dictated by the complexity of the problem. Similar examples could be cited in RDBMS and file systems.

My impression is that what prevents top-tier product architects, developers, and scientists from interviewing Microsoft is a) Compensation games b) anyone with a non-MS view of technology tends to be treated like they have two heads.

Microsoft seems to recruit for more of what they already have, "passion", not surprisingly.

Startups, OTOH, having a mission-critical "new" problem to solve and lacking any ingrained culture or rules about what the solution must look like, tend to look for proven track records, adaptive techniques, and indepth experience in technology. That is what develops and ships products and smart people know it, have the scars to prove it, and are rather dispassionate and professional. Startups have precious little cash, no market momentum, and can't afford to be careless in their hires. Hired guns aren't emotional about their target - they are focused on preparation, aiming, and execution.

"Passion" is a poor substitute for professionalism.

Anonymous said...

You argue that there is no future in Computer Science careers because quality is down.
I should have been clearer. There is not future in Computer Science because there's no reason to go into it anymore. The industry is going to get what they are willing to pay for which is substandard quality on these shores or across the Pacific.

Anonymous said...

A learning program exists already. It is popularly known as levels 59-61 for dev and 58-60 for test. Now if only we weren't busy politicking for scraps come review time we'd actually help people in the lower levels get trained on the job.

Anonymous said...

"Go home flame boy. People of high caliber are indeed choosing Microsoft over Yahoo or Google. Gary Flake is a good example of this."

I am a bit biased because I'm talking from the perspective of a student at a top CS university. You may be right that MSFT can shell out the dough for top guys with boatloads of experience. However the young, "passionate" fresh talent is looking longingly at companies like facebook and google, and begrudgingly heading to MSFT if those options expire.

Anonymous said...

“I am a bit biased because I'm talking from the perspective of a student at a top CS university. You may be right that MSFT can shell out the dough for top guys with boatloads of experience. However the young, "passionate" fresh talent is looking longingly at companies like facebook and google, and begrudgingly heading to MSFT if those options expire.”

Everyone is going to have their A, B, and C choice for a career, and I’m certainly not going to argue with anyone’s personal choices. However, I think you are generalizing much too much. Microsoft receives thousands and thousands of resumes each year. Our intern program is one of the best in the industry and the people in that program are dripping with passion for their jobs. You should research Dare Obasanjo's blog. Dare was a Microsoft intern and is one of our most passionate employees when it comes to all things Live.

http://www.25hoursaday.com/weblog

As a recent graduate of “a top CS university” myself (University of Michigan), I can vouch that there are plenty of students passionate about Microsoft back home. For instance, last year Bill visited a number of Universities across the country (Michigan was one). I was lucky enough to have participated in some of the recruiting materials for the U of Michigan portion of the tour.

If you are indeed “top talent” as you call yourself (doth you protest too much perhaps?) then I wish you good luck in your career endeavors. However, to just spout out a random thought against a company without any evidence to back it up simply because you don’t like that company doesn't do much to prove your case.

Here's a link talking about Bill's college tour.

http://www.microsoft.com/presspass/features/2005/oct05/10-12Campus.mspx

Anonymous said...

Judging by the one-size-fits-all crap that comes out of the EE stuff, I'd be afraid such an academy would be worthless. Or worse, yet another exercise in someone showing their way is the One True Way to code and anyone who can't whiteboard through their pet questions is unworthy ("surely any *real* programmer can sketch out a tcp/ip stack in an interview, chuckle, grin"). Another battle of the Smuggies and the Touchie-Feelies, with the plain old problem understanders nowhere to be seen

Anonymous said...

The problem lies with Microsoft outsourcing the low level jobs to places like India. If someone new came into Microsoft they will soon not have any low level job to work up from.

So what will Microsoft do, complain there is no talent and move more Jobs to India.

Good Luck Microsoft

Anonymous said...

""passionate" fresh talent is looking longingly at companies like facebook and google"

You do realize that google is an advertising company and maker of javascript trifles, and that almost any decent programmer could implement facebook in a weekend? You don't seem to know what talent is, or what talent seeks.

Anonymous said...

Take the money you would have spent on an "Academy" and put it instead into better documentation of our SDKs and tools. Start with replacing the "hello world" style of SDK documentation with real world non-trivial examples. Release the source code to more of our tools...the best documentation consists of real code doing a real job.

The people who are talented and motivated will lap it up all on their own without any need for an "Academy." Those people make the best team members and are the ones I want to work with every day.

Anonymous said...

Take the money you would have spent on an "Academy" and put it instead into better documentation of our SDKs and tools. Start with replacing the "hello world" style of SDK documentation with real world non-trivial examples. Release the source code to more of our tools...the best documentation consists of real code doing a real job.

Nicely said, and completely correct. However, you wouldn't believe how hard this is to do in actuality. I've been on SDK documentation teams for nine years, and we're typically staffed with just enough people to barely document APIs. I'm not going to go on too long about this, but if you are really passionate about giving feedback to the folks doing SDKs, you should contact Fabrice Fonck in Developer Division. I will give you his email if you are external, but I suspect you're using you're real alias. Fabrice owns the doc teams for just about the entire .NET stack, and has a great deal of influence on the other developer documentation teams at Microsoft. He also owns the Windows SDK product unit--successor to the Platform SDK.

Good luck. If you really are internal, and you want to discuss further, let me know here and I will email you.

(Apologies for remaining anonymous.)

Anonymous said...

Forget this technical academy, here's what the courses should teach, with a pink slip if you fail.

1) Fluency in the local language.
2) Basic financial skills. I don't think anyone wants the embarassment of hearing Microsoft employees whine about being poor. This class will teach you to make smarter choices.
3) Social responsibility. No, this isn't giving campaign spam or anyone hitting you up for cash, just a reminder of your place in the world and that you are quite fortunate compared to the general populace and it would be nice to contribute something back.
4) Common courtesy, especially with office space at a premium.
5) Basic hygeine, especially with office space at a premium.
6) Extra course for Redmond would be basic driving skills. A small class on defensive pedestrian tactics too.

Anonymous said...

Having tried to hire people on my team in the past, i suspect that the location of microsoft is also partly to blame for the lack of candidates.

i wonder if we were in the silicon valley, would we have more people (non-h1b) applying?

Anonymous said...

Anyone smart enough to be the best in Computer Science is smart enough not to.

The pay for the lousy environment and horrible career path is just not worth the money anymore. I grew up wanting to be an engineer but I would never recommend anyone do so today.

We all know why the industry is hurting but even worse is that these conditions will not change anytime soon and seem to only be getting worse.

Kernel writers should go be doctors or airline pilots or military officers. Writing code is less and less a rewarding or profitable career. I've been looking for my exit and I have doing this for 24 years.

Anonymous said...

9 years ago, I got into the industry via a "boot camp" for Windows 95 and IE 4 that was funded and taught by Microsoft for a tech support firm named Keane. I was almost literally the kid off the street (as were many others). The program was intense; the washout ratio was about 1:2 by the time training was over. IE4 - which broke almost every system it was installed on - was released the first day we hit the phones, and the ratio increased to 2:3 after the first two weeks.

It was a trial by fire, but for those of us who made it through, it was the single best thing that happened to our careers and, by extention, our lives.

Such programs don't exist any more, mainly because such entry-level positions are no longer on these shores. It's a shame, really, because some of the best talent I have ever seen was forged in those flames. While not everyone was a star, the intensity of the program, the diversity of viewpoints, and the sharing of knowledge brought success to those who were capable of it.

I certainly would never have learned as much, or as been as successful, had I spent that time in college. As testament, I never got a degree, but Microsoft hired me anyway.

Anonymous said...

Didn’t Windows drop over 100 STE’s that could use such a program?


It sounds like Microsoft believes that people who can test, but not code, are worthl…err deadwood.

Anonymous said...

Take the money you would have spent on an "Academy" and put it instead into better documentation of our SDKs and tools. Start with replacing the "hello world" style of SDK documentation with real world non-trivial examples.

Oh, yeah! 'Course, to do that, MS would actually have to value documentation, and not treat it like an afterthought. And maybe give some thought to having enough headcount slots, and having them filled with competent people.

Writers spend their time "triaging" and working hardest only on Tier 1 technologies--everything else gets the short shrift. And even Tier 1 doesn't get enough attention.

Then, you need to give the programmer writers enough free time to truly learn their API in order to be able to code real-world samples. Or not downgrade them on reviews if they choose to reuse test code in the docs, as it's often more robust than the "Hello World" samples the writers barely have time to write.

Anonymous said...

"javascript trifles"

vs what? Assembler or IL trifles?

The trifles are the output of a Java to Javascript compiler.

Anonymous said...

Didn’t Windows drop over 100 STE’s

In the last 2 yrs Windows org unloaded more than 200 of us lowly tester schlumps, while outsourcing and offshoring the work, and using our own docs for training.
At the same time, our own group locked down nearly all permission to interview out

"...you're vital to the Longhorn project..." aka "...we ain't done whippin on you yet, there's still blood to be had..."

The Test Dir of one group, weeks after RIF'ing another batch of 25+, then moved to another group outside of Windows (guess he wasn't too vital to the project...)

During those 2 yrs, dozens of very good people wisely left the company entirely. Leads, Testers, PMs, Devs; a lot of 'Bad Attrition'

and now for something completely different...
Nearly every person tossed out not being good enough, are now working better jobs, with more responsibility, for considerably more money, many back at MS as vendors/contractors. The offshore teams doing their old work? Well, ask around and you'll hear some disturbing comments on the quality.

Anonymous said...

Well, maybe I should have gone into something else, but I liked to program so much that I cut most of my classes to sit in front of a terminal. Personally, I always enjoyed physical science and mathematics (was a physics major), but programming in assembly to do experimental measurements on a PDP-11 and fortran to do simulations on a CDC were always something I could find time for. Thank goodness I didn't waste time on computer science back then - the idea of relational databases were still worthy of journal publications for instance.

The bottom line is that for me, programming is an avocation, not a profession. I still can't believe people will pay me money to do something that I enjoy so much and would do anyway. When I'm not programming something for my employers, I'm programming something for me. I think that the people who go into a profession to make the most money suck at it - true for engineers, true for doctors, and patently true for most of the idiots in America who go into finance or management (although a few are good and have earned my respect - probably because they enjoy the job).

Please believe me that I'm not trying to be a troll here (and I once was an MS employee), but in truth, the kinds of people that love computers and programming the same way I do, generally go with Linux these days. The Linux world has all of the attributes of the original hobbyist/personal computer world I grew up in. Truly, you HAVE to be into computers to deal with your typical Linux distro even today (especially if you like bleeding edge hardware). Linux folks aren't looking for computers to use as appliances - they're looking for something to screw around with and have fun doing it. Take LinuxBIOS for instance - you mean I can grab this source and build my own BIOS to boot Linux? Cool! I have to write code for my (one of numerous pieces of) hardware! Sign me up! Also, the amount of good development tools these days for all ranges of programming on Linux that are free and good is simply staggering (true, most are available for Windows, but why bother?).

The problem is that there are a lot of employers these days that will hire you to work on their cool new Linux hardware beasty - ooh - custom drivers! kernel hacks! Frankly, Microsoft has done too good of a job for folks that want to use the computer, but dropped the ball for the folks that want to live the computer. I guess that's where the money is, but it isn't where the down and dirty hackers are.

Anonymous said...

Great idea that requires strategic thinking, long term investment, and management accountability to the people in the program and after they finish the program.

I had the very fortunate experience of going through one of these programs at an industry powerhouse - GE. 2 years long, it was the hardest, most grueling, and at times most painful from a self reflection standpoint, experience I've had in my professional life.

And if I had to do it all over again... I would absolutely do it, without hestitation. To this day I use things I learned from GE every day.

The key closer for them to hire me (had lots of offers coming out of school) will surprise you. They were very up front that other leading companies (insert list of powerful, well known Fortune 500 companies) hire graduates from the program - in fact target hire them out of GE. And GE was ok with that because they used it as a selling point to get the best and brightest into the program and figured that they'd sell the long term career value of GE and convince them to stay. And if they got hired away that was ok because the person was likely to land at a GE customer or partner which would make it far easier to business with their new company because someone there would "speak GE". And it's true. I got target hired away. Lured away by a huge comp package which is another decision I'd repeat.

And yes, a few years and another company change later the company I was at was attempting do a business agreement with GE. We wanted to embed our technology into some of GE's equipment and had some stiff competition. I helped the acoount team "speak GE", tighten up the value props and we closed a huge deal. And yes, someone from the GE side asked me if I'd ever worked at GE because I was very good and targeted in my dialogue with them. When I said yes and mentioned the program I completed, the guy's face lit up and he knew he was getting a quality counterpart.

Microsoft could use a little of this GE magic. Many other companies do this very well too. We could learn alot from their many years of effort in this. As Jack Welch used to say (paraphrasing) - take the best of what's out there and don't just make it your own. Make it better and better. Make it more meaningful, more relevant, more profitable. Make the competition want to copy you, chase you and use that to energize yourself to continue to improve. You're one of the best and brightest - show me your stuff.

At Microsoft we have all the right stuff to do this so why not? Let's go. Let's be a talent powerhouse. What's stopping us? This isn't your father's Windows after all.

Anonymous said...

RE: Keane, LOL I was just thinking about that. I too went this route into Microsoft, and am very thankful to this day for it. Completely changed my life. It was indeed a grueling training, 10 hour days which were very difficult for learning some of the more dry topics, I came close to falling asleep during some of the lectures.

I also remember the first couple days was very crazy. People dropped out like flies, some were a few minutes late on the first day: Gone. Apparently they didn't want the job enough.

Yes, Microsoft should bring this sort of thing back, even for people who are college hires, give them real world training to help them apply what they learned in school in a more focused Microsoft environment so that when they join their team they are ready to rock'n'roll.

Anonymous said...

Poster 1: Take the money you would have spent on an "Academy" and put it instead into better documentation of our SDKs and tools. Start with replacing the "hello world" style of SDK documentation with real world non-trivial examples.

Poster 2: Oh, yeah! 'Course, to do that, MS would actually have to value documentation, and not treat it like an afterthought. And maybe give some thought to having enough headcount slots, and having them filled with competent people.

I'd also recommend paying these programming writers as if they're at least as rare as competent engineers, since the right programming writers have a dev's programming skills PLUS written communication skills. Given the comparative rewards of dev or PM roles, vs. programming writer or tester, someone with world-class coding skill has to be insanely passionate about the written word or testing to opt for one of the latter roles over one of the former.

Additionally, show the better writers respect internally. At Microsoft, code talks. Code talks much louder when you write it as a dev in a PG than as a programming writer, and all programming writers with aspirations to be thought of as great devs know this. That is very difficult, maybe impossible, to get around. Some of the best writers in our org have left to become PMs or devs as a result of wanting respect for their coding skills that wasn't forthcoming as long as they were only the writers. All four writing orgs I've been part of in the past 6 years have had their share of FTEs who were only the writers and had never held a position as a dev during their career. But likewise, all four orgs have had their share of engineers with professional dev backgrounds who could compete admirably with at least an average MSFT dev.

The new career model is re-titling programming writers as Content Publishers, a title that will also be shared by editors and technical writers who document end user and administrative user interfaces, registry settings, etc. Now there is a way to an SDE-level prospective writer's heart. Give them a position title that when appearing on their resume for a position outside Microsoft will cause the hiring manager to wonder, "Why is this tech writer applying for a media codec development position?".

I second the comment by another poster who suggested that anyone with serious interest in improving SDK docos contact Fabrice, or another individual in a similar position over the particular docos you particularly care about.

Anonymous said...

This sounds like a great idea, as long as competent people run the training program.

So I guess that leaves MSTE out.

E and J's Film Crew said...

but in truth, the kinds of people that love computers and programming the same way I do, generally go with Linux these days. The Linux world has all of the attributes of the original hobbyist/personal computer world I grew up in. Truly, you HAVE to be into computers to deal with your typical Linux distro even today (especially if you like bleeding edge hardware). Linux folks aren't looking for computers to use as appliances - they're looking for something to screw around with and have fun doing it.

I'm of similar generation and background to this poster and I have to say that I think he nails it, without romanticising our "glory days". Here's my logic:

I'm someone who does know the intricacies of some very complicated systems and have dabbled in a wide variety of challenging comp sci projects. A few years ago I tossed all of the Windows computers out of my house (that would be 3, taking me down to 8 linux/macos machines). The reason was that I figured out that what I really enjoyed doing was reading and hacking other people's source and I just didn't have the access to the the system-level code I was interested in on the Windows machines. (didn't much care for the design of what I could see either, but that's a different story). Basically, I was never using those boxes and they were running up my power bill. I think this story is repeated in a lot places and ways that MSFT may not see as important.

The reason, Mini, that you don't see kids in interviews who can write a scheduler or garbage collector is that to learn to do that you need to a) read the modern, functional ones that are already out there and b) contribute patches to be reviewed and accepted or rejected by the people who first wrote the code. It really is the only way to get the experience and discipline you need to be useful doing this stuff. Everything else is just vapid theorizing.

The systems that are easily available to be read are pretty much all Unix-based and the people who do the work to learn about them at a deep level are self-selecting themselves into those (non-MSFT) communities. (Something similar is about to happen with Sun's JVM vs the CLR, btw, though mono does help a bit).

I think that Stallman is a left wing-nut with some phenomenally weird ideas, but on FOSS he's right for the wrong reasons. Over time, I've come to the conclusion that the real advantage FOSS has over closed systems is not in the utopic ideals of "gratis vs libre", but in the training sphere that you elaborate on in this post. The FOSS advantage is in the ability of people to self-select in the Darwinian sense without going through a lame interview process. You prove you can do FOSS by writing code, not standing at a whiteboard. The people who learn how to really do it, will do it with FOSS because it doesn't require getting a seat at an academy and time off to take the class - it requires interest, talent and will-power. And you can't fake those things in these communities, the code is your only ticket in.

I encourage all those folks who say they'd sign up for MS Academy to go ahead and start reading the code in Linux or the Sun JVM or Google Web toolkit or any of a number of very powerful and freely available systems. It will help your skill set immensely...

Anonymous said...

I second the comment by another poster who suggested that anyone with serious interest in improving SDK docos contact Fabrice, or another individual in a similar position over the particular docos you particularly care about.

I was a long time programmer writer in the Platform SDK back in the days when Morgan was the group manager. I have since moved on to greener pastures, and I suggest that anyone worth their salt do the same.

For years SDK across MSFT was able to fly under the radar under some terrible and utterly incompetent management and the piper is finally being paid. Upper management is casting a VERY critical eye on SDK particularly since the documentation is, across the board, terrible. Even internal folks use Google first, and the help collections second (or third, or not at all). In order for there to be a change, someone with some vision needs to step up and say, "enough is enough - we're going to do this up right." Proper search, intuitive organization, real world examples, documentation that reflects bugs AND workarounds, a holistic approach to helping developers do what they want to do - all things beyond the grasp of current management. And, unfortunately, all of the good folks in the SDK groups have been chased out by years of incompetent management, so who's left to take over and enact such a plan? No one.

If you're currently in SDK you really, seriously, need to consider a career change. Trust me.

Anonymous said...

>...and start reading the code in Linux or the Sun JVM or Google Web toolkit or...

Absolutely, positively DO NOT do this prior to reviewing the rules about reading outside code in the open source policy section in the employee handbook.

Christian H. said...

Hey Mini,

It's been a long time since I've posted on here, btu I had to comment about this post.

It's GREAT!

ALl comanies shuld have this kind of thing. I don't think it should be used to root out bad hires though.

I think it should be mandatory though to take classes in your discipline that focus on technique rather than theory.

Project Managers should DEFINITELY take MANDATORY CLASSES as they are the first line of communication with customers.

Too many of them have just an idea of a picture or function without understanding how things are implemented.

I'm a C# consultant right now and my current assignment is a prime example of why SW development can be so hit or miss.

This shop feels that the interface is mor eimportant than the implementation.

The project had to be rescused because o this yet they still don't want to admit that without the implementation the interface is a pretty picture with nofunctionality.

My company has mandatory training and a book budget. It's not a lot but it'll get one or two book sper year.

Anyway, I couldn't believe that MS is teaming up with Novell but then Mono/.Net are worth it.

Anonymous said...

I heard months back that we're doing a 9 month bootcamp in certain product groups (Windows??) across disciplines for folks with non computing backgrounds.

Personally I think it should be done regardless.

Anonymous said...

The things I like to learn to be successful in Microsoft from a Microsoft's academy are like how to be a partner in 8 years. How to improve ratings within 80 days of annual review or how to win a political battle in 8 days or even how to kill time in an 8 hour meeting.

I guess these are the useful stuff I like to learn. Only Microsoft has great instructors to teach these relevant skills. I mean technical skills etc., one can earn elsewhere why start an academy for such useless skills.

(This comment is supposed to a be humor on the current state of Microsoft's employees. It is not a rant.)

Anonymous said...

i've been hearing rumours of a RIF post vista in some parts of windows. Can someone post if they know anything ?

Anonymous said...

If I were a recent graduate I’d avoid MS unless I couldn’t find a job at a good startup / Google / similar company. Given the current size of MS and structure it can’t compete in terms of opportunities for learning and compensation + you get all the politics and many layers of management which makes everything move at snail pace. I stay only because I am in the second part of my career and the benefits / job security are hard to match outside + I don’t have to work crazy hours having a family, etc.
Frequent reorgs suck but at least you still have a job.

So if you have to choose MS due to lack of interesting offers then I would stay for 1 or 2 years to build a resume and then move to a more dynamic company with less politics and the possibility of big rewards like MS offered during the early/mid nineties.

Also stay away from the STE/SDET roles if you are interested in the technical aspects of the job, it might only be a decent place to start if you are interested in the managerial ladder and can’t get a job as a PM.

My .2c

E and J's Film Crew said...

>>...and start reading the code in Linux or the Sun JVM or Google Web toolkit or...

>Absolutely, positively DO NOT do this
>prior to reviewing the rules about
>reading outside code in the open
>source policy section in the employee
>handbook.

That's a fascinating comment. I was approached a while back by a friend at MSFT about applying to work there and I considered it for a little while. Does the fact that I already have familiarity with a number of systems which are GPL and Apache-licensed and could pass Mini's whiteboard screen as a result, mean that I am "tainted goods" from an IP standpoint and could not be hired?

Is it actually the case that MS employees cannot read, even on their home machines on their own time, publicly available code from outside sources? It would be interesting to those of us who are considering (or would be willing to consider in my case) a job at MS to hear what the restrictions actually are.

Anonymous said...

The flaw in this otherwise excellent idea is that there are inherent problems deeply set into the Microsoft way of doing things. Such an academy would have to be carefully designed to allow new hires to bring better ideas to the table rather than indoctrinating them into the isolated "Microsoft Way" which will not only perpetuate our current problems as a slow-moving behemoth but make them worse.

Anonymous said...

I definitely echo what you've seen Mini. I interviewed a ton of candidates for MS when I worked there and I saw one college candidate after another from top-end schools like Princeton, Stanford, CMU show up with ZERO C/C++ experience. All Java. Now, I'm only hiring experienced developers. It's worth the extra cash for their skills.

Anonymous said...

I went through the interview process at Microsoft, and have noticed that the people who interviewed me were only focused on coding...
If you guys want to attract great candidates you also need to show the interviewees that MS is actually a great place to work. The only comment I heard is "We are Microsoft!!! Do you realize? We're the greatest".

This made me turn down the offer I got even though it was financially appealing...
Don't forget that when doing a job interview you not only want to get a feel for candidates but you also want to leave them a good impression.

Anonymous said...

[i]The problem is that there are a lot of employers these days that will hire you to work on their cool new Linux hardware beasty - ooh - custom drivers! kernel hacks! Frankly, Microsoft has done too good of a job for folks that want to use the computer, but dropped the ball for the folks that want to live the computer. [/i]

This comment implies that there are all kinds of great career ops for low level Linux system programmers and that companies are both investing in, and cultivating, deep Linux talent.

Sorry, but this is just not true. I dont know what kind of "Linux beastie" it is youre talking about, but most Linux based devices are extreme commodity, heavily cost driven, projects at hardware manufacturers. You think thats the kind of great environment for a software developer to go? And you dont think most of that work is off-shored? You're talking pure fantasy.

The fact is that if you insist on being a programmer in the US today, it is just far easier to make decent money doing much easier work ad the high levels working for some web outfit.

I would argue that the "talent" that can do deep kernel level code faces a market of shrinking demand. Linux has been around forever now and has still done very little for anyone (career wise) other than Linus, some very large hardware OEMs who use it to avoid having to pay ANY fee for software (hello IBM, HP, et al) and some famous web folks who view the OS as a commodity that they dont want to be bothered with.

Anonymous said...

Is it actually the case that MS employees cannot read, even on their home machines on their own time, publicly available code from outside sources? It would be interesting to those of us who are considering (or would be willing to consider in my case) a job at MS to hear what the restrictions actually are.

Yes, even on your own time. If you follow the rules that is true. Of course we all know how respectful of rules many engineers can be.

Anonymous said...

"Is it actually the case that MS employees cannot read, even on their home machines on their own time, publicly available code from outside sources?"

The answer to the specific question you have asked is that it is not true. However, I respectfully decline to elaborate further on internal policy.

I would honestly be surpised if there was a major software developer that didn't have a policy about how external source code is treated. Not really any different from the WINE guys who told their contributors not to look at leaked Windows source code, the similar situation with leaked Half-Life 2 source code, or the projects that require statements from contributors saying the code is unencumbered. Even the appearance of impropriety can be damaging.

If there are counterexamples, I'd certainly be interested in hearing them.

"... already have familiarity with a number of systems which are GPL ... mean that I am "tainted goods" from an IP standpoint and could not be hired??"

Ward Cunningham worked here for awhile, after all, so I seriously doubt it. My guess is that you might not be permitted to work on projects similar to the ones you worked on or have other restrictions imposed, but that's about it. Note that the GPL stuff never enters into it; it would be the same if you'd come from a closed-source business with competing products.

This should be just common sense, really. It's all about legal risk, same as anywhere else.

Anonymous said...

Sorry, but this is just not true. I dont know what kind of "Linux beastie" it is youre talking about, but most Linux based devices are extreme commodity, heavily cost driven, projects at hardware manufacturers. You think thats the kind of great environment for a software developer to go? And you dont think most of that work is off-shored? You're talking pure fantasy.


I'll keep this in mind as I cash my fantasy paychecks. I'll tell my friends so they can keep it in mind as well. Of course it's always true that there are more positions for programmers at the higher levels - there are more end-user applications to work on. But Mini was making the point that he's looking for folks with at least mid-level systems programming experience, and my point is that most of those folks use Linux these days. How easy is it for someone outside of Microsoft to learn about the Windows kernel at the coding level? How about even the plethora of driver models with only MS docs?

I don't think that you've ever worked on one of those extreme commodity devices that you're talking about. If you had, you would know that time to market and per device manufacturing cost was everything for these devices, and NRE (do you know what that means?) was almost of no account.

That isn't the embedded world where Linux does well though. There are many low volume widgets being built out there that need the complexity of a real OS. Linux wins these designs because:

a) Low entry cost for development - you don't have to spend a ton of money on licensing Tornado (do you know what Tornado is?) workstations for example.

b) You have the source and don't have to pay a huge source licensing fee to get it.

Also, these sorts of jobs generally do not lend themselves to outsourcing, since there is a tight coordination required between the full design team.

Anonymous said...

The answer to the specific question you have asked is that it is not true. However, I respectfully decline to elaborate further on internal policy.

Yeah, sort of. If I remember internal policy correctly, you could look at open source if you got LCA to sign off on it. I think the idea here was casually perusing sytem level source and learning via making changes, building, debugging for fun. Probably not a strong argument for convincing the LCA staff to approve.

Anonymous said...

Are you kidding me, I graduate from a top 5 engineering school this year - #1 in Comp Sci and the word among us is the worst in the batch will choose Microsoft. The best will go work in open source cultures. Of course, google is the #1 choice on campus - it's become well known that MS's work-reward culture sucks.

Anonymous said...

Three questions for Mini:
a. What do you think makes an "A" hire at MSFT?

b. How do you plan to align the goals of what the company wants to teach with what the employee wants to learn?

c. How do you plan to retain young business talent if they start to feel that the goals of senior managment and rank and file are not the same?

More on a:
A lot of the "A"/ "Alphas" I worked with at MSFT in VS & windows wouldn't work out at my startup.

I saw too much self promotion and not enough "blocking and tackling".

I guess what I'm saying is - why is MSFT so focused on hiring quarterbacks when the reason you're down at the half is that the offensive linemen don't see a reason to take an extra hit. After 99, I didn't see anyone "dive on a loose ball" unless they were under management spotlight.

Vista isn't late because of failed Hail Mary passes, it's because of penalty flags (DOJ), small mistakes (fifteen million sloppy checkins), horrible plays (a million and one _gates_ for "quality), and bad coaching decisions.

Train all the Peyton Mannings that you want, but without a team that feels like it's going to get something out of retaining it's OS championship I don't see the point.

More on b:
The company says it wants deep "C + classes as really long function names" programmers. (It's not C++ because there's almost no templates, no standard library, no exceptions, etc.)

However, from what I saw the people that got promoted were not the most technical and capable people. They were the ones that read Jack Welches books.

They always chose the right side, they put in long hours in the PUM's softball team, and they did a shitty job really really fast and got a senior manager to give it to a junior to try to actually make ship quality.

I see how you can make Java Coders grok memory and even assembly.

What I don't see is how this helps their career as much as a Dale Carnegie course.

c. SPSA loosely translates into a situation where the managment gets paid for the quality of the seats in the bleachers and the user feedback survey on the food stands, and doesn't get fired when you lose the season because you put the wrong coach in charge, or you decided that every play was going to be a Hail Mary Pass.

*Cough*WinFS*Cough*Avalon*Cough*

I am not a VP, or even an MBA, but I think there is an appalling lack of goal alignment between VP's and bottom rung employees.

When I left I saw a ridiculous amount of BS in the employee review forms, but I didn't see where the VP cared when a team didn't break the build, or got it's stuff actually working by code complete.

Anonymous said...

"The problem with all this high powered talent is that each one wanted to "out-clever" the other to prove their Alpha-coder prowess. Now innovation is good, just like cell regeneration, but when it runs rampant, un-checked innovation is more akin to cancer than healthy growth."

My favorite example of this is NTFS Streams. While I know Apple did this first, I count it among the needlessly complex features that have brought immesurably more grief than good to the world.

I'm won't be surprised if MarkL chimes in and tells me why NTFS streams had to be there though.

Anonymous said...

I should make a mea culpa - WindRiver has gone Linux (while keeping vxWorks), and they no longer ship Tornado. I wonder how much they charge for their new development system? I remember Tornado as the slickest embedded development system of them all - if you could afford it.

Since I'm yakking - I think that the academy idea is pretty good. Too bad the public education system around Redmond is so lacking though. I learned a lot through UC Santa Cruz and Berkeley extension classes in the Bay Area. I took a class on NT drivers that saved me from the total confusion induced by the DDK docs before there were third party books available. I made it a point to take a class every quarter just to stay on top of things. The technical depth of the classes was great, and they were sort of real classes with homework and exams and grades. Definitely more than you might expect from other extension classes around the US.

Anonymous said...

Electronic Data Systems (i.e. EDS) started something similar to this in 1967 ( http://www.eds.com/about/history/timeline.aspx) -- same core problem (i.e. nobody from University trained in COBOL but a lot of smart people were interested), but the technology was different. It was a 10-week intensive deep-dive program. Overtime, the focus of the program morphed from COBOL to C++ (including pointers, memory management, etc) and Unix, and eventually then got completely watered down. For EDS, the people graduating from university eventually reached a comparable bar, and the cost associated with running this program became yet another expense that could be cut to make revenue projections.

Anonymous said...

Using stupid canned terms like "hit the ground running" is one reason why you stopped getting quality candidates.

Microstiff said...

"Are you kidding me, I graduate from a top 5 engineering school this year - #1 in Comp Sci and the word among us is the worst in the batch will choose Microsoft. The best will go work in open source cultures. Of course, google is the #1 choice on campus - it's become well known that MS's work-reward culture sucks."

(Pat, pat, pat) "Hello. Is this thing on?"

Anonymous said...

Mini- your idea is in the works.....http://blogs.msdn.com/jobsblog/archive/2006/11/07/minimsft-on-hiring.aspx

Anonymous said...

So, the company that brought up a whole generation potential programmers hooked on the most infameous RAD-tool drug, Visual Basic, is looking for down to earth hardware-digging programmers who can tell a bit from a byte? How ironic is that?

Hell, today Computer Science in most peoples eyes is to manage to reinstall Windows, write HTML by hand or some person who can summarize a Excel-sheet and definitely one who can tell if i should allow svchostx.exe to connect to spywareheaven.com through my firewall.

When i started to get interested in computers and technology in general, back in the early eighties, things where much easier. The big hardware companies where much more generous with information than nowdays. I could even order books from some companies with detailed developer information of their hardware as a private person.

All this changed during the nineties. Now it's all about NDAs, intellectual property and patent infrigments. If some young person starting to get interested in the underlying technology of an OS today, where does he start looking? Give Microsoft a call asking for documentation? Chatting with Microsoft developers on some forum? No way, the legal issues and probably company policy wouldn't allow that.

However, on the net you can easily download a Linux-distribution or some BSD flavour. You got communities on the net where you can learn from others, all the source-code you can handle and you got the freedom of working on your own thing at the side.

However, i've tired at the computer software industry. I've gone back to banging bits and bytes on microcontrollers. Maybe i'm just nostalgic, but once again i'm challenged to fight memory restrictions (2 to 32 kB), optimize for speed (4-40 Mhz) and hacking my own transfer-protocols, and all the datasheets and information needed freely available for downloads as PDFs from Microchip and Atmels homepages.

Anonymous said...

That's a fascinating comment. I was approached a while back by a friend at MSFT about applying to work there and I considered it for a little while. Does the fact that I already have familiarity with a number of systems which are GPL and Apache-licensed and could pass Mini's whiteboard screen as a result, mean that I am "tainted goods" from an IP standpoint and could not be hired?

No, not at all. I have an employee working for me who worked on a well-known GPL'd app, and if anything he's even more respected among his MSFT peers because of his prior experience.

Anonymous said...

I only have one question: If there is such a great shortage of qualified and talented IT and software developer workers in the US, what are Microsoft and other large technology companies doing to ensure that higher education institutions graduate people with the right skills?

Bill Gates just made this complaint again while in Russia....but it seems very hypocritical when Microsoft along with other technology companies continue to move these types of jobs offshore for no reason other than to positively impact their bottom lines. Why should students in the US continue to enroll in CS programs with this kind of situation?

Anonymous said...

well I personally think the summer internship program serves very much in the fashion you dictated, except its not as intense :) Also, there are some graduate programs such as Masters in Information systems Management (MISM) at CMU that cater up students almost perfect for the PM role - Process mgmt/ user management/tech core. Although I totally agree that there needs to be more orientation of people onto the new job, maybe not everyone needs to go through it . perhaps, the interviwer could recommend certain recruits for the academy, and some laterals can just jump into the work.

Anonymous said...

My, my, my. Jenna the Microsoft Recruiter in "Links to this Post", had this to say:

"The apprentice program is in its “beta” version and there are plans to support a third version in FY08. There is currently room in the next class – we are looking for great Microsoft Managers who are willing to spend a little extra time to coach a new hire and help ensure they develop the CS knowledge they will need for a long, productive career amongst us. So Mini, if you read this, I think this is the perfect chance for you: give me a call to discuss the apprentice program. I’d love to help make your dream a reality.

-Jenna"


Just wanted to thank you, Jenna, for revealing our worst fears...that Microsoft smugness, arrogance and hubris is ALIVE AND WELL IN THE RECRUITING DEPARTMENT.

How else would you describe the dripping sarcasm when you ask that Mini break his anonymity to help make yours -- not his -- dream come true.

I am sure HIS dream would be to do something similar without the aforementioned "yeah...and what are you gonna do about it!" attitude displayed by you, dear Jenna, and I am sure, your hiring peers.

Tsk, tsk!

Ihar Filipau said...

I'm not sure what new Microsoft employees need is a strong dose of "the microsoft way". Maybe it's the other way around, Microsoft needs a strong dose of the "real world" way.

[Unaffiliated with MS technical comment follows].

So I guess MS differs not much from other companies.

Ok, I am experienced. I was hired as senior devel, but nobody ever looked into my CV, nor education/skills/experiences I do have. Nobody. But I am experienced and I used to that.

New guys came and were put into hard training which included testing our software. After crashing and trashing it for one month, their manager told them that they need still to learn a lot. And the result of their testing (which were reliably provoking long standing bugs) were simply discarded.

Bugs look bad. But painting some young developer (who already did more job than complete sw department combined) as an idiot is much more profitable and looks better in reports.

I always wanted to ask top manager does it bother him: newcomers look so great in report from HR and look so dumb in R&D reports. It's more gratifying to oneself to call somebody inexperienced, rather than admit that fresh eyes see the one's problems bare.

In the end, you start understanding the role managers needs to play in company for it be healthy. Yet, many managers from height of their positions are used to disregard the real issues. After all, for them, the issues exist only on paper. And instead of guiding their subordinates to better product, they go on writing memos/presentations/charts/reports to please higher-ups.

P.S. BTW, that's the trick I learned on myself and now use all the time. Instead of writing off all on inexperience, I record problems newcomers stumble upon. Then, I use that as ideas for further documentation and implementation improvements. After all, the thing experienced people miss most is "fresh eye": seeing something like if you see it first time in your life.

Anonymous said...

My favorite example of this is NTFS Streams. While I know Apple did this first, I count it among the needlessly complex features that have brought immesurably more grief than good to the world.

I'm won't be surprised if MarkL chimes in and tells me why NTFS streams had to be there though.


Gary Kimura added included streams in NTFS has an answer to OS/2 + HPFS's Extended Attributes (EA's) and Apple's resource forks.

Of all the needlessly complex things to gripe about, NTFS streams seems pretty low on the list...

Congrats on the Vista RTM. I thought the RTM date was 11/30 but sounds like you guys managed to RTM early!

Anonymous said...

Microsoft used to have such an "academy" concept, it was called ADC, Applications Development College, and it was run by Doug Klunder. It proved three things: (1) people don't come to MS knowing everything they should know, and (2) devs that went through ADC were all far more likely to be stars when they popped out, and (3) the best coding happens in teams of 2. All of these ideas were scrapped and Klunder left the company. (So did all of the ADC graduates, except for the last one I know about, Jon DeVaan. And it's not an accident that he's now in charge of the MS Engineering Excellence group.)

Anonymous said...

"The apprentice program is in its “beta” version and there are plans to support a third version in FY08."

Have they worked out the bug where the apprentices become automatic 2.5/3.0 fodder? Just asking, because by definition the people in the program aren't meeting the fte bar and are yet in the fte headcount.

Anonymous said...

I think miniMSFT has just identified himself as part of the problem. In all the dev interviews I've been in, I have NEVER been asked such things as:

"can you schedule your work accurately and do you deliver to that schedule?"

or

"When you are designing a project that has many dependencies on other people who are designing and implementing at the same time, what are some of your strategies for delivering your project?"

Now why would any one need those skills as a Dev? Especially at Microsoft where all they seem to need is to be able to code a sort function standing up?

Schedules? Schedules are for wimps who can't think of cool features to slide in while no one is looking.

In all my time as a dev at MSFT, I never once wrote a sort function. I don't know about the people interviewing me, but re-inventing the wheel seems like a collosal waste of effort.

Anonymous said...

Microsoft doesn't need more smart people. In fact Microsoft wastes its intelligence because there isn't any software engineering process. There are important products like Visual Studio, which come with some completely undocumented new features. Users are supposed to find about the new features by "creative search". The best way to find information about a Microsoft tool or API is using Google. Important information that must be in the VS documentation is available mostly on strange blogs and is written by developers, who traditionally are far from good writers.

Because Microsoft is very big and rich, the company is not struggling to survive yet and high quality is not a must.

The results are already here:

Inability to produce major new products.

Delays going on for years.

So many bugs, that people are ashamed to admit they work for Microsoft.

Loss of contacts with the users of our products. We don't know our users and we are not sure if our products would really be useful.

No awareness of any short or long-term company goals.

Most intelligent employees are leaving the company.

Anonymous said...

"Process mgmt/ user management/tech core"

Thanks. I wondered what all these PM's on my team do. Although you should add "status/ass-kissing management" to the list.

Anonymous said...

Do we really need more devs? More college grads with zero industry experience, totally disconnected from the reality.
A better strategy could be:
1) Implement more lightweight process with less overhead
2) Rethink compensation strategy (for all levels) to ensure we deliver what customers need,encourage startup-like working environment and keep the talents MS still have

Anonymous said...

"Microsoft used to have such an "academy" concept, it was called ADC, Applications Development College, and it was run by Doug Klunder."

True - ADC was usually referred to as Klunder College

"...the ADC graduates, except for the last one I know about, Jon DeVaan."

False - I think the first ADC class started in around 1987. Jon DeVaan was an "oldtimer" by then.

Anonymous said...

dang mini, I had to look twice to see that I was on your blog. I think it's a great idea.

Anonymous said...

Someone above posted a comment about how MS made it easy for people who "use the computer" but difficult for people who "live the computer".

As a formal Linux/Unix guy, and a now MS employee for 10 years, I couldnt agree more. Linux and OSS has this hacker culture which they encourage and nurture. MS sadly lacks in this aspect. I know we have Quasi open-sourced some of our code (eg WIX) and we support communities around our products, but it is not the same. Linux/OSS encourage developers getting under the skin of our software, while our community efforts are around getting developers to use our APIs.

Sometimes I wonder what it would have been like if we had open sourced our low level APIs - like wininet/winsock etc, from which we dont get any competitive benefit. Esp wininet, as it is a big hairball that should have been buried long time back. Anyway, if we had open-sourced Wininet, we could have benefited from people contributing/improving to it while we could have freed up a lot of engineering resources to work on something more valuable.

Of course, I am not suggesting that we should GPL it, as there are complex issues around shipping GPL ccode in non-GPL software (I'm not a lawyer so I dont understand legal issues) but it is an interesting point someonen on the top should think about.

Anonymous said...

"There's no future in it on these shores since the software industry is subject to the whims of Wall Street and will do anything to save a buck."

There is no future if the only thing you're aiming for is to work for a company. The smart ones work for themselves and build applications which companies like MS or Google later find themselves buying for a billion dollars.

Innovate - for yourself.

Anonymous said...

I think the problem is that whats used or important inside MS isn't whats widely used outside of MS. Try perusing the job descriptions (outside of Redmond) and see how many of those tools or technologies you know well enough to impress at an interview. I sometimes worry that my MS-centric skills will be of little help should I decide to seek employment elsewhere.

Anonymous said...

Thanks. I wondered what all these PM's on my team do. Although you should add "status/ass-kissing management" to the list.

If the PM is doing their job, they're keeping the corporate bullshit away from the developers and testers with a whip and a chair.

Anonymous said...

"Congrats on the Vista RTM. I thought the RTM date was 11/30 but sounds like you guys managed to RTM early!"

HAHAHAHAHAHAHAHAHAHAHAHA!!!

Oh... you're being serious.

Anonymous said...

I think Microsoft recruiters did a skill/talent check, and that talent/skill check is based on how wide your knowledge and how interested you are not just in the position you are applying for. I do run my own business and I do agree with the Microsoft recruiter strongly require coding skills other than technical skills. In a way, a program will be a great help in the system to faster its process, so a TSE could easily automate the process rather than doing it on manual..


don't forget to visit
www.myLyricsCentral.com
the most complete lyrics in the web

Anonymous said...

What I find amazing about all this "Why can't Microsoft find all of the top 1% talent it needs?" is there is no attempt to answer the most fundamental question: Why would I want to work at Microsoft?

Now these are my own personal prejudices, based on over 20 years of contracting. Take them with a grain of salt.

#1 Is the work interesting? (Do I want to work for 5 years on the next generation filesystem just to see it axed? He** no!)

#2 Is the team top-notch? (Probably).

#3 Do I get lots of cool tools? (sorta).

#4 Is it a fun place to work? (sometimes)

#5 Am I treated well? (usually)

#6 Am I compensated fairly (mostly)

#7 Will I make a difference? (no)

So if I am a top 1%, why would I choose Microsoft over Google, which is tres cooler, or a startup where my contribution could make or break the company.

Anonymous said...

I think Microsoft recruiters did a skill/talent check, and that talent/skill check is based on how wide your knowledge and how interested you are not just in the position you are applying for. I do run my own business and I do agree with the Microsoft recruiter strongly require coding skills other than technical skills. In a way, a program will be a great help in the system to faster its process, so a TSE could easily automate the process rather than doing it on manual..

don't forget to visit
www.myLyricsCentral.com
the most complete lyrics in the web


WTF is this? Argh, Mini asleep at the wheels again

Anonymous said...

No offense mini, I read your blog regularly for kicks (I find it quite entertaining) - and this is probably one of the lamer ideas I've heard thus far. While at it, why don't you start printing out MSFT diplomas for your "academy graduates" and substitute CS/CE degrees with this new "MSFT Academy" degree?

Most programmers do not pay off in the first year, especially in large companies like MSFT. It takes a while for everything that is important to "sink in". Therefore, you should have as many senior people around as you have junior/new hires to sort of hand hold them through what they do not know, without sacrificing their performance of course. This nonsense about educating people the "MSFT" way is quite stupid. You just rendered someone's CS degree useless by implementing that.

Anonymous said...

I am confused after reading this post and all the comments.

I am about to graduate in Com Sc. but I have no knowledge in c++. I have a strong C#, javascript and UI skills. Does this mean I do not stand a chance of geting a job at Microsoft? I am really interested in working in the Web development product group like the ASP.net team.

Most of my friends are not even considering MS. They are interested in Google and other companies.

Thanks.

Anonymous said...

RE: I am about to graduate in Com Sc. but I have no knowledge in c++.

They probably don't teach FORTRAN, COBOL, Pascal, or IBM 360 Assembler, either. Kids, these days!

Anonymous said...

There used to be a program called "Service Academy" in the US which was based out of the Las Colinas PSS Site. This was strickly to ramp-up new hires out of college to take support phone calls. It appears that something similar now exists outside of the US:
http://www.microsoft.com/india/gtsc/trainee/techsupport.aspx

I am not sure why this was cancelled in the US.

Anonymous said...

The "Wow" ads are boring and smarmy, with the obvious manipulative crap and the little obligatory tinge of political correctness (the little Asian kid trained by the big black guy, who is of course a basketball player: what else could he be?).

In short, the ad is typical Microsoft promotional treacle. You could have a 5 seconds spot saying "buy Vista, it's better!" and the money would have been better spent.

They should hire an ad agency that has a sense of humor and let them do their thing without interference.

Anonymous said...

This is humorous. Microsoft hires "A" people. No one in the industry longs to work there anymore. Your projects don't reach completion and you just spin on the endless hamster wheel, trudging over to the Starbucks in the cafeteria, day after day. 3/4 of the groups are in the red - the groups most of you work in. You just leach off the crown jewels. Isn't it ironic that Microsoft hires "the best and brightest" and WERE notorious for their interview loops but now have "downgraded" the hiring process to having a hiring event Give me a break. Sure the money is still in the bank but the writing is on the wall. The best days are in the past. You are the new Ma Bell. At least the health insurance still kicks ass. Most of you clowns are in conflict with other groups and don't really know what you are doing from day to day. The guy who runs this site is dead on. The fat needs to be trimmed. Now quit reading this and go get another latte (with that free coupon you got for doing basically nothing).