Why Microsoft Can’t Hire Great Programmers
I listened to the audio version of Paul Graham’s Great Hackers again. Personally I don’t like the “hacker” term. By now it has multiple, mostly negative meanings:
- People that like breaking into other people’s computers and mess things up. (Yeah yeah, those are called “crackers”, but nobody non-nerd knows that.)
- People that slap their programmes together in a quick ‘n’ dirty way. Languages like Perl and Bash are great for this kind of people.
- People that are very good, fast and efficient programmers.
In “Great Hackers”, Paul Graham is talking about the third kind. It’s also the kind I’ll talk about, but I’ll call them great programmers instead.
Paul Graham mentions a couple of properties of great programmers. Two of them are as follows:
- They’re curious, they want to know how everything works
- They love to program, usually they have a couple of programming project they work on in their free time
How do you recognize great programmers? And if you’re able to find them, how do you get them to work for you? The first question is hardest, if not impossible to answer. The second is easier to give, but isn’t enough for some companies (particularily: Microsoft) to actually get the programmer to work for them. I’ll also try to explain why I think that is.
How to recognize great programmers? Paul Graham says it is impossible for you to recognize great programmers, in particular if you’re not one yourself. Non-technical staff is from the start doomed to recognize great programmers, for the same reason people with no taste will never be able to hire good designers. Personally, I’d at least check if the person likes programming. Does he or she do hobby projects? Having hobby projects doesn’t ensure you’re a great programmer, though; I know many people who write code for fun, yet produce the ugliest code you will ever see. But I think it’s an easily recognizable and important thing. If you don’t do hobby projects, you either are incredibly busy or don’t like programming.
So, once you’ve found your great programmers, how do get them to work for you? First off, the working conditions have to be comfortable. No cubicles, but offices with a door that closes. But, obviously that’s only one condition. What I personally find really important is to know the company. I’m not saying that I’m someone they’d want to hire as a programmer, as I don’t fit the great programmer profile (even if it was only because I don’t really enjoy programming anymore), but as a human. I’d like to know what happens inside the company, what kind of people work there. Not wanting to sound like a Microsoft-beef again, but I think Microsoft does a good job at this. They started this when .NET was first launched. They have many, many employees of the product teams blog. This way we can see who work there, what they’re doing and how they do it. Microsoft no longer is that evil company, but becomes a bunch of people working on products that they care about. Channel 9 takes that a step further. About daily there are videos published there with tours through the buildings and short interviews with employees. I get the feeling that I get to know those people and have an idea what it’s like to work there.
Don’t underestimate the importance of this kind of “marketing”, if you will. I don’t know how other people feel about this, but for me it works very well. For example, if I got to choose between working at Apple or Microsoft, I’d choose Microsoft right now. Why? Because Apple is nothing more than a building to me. Even though they may be working on very great products, arguably more innovative and possibly more interesting than Microsoft’s. I don’t know the Apple people (except for maybe Steve Jobs), I have no idea what the culture is like, I don’t know anything.
Yet, when you look at Apple and Microsoft, I can’t help but to get the idea that Apple works more efficient and delivers more innovative products. This is kind of a blunt statement, so I’ll give a little example. Windows XP was released in 2001. I assume that’s when they started working at the next Windows version, dubbed Longhorn. At some point they decided to include a new layer on top of the current file system, called WinFS. Which basically is a RDBMS on top of a filesystem. Most important property: make finding files as quick as finding websites on Google. They had many years and many people to work on this. Asuming they’d deliver Longhorn in 2006, they’d have had up to 5 years to work on it. Yet, they dropped the feature because they’re not able to implement it on time. Apple released a new version of Mac OS X (10.3) a year ago or so. In the first half of 2005 they’ll release Mac OS X 10.4 which will include this feature called Spotlight. To the user this feature does exactly the same thing as WinFS will. It might be slightly simpler, but to the user it’s exactly the same.
As Apple obviously has less employees than Microsoft, how is it possible that Apple with less workforce does stuff faster? Possibly Apple hired better or smarter programmers. How come Apple hired those great programmers and Microsoft didn’t?
The answer lies in who those people are. What’s the biggest upcoming group of hobby programmers, the group that potentially contains a lot of great programmers? It’s the open source community. There are dozens of great programmers working at projects like Linux, GNOME and many of the other open source projects. So why don’t they work for Microsoft, but for companies like Apple and Google?
Ever been to a Unix/Linux or open source conference? You’ll see many people walking around with Apple Powerbooks and “Microsoft sux” T-shirts. I don’t think I need to spell out the answer. The open source community is a group of people of whom many consider killing Microsoft life’s purpose. “I’m your worst nightmare”, remember? Many of those die-hard people would never work for Microsoft. Not all great programmers are like that of course, but it is a reason why they miss out on hiring many of them.
So, what can Microsoft do about this? Well, they can launch more recruiting initiatives, but, most likely great programmers won’t even notice them. If they see “Microsoft” in a job ad, they’re not likely to read it. But there’s good news. The open source community is getting more and more diverse. It’s no longer just the little group of long-haired hackers that code 24/7. You don’t have to be a nerd to write open source software. In the beginning much of the free/open source software was written in LISP and C. But today there are even a lot of open source projects using .NET. Yes, there are great programmers that pick a platform even if it comes from Microsoft.
Microsoft itself also steadily tries to open up to the great programmers in the open source community. For example with the Microsoft Shared Source Initiative, under which source code of parts of .NET, Windows, Office and other products are released. Not free to use in own products, but free to play with. This is obviously a way to gain more trust and give great programmers a way to find out how things work. Which is, as I said, something great programmers really like doing.
In the future I see the two worlds grow more towards each other. Microsoft will open up more. The open source software world will get more commercial. It’s going to get interesting.
Edit 9/24/2004: Fixed a coupple of typos.
Gideon said,
Wrote on September 22, 2004 @ 10:24 pm
I to think that open source (not free source) will become part of the business model and this will make it more commercial.
But I’m sorry but I just don’t believe that Microsoft will ever become open, maybe closed in another way dressed up as open. Maybe they will try to redefine ”open” (just like the word hacker has been redefined)… Microsoft can however never become truly open without becoming also something which is nothing like the Microsoft we all love to hate.
BlogBites said,
Wrote on September 23, 2004 @ 9:58 am
If you don’t do hobby projects, you either are incredibly busy or don’t like programming.
ZefHemel.com
Patrick Schriner said,
Wrote on September 23, 2004 @ 10:04 am
I agree; Whenever you see a new version of Windows, you ask yourself what those thousands of MS people did over the last few years. A lot of evolution & copying, but very little innovation;
Take VS 2005: After tons of pressure from Java IDEs, its finally getting refactorings (quite laughable, compared to say Intellij, and they are a small company).
Take Windows XP 64 bit: Just what the heck is taking them so long??
On the other hand, I have “heard” that MS Services for UNIX were a decent package, but there was / is allmost no word from MS about it…
I am afraid MS is 90% marketting and 10% innovation…
Manuzhai said,
Wrote on September 23, 2004 @ 10:45 am
I agree with Scoble that you’re miscalculating the scale of Microsofts operations; they have a much greater variety of hardware to run on.
Also, great hackers actually might find it attractive to work on stuff that makes a difference to a lot of people. Working on, say, Windows is an excellent opportunity to do so.
Scott Galloway's Personal Blog said,
Wrote on September 23, 2004 @ 12:01 pm
Can Microsoft hire great programmers?
Anonymous said,
Wrote on September 23, 2004 @ 3:22 pm
Despite Apple works more efficiently and delivers more innovative products; fact tells us that there are more people using MS products these days, more people write apps for Windows, and more people buy systems that are preinstalled with Windows instead of Mac OS. So Scoble definitely has a point: MS products sell because they successfully tackle many hardware permutations that leads to lower TCO.
Patrick: VS 2005 has lots of other improvements than just refactoring. In addition, VS 2005 refactoring is only for C# at the moment for obvious reasons. I can’t see why the improvements in VS 2005 should come as a result of pressure from Java IDEs. On the contrary, Sun Java Studio was released to ease the pressure put by VS.net and to lure Java developers back to Java.
For Windows XP 64-bit issue, you have to go back to Scoble’s questions: how many 64-bit processor/systems MS has to support and test? How many 64-bit architectures? To name a few, there are AMD-64 family (x86 extensions), Itanium (EPIC), Nocona (EM64T).
Anonymous said,
Wrote on September 23, 2004 @ 6:02 pm
You said:
“For Windows XP 64-bit issue, you have to go back to Scobles questions: how many 64-bit processor/systems MS has to support and test? How many 64-bit architectures? To name a few, there are AMD-64 family (x86 extensions), Itanium (EPIC), Nocona (EM64T).”
No excuse. The Linux kernel supports IA-64, x86-64 (amd64 and em64t), mips64, ppc64, sh64, sparc64, and Alpha; and in most of these cases, has for years.
Anonymous said,
Wrote on September 24, 2004 @ 1:42 am
Have you seen a single Linux distribution that supports all the 64-bit architectures you mentioned above? I know that SuSE 9.1 has supports for x86-64 and EM64T, but IA-64? I believe it took more than just the kernel to make a usable OS from the user point of view. If you have any evidence for your claim, please speak now or forever hold your peace.
Technical Careers @ Microsoft said,
Wrote on September 24, 2004 @ 7:46 am
Gretchen says Microsoft CAN hire great programmers
Scott Galloway's Personal Blog said,
Wrote on September 24, 2004 @ 10:23 am
Can Microsoft hire great programmers?
Technical Careers @ Microsoft said,
Wrote on September 24, 2004 @ 3:55 pm
Gretchen says Microsoft CAN hire great programmers
Mark Mehelis said,
Wrote on September 24, 2004 @ 5:23 pm
Zef,
as for WinFS it is not gone from Longhorn as you are stating here some of the networked features of WinFS are not going to be implemented at the time of release. It will have local system WinFS features. As for the Tiger version of OSX if you read the features that are being implemented by Apple they are actually significantly reduced in scope compared to what Microsoft is attempting (only certain file types are to be indexed etc.)
Originally WinFS was to have reach accross the network and potentially (through subscription web services) accross the internet.
So my feeling is that you are looking at two different problem sets and calling them the same thing. There already exist file indexers for Windows such as Lookout which MS just purchased. Furthermore Microsoft announced WinFS in the Fall of 2003 (PDC) and then Apple announces 6 months later that in a year they will incorporate WinFS like features on the local machine only. So who is innovative? I put my money on the 7 billion dollar research budget.
I am not saying that Apple isn’t innovative by any means but the example is not a good one.
Additionally Microsoft has been working on the underpinnings of Longhorn before the release of WinXP was released in 2001. The ambisions of the features are much greater which, in my oppinion is why it takes them longer to get things runing.
Mark
Zef said,
Wrote on September 24, 2004 @ 5:58 pm
Quote from the press release: http://www.microsoft.com/presspass/press/2004/Aug04/08-27Target2006PR.asp
“Microsoft will deliver a Windows storage subsystem, code-named “WinFS,” after the “Longhorn” release.”
So, there won’t be WinFS in Longhorn. About the difference between WinFS and Spotlight, you might be right. I knew I was on a leap by equating them.
Matt's Blog - Great Programmers said,
Wrote on September 24, 2004 @ 8:11 pm
[…] ories: Computer Industry, 143 words
Great Programmers
Zef Hemel has a great piece on hiring great programmers. Definitely worth the read. Scob […]
Martin said,
Wrote on October 5, 2004 @ 3:44 am
Yes, SuSE supports both Intel and AMD extensions and also ia64 in their current release. SuSE also supports IBM zSeries mainframes, which are far more exotic than anything ever supported by Windows. Debian runs on all the platforms named.
Linux now supports more architectures than any other system. Will there be differences between them? Sure, some differences particularly with regard to hardware and firmware support are unavoidable, but the application programmer or end user need not worry too much.
Sitsofe said,
Wrote on October 18, 2004 @ 3:11 pm
Linux may support more arcs than NetBSD but there is not a single distribution that supports all those arcs. Debian is about as close as you can get.
Ole Andersen said,
Wrote on October 19, 2004 @ 11:14 am
“At some point they decided to include a new layer on top of the current file system, called WinFS. Which basically is a RDBMS on top of a filesystem. Most important property: make finding files as quick as finding websites on Google. They had many years and many people to work on this. Asuming theyd deliver Longhorn in 2006, theyd have had up to 5 years to work on it.”
Actually, that would make it 12+ years in coming. Bill promised an ObjectFileSystem in Cairo, and in 1994 they had to withdraw, as it were becoming too complex.
anon said,
Wrote on November 4, 2004 @ 9:54 pm
My comments are for Mark Mehelis:
Actually, the Spotlight vs WinFS is a perfect example of the difference between Apple and Microsoft. For starters, Apple hired Dominic Giampaolo to head Apple’s efforts on Spotlight. If that name isn’t familiar to you, he was the brains behind Be OS’s BeFS which you might recall was the first file system to provide metadata searches, etc. So, yes, Apple DOES have THE best developers in the industry. There are many examples, such as Avie Tevanian (sp?) creator of Mach, Dave Hyatt, well known open source brower developer, Bill Kinkaid (iTunes), well known for his encoder work, etc. This list is long and distinguished.
Also, you’re incorrect regarding the scope of file types that are indexed. All files are indexed. Just like WinFS, Apple provides a basic set of “importers” that understand how to handle specific types of files in full detail. This is extensible by the developer community, same as WinFS. The only scope difference seems to be Network based searches. From what I understand, WinFS will not be able to deliver that in 2006 as it will be dependent upon an updated Windows Server product. Even then, it’s dependent upon each client having WinFS installed. i.e. this won’t be practical for a LONG time. By then, you can believe Spotlight will likely have the same features.
As for the timing of the announcments of search capabilities, this means nothing. It’s when you can deliver. Microsoft is well known for promising vaporware when they know the competition is getting ahead of them. This was a pre-emptive strike by MS. Apple on the other hand is well known for holding it’s cards until the last minute. In this case, developer support is required, to fully utilize this feature. Likewise, Apple demonstrated it at the next developer release after Panther shipped.
As for putting your money on the company with the 7 billion dollar research budget…. Why? Considering they have nothing innovative to show for it, it’s seems like a lost bet for you. How about Avalon? Come on, Apple’s had Quartz, etc., which is what Avalon is trying to imitate, for years now. Historically speaking, MS as invested tons of money on “me too” technology and has NEVER led the pack with any technology of significance.
Anonymous said,
Wrote on December 23, 2004 @ 12:29 pm
study the visions of WinFS and Spotlight, and then try and really tell everyone that Microsoft is not going on a limb and trying to be innovative. WinFS isn’t a “new way of finding files faster” as everyone seems to think: it’s an entirely new way of storing files. It’s a big big leap. Not to say that Apple isn’t innovative, but there are many immensely talented developer’s at MS.
And it makes sense too. There is little chance Apple has the funding to pursue such an elaborate project. This is no longer a game of who can advance fastest: if MS pulls this off, Apple might be in alot of trouble, since with MS’s current installed market, WinFS could become a new standard which Apple will have some trouble beating.
Hopefully this is not the case.
mike said,
Wrote on April 14, 2006 @ 4:26 am
huh? open source? how do YOU pay your bills? does your plumber fix your toilet for free? how about that appendix… the surgeon removed it under some ‘open operation’ license? and that chef, sure bet he cooked you a fabulous meal on HIS dime and time…
get real. start charging, close the source and get back to reality.
its YOUR hard earned work.
LMoseley said,
Wrote on August 9, 2006 @ 4:55 am
huh? open source? how do YOU pay your bills? does your plumber fix your toilet for free? how about that appendix… the surgeon removed it under some ‘open operation’ license? and that chef, sure bet he cooked you a fabulous meal on HIS dime and time…
get real. start charging, close the source and get back to reality.
Wow, you actually sound angry that MS is so bloated and flakey. Open source does charge for its support services and obviously does quite well at it. Leave greed out of it. You cannot purchase what these people have. It is purely for the love and respect involved in it’s communities and forums. These open source people smoke MS hands down. Vista is a mere reflection of something that it can never be. Open source has 20 times more to offer anyone who switches and can offer it for free. If you want a support contract, that is another story but you are not forced or strong armed by the MS Tyrant.
Enjoy your virus.