Microsoft Developer Explains Why Windows Kernel Development Falls Behind
New submitter mha writes "In a response that truly seems to be from a core Microsoft developer, we are told about why Windows kernel development continues to fall further and further behind that of the Linux kernel. He says, 'The cause of the problem is social. There's almost none of the improvement for its own sake, for the sake of glory, that you see in the Linux world. ... There's no formal or informal program of systemic performance improvement. We started caring about security because pre-SP3 Windows XP was an existential threat to the business. Our low performance is not an existential threat to the business. See, component owners are generally openly hostile to outside patches: if you're a dev, accepting an outside patch makes your lead angry (due to the need to maintain this patch and to justify in in shiproom the unplanned design change), makes test angry (because test is on the hook for making sure the change doesn't break anything, and you just made work for them), and PM is angry (due to the schedule implications of code churn). There's just no incentive to accept changes from outside your own team. You can always find a reason to say "no," and you have very little incentive to say "yes."'"
"Oh god, the NTFS code is a purple opium-fueled Victorian horror novel [...]" -- lol!
I think therefore I am... a Linux geek.
People at M$ only innit for the money. Microsoft's got good people no doubt, but I am reminded of line from Chef in Apocalypse Now: "They lined us all up in front of a hundred yards of prime rib. Magnificent meat, beautifully marbled. Then they started throwing it in these big cauldrons. All of it. Boiling." That's Microsoft: boiled prime rib.
its because of her genes though
The quality of Slashdot trolling has gone way down recently.
These NIH type problems are hardly unique to Microsoft, or even proprietary software. It's human nature. Big success contains the seeds of its own destruction. Open source has the forking mechanism which provides an outlet against some of the worst abuses (only).
Sounds like the guy was just frustrated and venting. Lots of us do that sometimes, and this one seems ready made to please the slashdot crowd. But do read the retraction the guy posted.
First, I want to clarify that much of what I wrote is tongue-in-cheek and over the top --- NTFS does use SEH internally, but the filesystem is very solid and well tested. The people who maintain it are some of the most talented and experienced I know. (Granted, I think they maintain ugly code, but ugly code can back good, reliable components, and ugliness is inherently subjective.) The same goes for our other core components. Yes, there are some components that I feel could benefit from more experienced maintenance, but we're not talking about letting monkeys run the place. (Besides: you guys have systemd, which if I'm going to treat it the same way I treated NTFS, is an all-devouring octopus monster about crawl out of the sea and eat Tokyo and spit it out as a giant binary logfile.) ...
All of the problems listed there are the direct result of poor management.
Accepting an outside patch makes your lead angry because . . . .
makes test angry because . . . .
and PM is angry because . . . .
There's just no incentive to accept changes from outside your own team.
When this happens, the manager who is in charge of all those people steps in and says "You will co-operate and get things done, or else you will no longer work here". Sadly, too many managers are too lazy and/or gutless to do this.
I submitted this story. I am only human - what was I thinking? I guess I thought of the many strange comments I could elicit...
I am so sorry, guys. I must say that shortly after reading the story reason set in (but I was too quick on /.) - there is nothing unexpected in it. It is no big deal. It is a non-story. Everything described is not "Microsoft", it is human, including the complaints. I don't think the points are invalid, it's just that one can make a long list like this for ANY large (or even medium) project. Life is messy - but I got my first story submitted (which means nothing).
My apologies.
I just hope that the guys managers, should they find out, react maturely - by doing exactly nothing (at least no punishment). Stuff like this happens, and if it does so only once it should be overlooked.
PS: On the other hand, enough people voted this to the front page...
Sigh. She's married now. The hot grits will just never taste the same.
Don't blame me, I voted for Baltar.
It is possible that you can make some kind of pretty good hybrid tablet/desktop OS if you thoroughly plan and execute it really well. We cannot fully know. The problem is only that Windows 8 is way too far from such vision. They just released a hacked Windows desktop with this Metro screen thingy taped on it. Everything is all over the place with no good integration and smooth workflow. There is no posh: the graphics are only sharp squares with plain colors. It feels like a tech concept demo thrown together over a weekend.
Dilbert-esqe. Change the details and its the last two "insert Big Co Name Here" jobs I spent a decade and a half at.
andy
If a project has enough churn, you can actually justify cleaning up design, interfaces and even entire subsystems in some cases. If all you do is make each piece of code you touch suck just a little bit less, you'll hate having to work on that code less and less over time. All you have to do is look at the code and think "it doesn't HAVE to be this way!" If that old application everyone hates has gotten to the point where it requires a full time position just to maintain it, there's usually no reason why the design couldn't be improved along the way. My goal in maintenance positions is to eliminate the need for that job. There'll always be SOMETHING that needs maintenance, so I don't feel bad about doing so.
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
exactly.
Take the ribbon, love it or hate it, if you really look at it the ribbon all it does is change the shape of the menu system of earlier versions of office. The exact same dialog boxes are there behind the scenes, showing up when you least expect them.
Even in windows 8 if you look around you can find the old windows 9X series dialog boxes and components in the seldom accessed areas. They are slowly being phased out but they are still there.
i thought once I was found, but it was only a dream.
Actually I remember reading that Windows 8 ignores certain entries in the hosts file - this was an article a while back on Slashdot.
I'm starting to think GNU is the problem with "GNU/Linux" these days.
From Pournelle's web site:
Pournelle's Iron Law of Bureaucracy states that in any bureaucratic organization there will be two kinds of people":
First, there will be those who are devoted to the goals of the organization. Examples are dedicated classroom teachers in an educational bureaucracy, many of the engineers and launch technicians and scientists at NASA, even some agricultural scientists and advisors in the former Soviet Union collective farming administration.
Secondly, there will be those dedicated to the organization itself. Examples are many of the administrators in the education system, many professors of education, many teachers union officials, much of the NASA headquarters staff, etc.
The Iron Law states that in every case the second group will gain and keep control of the organization. It will write the rules, and control promotions within the organization.
*** Finding a way to effectively deal with bureaucratic capture of institutions is probably the number one human problem.
C++ is made by a standards committee mostly composed of industrials and a couple of academics.
The features that are added are added due to demand of members of the committee.
There are at least two major people on the committee that are from Microsoft.
I am a fairly active linux contributor. I have patches all over the kernel tree. I also review drivers/staging code.
Most of the patches that I send are things that I cannot test because I don't have the hardware. Even though I'm careful, there are still a few times where I have introduced bugs. The most recent example was code like this "if (!attributes & 0x4000)". That has a precedence bug so the condition is always false. Unfortunately changing it to "if (!(attributes & 0x4000))" disabled certain graphics card. The correct thing was to delete the condition.
Breaking stuff is just a part of development, you try your best but don't let fear of breaking things stop you from applying patches.
Probably over 5% of the 10,000 patches in every new kernel are cleanups. We're always merging API changes and unlike Microsoft we don't care if it affects out of tree drivers. There isn't any subsystem where the owner says, "This code is stable now and I'm only accepting actual bug fixes."
The other thing that helps is the short release cycle. If something does break, it's easy to fix.
Some people find linux development frustrating. One developer told me, "Ever since XXX took over the YYY subsystem he has been constantly changing the API and re-writing my code. Does he ever sleep? I don't know how anything works any more."
It's hard on reviewers as well. I have reviewed literally over 3000 cleanup patches to the comedi subsystem. I have mornings when I feel lazy and it doesn't fill me with joy to see 40 new cleanup patches in my inbox. The process is expensive.
But I do feel a great deal of pride in the work.
It sounds like MS has become like most IT departments in the world; the department of NO.
Generally IT people are operating under a a system where they are brutally punished if things go wrong, are vaguely rewarded if they do what someone wants, and not rewarded for doing things that people don't understand (like simplifying the usage of VPNs). So these IT departments see any change requests as increasing the possibility of disaster and thus bad. This results in a combination of refusing to adapt to the company's needs as both dictated through employe requests and through changing technology. This is evidenced through many larger older organizations still running a bunch of SUN servers or a Novell network.
But it is often far more vicious where you have IT people actively reaching out into the company and telling them what technology they may use and how they might use it. One advantage of the iPhone over the Blackberry was that generally iPhones were impossible to ruin through "Corporate Policy" and BlackBerries could be completely neutered through an easy to use interface. But out of control IT people need not fear for long as horrible companies came along to give them the tools to mangle even the iPhones.
IT people might blah blah about corporate security and various data management laws but the simple fact is that if companies don't exist for the sake of their IT departments. IT is a tool that most companies use to achieve their core goal. Yet you have IT departments treating say the head of marketing of a $20 billion dollar company like an infant "for his own good". Where I find it interesting is when IT meets the President or the CEO. Often the president will say something like "I don't want to change my password every 30 days" The IT people don't dare pull the "corporate policy" card but resort to whining about the rational with the CEO concluding, "I'm going to change my password at the exact same frequency that I change the head of IT. So set things up accordingly."
Again this is not all because IT is filled with evil trolls but because their rewards are structured incorrectly. The best run companies that I have ever seen structured IT really well so that when some guy comes in with his Vic-20 and wanted to use it for presentations they either showed him how bad an idea it was or made it happen but then billed his department for the effort. Saying NO just wasn't something they were insented to do. The result was the more stupid the requests from various departments the more budget that went to IT. This way you don't cut ITs budget you told the various department heads to be less stupid with their money.
Back to Microsoft. It sound like MS has created a similar case of fiefdoms that have perverse incentives that are not aligned with the basic goals of the company. I know in the old days of MS they would hand out stock options like candy. This resulted in many people becoming insanely rich. Maybe they need to go back to that same structure. If a small department does something extraordinary they get some big bucks. This would have to be carefully managed as I can see a few superstar programmers doing the heroic only to watch their manager pull up in a new Porsche on Monday and for them to quit on Tuesday.
In contrast, employees of a company are doing whatever it takes to make a paycheck
That is totally wrong. Many programming employees at companies ALSO enjoy what they do. They are ALSO good programmers.
But as this article attests to, what they cannot do is influence code outside the group they are in, even if they have access to it. So the effect they can have, even if they are very good, is often reigned in a great deal beyond what it could be.
The reason Linux does so much better is because restraints are based on ability, not on arbitrary non-technical boundaries.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Instead of everyone getting upset because they have work to do while making adjustments to new changes, how about you just do your damn job and maybe things will get done faster, with better quality. It's not a war, it's software development. If you want to stay relevant, you will do everything in your power to understand this and become better at what you do. In the case you don't want a job, keep getting "pissed" every time changes come down the pike. Consumers don't care about your personal struggle with adapting to change. This isn't a daycare, it's business.
It has been said that the job of a good software manager is less about getting the developers motivated than it is about keeping them going while not de-motivating them. Geeks have a tendency to drive themselves, and often drive themselves harder than they can be driven by others. The challenge is less in getting them to work than in getting them to work on the right things.
I worked once in a company which practised Management By Intimidation, and swore afterwards that no amount of money would ever persuade me to work for another company like that ever again. Pushing phrases like "if you want to stay relevant", "do everything in your power", and "this isn't a daycare" will have me heading for the exit faster than you can scream "You're fired!".
Ultimately, I'm in the profession for 2 reasons. 1: I enjoy what I do. 2: I'm pretty good at it. I'm not really in it for the money. I could make a lot more doing other things in other places, but I like what I'm doing now and it suffices. In that, I think I'm a lot like most of the Linux developers. They have their own agendas, and while Linus may not be the ultimate diplomat, he's a leader, not a manager.
Microsoft, conversely, is a lot about driving the developers rather than persuading them, and if I was to be really cynical, I'd even suggest that their marketing-driven agendas passed on to low-cost developers has a lot to do with their current woes. The Linux developers are often unpaid, but there's never been a "Slaves of the Penguin" book to match "MicroSerfs" and the thought of Linus telling his minions that "if they want to stay relevant..." strikes me as outright comical.
My understanding is this can be turned off. It is less Windows and more Windows Defender:
"Windows 8, set for release on 26 October, automatically deletes entries in the HOSTS file for specific domains. Try, for example, to prevent attempts to access Facebook.com, Twitter.com or ad servers such as ad.doubleclick.net by rerouting them to 127.0.0.1 by adding entries to the HOSTS file and the relevant entries will soon disappear from the HOSTS file as if by magic, leaving nothing but an empty line."
This behavior is due to Windows Defender in Windows 8 thinking it has discovered malicious modification of the Hosts file. Windows Defender is enabled by default in Windows 8. Users who would like to continue using the Hosts file as a simple, albeit effective method of blocking certain sites, can do so by adding the Hosts file to Defender's exceptions list. Of course, that means that Defender will never be able to notice any actual malicious changes to the Hosts file.
Windows 8 seems to be rather prejudicial about which entries in the Hosts file Defender will automatically delete. It automatically deletes Twitter, Facebook, doubleclick and other ad sites but other domains such as "heise.de" it leaves intact.
www.h-online.com/security/news/i927.html
Doctors destroy health, lawyers destroy justice, universities destroy knowledge, religion destroys spirituality
one of the advantages Microsoft has is that they're paying people to do the boring parts. It's hard to get people to finish making open office stable and user friendly because all the glory is in adding new features. After the features are added and they work in 90% of the cases nobody does the dull work of making them work for that last 10%. Trouble is if you use it a lot you're gonna hit one of those last 10% cases sooner than later...
Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
When you can show me ONE distro, just one, that can pass "The Hairyfeet Challenge"* then you have something to brag about.
*.- For those that don't know "The Hairyfeet Challenge" simulates the typical 5 year cycle of your average PC, we take one random laptop and one random desktop out of the pile, we install ANY distro release from 5 years ago and we update it to current. Wanna guess what happens when you hold Linux up to just HALF the Windows lifecycle? it DIES, it DIES HARD, it shits all over its drivers and by the end you'll be lucky if even 30% of what was working at the start is 100% functional at the end.
Well I for one, are introducing the "Reverse Hairyfeet Challenge".
You do the same with Windows. But with one little specific detail: you do it from the point of view not of a corporate user, but a at-home end-user.
So you try surviving going all the way from Win98, all the way though WinME, and end up with Windows XP Home. See if you can keep you sanity going through this mess.
(I could have been even worse, I could have asked to start the challenge at Windows 3.11 and end-up at Vista, but I would probably get arrested for violating international laws against torture just for suggesting this).
And even if you managed to keep sanity you would probably not keep the hardware: at each major jump you'll end up noticing that your hardware is from a noname aisan manufacturer who since long went belly up and didn't bother writting drivers for the newer OS architecture. Requiring you to buy another piece of hardware from another manufacturer).
For the record, the laptop on which I am writing this is happily running opensuse for more than 2 years now, each update being done simply by live-updating to the newer version - while the distro is still running and used at the same time.
And 2 years ago, this laptop wasn't installed clean from scratch. I simply carried over the disk content from its predecessor. (Yup, try doing that with windows without entering a world of pain: you take a running Windows XP from one laptop, then yank out the disk, plug it into another laptop, and have it start. On linux, its mostly without problems. On Windows, your only hope is to clear huge part of the registry and configuration, to put it back into a "fristboot mode" where all the hardware is scanned again).
And I've got probably desktop carrying over the same installation for much longer. I think the jump from 32 to 64 bits was the last time I did a fresh install, then kept simply ugrading over.
"Sufficiently advanced satire is indistinguishable from reality." - [Tips: 1DrYakQDKCQ6y52z6QbnkxHXAocMZJE61o ]