Broken Windows Theory


Vista.  The term stirs the imagination to conceive of beautiful possibilities just around the corner.  And “just around the corner” is what Windows Vista has been, and has remained, for the past two years.  In this time, Vista has suffered a series of high-profile delays, including most recently the announcement that it would be delayed until 2007.  The largest software project in mankind’s history now threatens to also be the longest.

[I originally deleted the rest of this post of my own volition, without any pressure whatsoever from people within the company, because the discussion around it wasn’t constructive.  I’ve now restored the original content unedited.  More discussion on this topic here.  – Ed.]


Admittedly, this essay would be easier written for Slashdot, where taut lines divide the world crisply into black and white.  “Vista is a bloated piece of crap,” my furry little penguin would opine, “written by the bumbling serfs of an evil capitalistic megalomaniac.”  But that’d be dead wrong.  The truth is far more nuanced than that.  Deeper than that.  More subtle than that.


 


I managed developer teams in Windows for five years, and have only begun to reflect on the experience now that I have recently switched teams.  Through a series of conversations with other leaders that have similarly left The Collective, several root causes have emerged as lasting characterizations of what’s really wrong in The Empire.


 


Useless Trivia Sidebar:  Broken Windows Theory


 


The original broken windows theory, first coined by Wilson and Kelling, describes the purported phenomenon whereby an abandoned warehouse with no broken windows is mostly left alone, but as soon as one window is broken, it acts as an open invitation to passers-by that it’s open-season for rock-throwing.


 


This was generally accepted for many years as being true, but is recently coming under fire from different angles.  We won’t delve into those here, since we mostly commandeered the phrase because it sounded good, not because it actually has anything at all to do with our subject matter.


 


The Usual Suspects


 


Ask any developer in Windows why Vista is plagued by delays, and they’ll say that the code is way too complicated, and that the pace of coding has been tremendously slowed down by overbearing process.  These claims have already been covered in other popular literature.  A quick recap for those of you just joining the broadcast:



  • Windows code is too complicated.  It’s not the components themselves, it’s their interdependencies.  An architectural diagram of Windows would suggest there are more than 50 dependency layers (never mind that there also exist circular dependencies).  After working in Windows for five years, you understand only, say, two of them.  Add to this the fact that building Windows on a dual-proc dev box takes nearly 24 hours, and you’ll be slow enough to drive Miss Daisy.

  • Windows process has gone thermonuclear.  Imagine each little email you send asking someone else to fill out a spreadsheet, comment on a report, sign off on a decision — is a little neutron shooting about in space.  Your innocent-seeming little neutron now causes your heretofore mostly-harmless neighbors to release neutrons of their own.  Now imagine there are 9000 of you, all jammed into a tight little space called Redmond.  It’s Windows Gone Thermonuclear, a phenomenon by which process engenders further process, eventually becoming a self-sustaining buzz of fervent destructive activity.

 


Let’s see if, quantitatively, there’s any truth to the perception that the code velocity (net lines shipped per developer-year) of Windows has slowed, or is slow relative to the industry.  Vista is said to have over 50 million lines of code, whereas XP was said to have around 40 million.  There are about two thousand software developers in Windows today.  Assuming there are 5 years between when XP shipped and when Vista ships, those quick on the draw with calculators will discover that, on average, the typical Windows developer has produced one thousand new lines of shipped code per year during Vista.  Only a thousand lines a year.  (Yes, developers don’t just write new code, they also fix old code.  Yes, some of those Windows developers were partly busy shipping 64-bit XP.  Yes, many of them also worked on hotfixes.  Work with me here.)


 


Lest those of you who wrote 5,000 lines of code last weekend pass a kidney stone at the thought of Windows developers writing only a thousand lines of code a year, realize that the average software developer in the US only produces around (brace yourself) 6200 lines a year.  So Windows is in bad shape — but only by a constant, not by an order of magnitude.  And if it makes you feel any better, realize that the average US developer has fallen in KLOC productivity since 1999, when they produced about 9000 lines a year.  So Windows isn’t alone in this.  [KLOC data comes from “Worldwide IT Trends & Benchmark Report 2001”, produced by META Group (now acquired by Gartner)]


 


The oft-cited, oft-watercooler-discussed dual phenomenon of Windows code complexity and Windows process burden seem to have dramatically affected its overall code velocity.  But code can be simplified and re-architected (and is indeed being done so by a collection of veteran architects in Windows, none of whom, incidentally, look anything like Colonel Sanders).  Process can be streamlined where inefficient, eliminated where unnecessary.


 


But that’s not where it ends.  There are deeper causes of Windows’ propensity to slippage.




 


Cultured to Slip


 


Deep in the bowels of Windows, there remains the whiff of a bygone culture of belittlement and aggression.  Windows can be a scary place to tell the truth.


 


When a vice president in Windows asks you whether your team will ship on time, they might well have asked you whether they look fat in their new Armani suit.  The answer to the question is deeply meaningful to them.  It’s certainly true in some sense that they genuinely want to know.  But in a very important other sense, in a sense that you’ll come to regret night after night if you get it wrong, there’s really only one answer you can give.


 


After months of hearing of how a certain influential team in Windows was going to cause the Vista release to slip, I, full of abstract self-righteous misgivings as a stockholder, had at last the chance to speak with two of the team’s key managers, asking them how they could be so, please-excuse-the-term, I-don’t-mean-its-value-laden-connotation, ignorant as to proper estimation of software schedules.  Turns out they’re actually great project managers.  They knew months in advance that the schedule would never work.  So they told their VP.  And he, possibly influenced by one too many instances where engineering re-routes power to the warp core, thus completing the heretofore impossible six-hour task in a mere three, summarily sent the managers back to “figure out how to make it work.”  The managers re-estimated, nipped and tucked, liposuctioned, did everything short of a lobotomy — and still did not have a schedule that fit.  The VP was not pleased.  “You’re smart people.  Find a way!”  This went back and forth for weeks, whereupon the intrepid managers finally understood how to get past the dilemma.  They simply stopped telling the truth.  “Sure, everything fits.  We cut and cut, and here we are.  Vista by August or bust.  You got it, boss.”


 


Every once in a while, Truth still pipes up in meetings.  When this happens, more often than not, Truth is simply bent over an authoritative knee and soundly spanked into silence.


 


The Joy of Cooking


 


Bundled with a tendency towards truth-intolerance, Windows also sometimes struggles with poor organizational decision-making.  Good news is that the senior leaders already know this and have been taking active steps to change the situation.


 


There are too many cooks in the kitchen.  Too many vice presidents, in reporting structures too narrow.  When I was in Windows, I reported to Alec, who reported to Peter, to Bill, Rick, Will, Jim, Steve, and Bill.  Remember that there were two layers of people under me as well, making a total path depth of 11 people from Bill Gates down to any developer on my team.


 


This isn’t necessarily bad, except sometimes the cooks flash-mob one corner of the kitchen.  I once sat in a schedule review meeting with at least six VPs and ten general managers.  When that many people have a say, things get confusing.  Not to mention, since so many bosses are in the room, there are often negotiations between project managers prior to such meetings to make sure that no one ends up looking bad.  “Bob, I’m giving you a heads-up that I’m going to say that your team’s component, which we depend on, was late.”  “That’s fine, Sandy, but please be clear that the unforeseen delays were caused by a third party, not my team.”


 


Micromanagement, though not pervasive, is nevertheless evident.  Senior vice presidents sometimes review UI designs of individual features, a nod to Steve Jobs that would in better days have betokened a true honor but for its randomizing effects.  Give me a cathedral, give me a bazaar — really, either would be great.  Just not this middle world in which some decisions are made freely while others are made by edict, with no apparent logic separating each from the other but the seeming curiosity of someone in charge.


 


In general, Windows suffers from a proclivity for action control, not results control.  Instead of clearly stating desired outcomes, there’s a penchant for telling people exactly what steps they must take.  By doing so, we risk creating a generation of McDevs(For more on action control vs. results control, read Kenneth Merchant’s seminal work on the subject — all $150 of it, apparently).


 


 


Uncontrolled?  Or Uncontrollable?


 


We shouldn’t forget despite all this that Windows Vista remains the largest concerted software project in human history.  The types of software management issues being dealt with by Windows leaders are hard problems, problems that no other company has solved successfully.  The solutions to these challenges are certainly not trivial.


 


An interesting question, however, is whether or not Windows Vista ever had a chance to ship on time to begin with.  Is Vista merely uncontrolled?  Or is it fundamentally uncontrollable?  There is a critical difference.


 


It’s rumored that VPs in Windows were offered big bonuses contingent on shipping Vista by the much-publicized August 2006 date.  Chris Jones even declared in writing that he wouldn’t take a bonus if Vista slips past August.  If this is true, if folks like Brian Valentine held division-wide meetings where August 2006 was declared as the drop-dead ship date, if general managers were consistently told of the fiscal importance of hitting August, if everyone down to individual developers was told to sign on the dotted line to commit to the date, and to speak up if they had any doubts of hitting it — mind you, every last one of those things happened — and yet, and yet, the August date was slipped, one has to wonder whether it was merely illusory, given the collective failure of such unified human will, that Vista was ever controllable in the first place.


 


Are Vista-scale software projects essentially uncontrollable by nature?  Or has Microsoft been beset by one too many broken windows?  Talk amongst yourselves.



Comments (236)

  1. Wesley Parish says:

    Reminds me of some of the mutterings about Win2K.  That then was one of the biggest software projects to be shipped – oops, slipped.  And before then it was OS/2 …

    The chief difference between the OS/2 slippage and the WinVista slippage is that Microsoft is no longer the underdog compared with the big bad IBM.  It’s the big bad iBM now.  Even with the anti-trust baggage, which IBM also experienced.

    As far as the process going thermonuclear, don’t you think that’s already well-known?  I mean, I take it you’ve read "The Mythical Man-Month"?  I keep my copy of it within reach.

    And in relation to Microsoft being a scary place to tell the truth, an anon commentor’s threat to beat up Mini if he ever outed himself, for having the audacity to tell the truth about Microsoft not being as rosy as the Ministry of Truth would have everyone believe; and the comment that there were management ready and willing to take him to court for being a whistle-blower on this dissatisfaction …  Mini appears to have played the thankless task of Hamlet.

    I’m starting to wonder if the problem with Microsoft and Windows Vista isn’t the oft-times rabid attempt to own all of the computer space – chair throwing as an Olympic sport.  When everything is to be co-ordinated from Redmond, there is the substantial risk of information overload; when Windows is to incorporate as much as is conceivably possible, then the communications channels will become clogged.  

    How the Unix-sphere manages is by separating bits and pieces from each other, and using well-defined interfaces to communicate.  The Free and Open Source Software communities have taken that and run with it.  Linus Torvalds doesn’t care about the X Window System – he’s the linux kernel benevolent dictator.  It’s up to the X Window people to care about the X Window System.  Ditto for the applications, etc.

    I don’t expect the Windows Vista team/s will ever manage to get around this.

  2. Lawrence D'Oliveiro says:

    Vista the "largest concerted software project in human history"? I’m not so sure. I’ve seen estimates in times past of total KLOC in Debian, which put it way larger than contemporaneous versions of Windows. I’m sure there are Linux distros already shipping that are bigger than Vista is going to be.

  3. Crow says:

    Tards, lines of code is NOT a signifier of quality!

  4. That was an interesting article. Thank you.

    To Lawrence, you can’t compare Debian to Vista. Debian itself does a tiny fraction of the programming involved, what they mostly do is package other people’s programs. That isn’t to say what Debian does isn’t both hard and useful, but it cannot be compared to writing Vista (or even the Linux Kernel for that matter).

  5. Rich Jones says:

    I don’t know why they don’t just buy Apple Mac OS X instead of going to all this trouble to clone it.

  6. "We shouldn’t forget despite all this that Windows Vista remains the largest concerted software project in human history."

    Makes me wonder if it may have been too big, perhaps? After all, size of software does have a limit. Things can’t get too complex simply because the more people who work on a single project, the harder it is to combine their work.

    I am really looking forward to it, however. I’m using Windows Vista Beta 2 and must say that I am very pleased with what you’ve cooked up. I just hope it doesn’t turn out to be too incomplete (code-wise). Waiting for Vista is fine for me. I don’t mind at all because I’m not gonna drool over it until it’s public.

  7. Ted Nicols says:

    Sorry but that’s nonsense !

    You have thousands of programmers working on silly and useless projects instead helping MS to release primary products like Windows and Office. Who care about .NET, managed code and all your attempts to build parts of OS using all that crap ? What do you think now about WinFS and the rest abandoned Vista parts ?

    I never liked people who repeated saying "MS sucks", but I started to think they’re right. Stay focused guys, the world will not wait forever your "big plans", stay focused…

  8. Lars Clausen says:

    Could you go a little easier on the bold, perhaps?  It makes me tend to just skip from one bold part to the next, instead of actually reading the text and grasping its meaning.

  9. Girish says:

    Same Story in all companies? Esp about the drop dead ship dates…

  10. chocolatei says:

    I wrote the largest software project in history.  Here’s the source:

    void main(void) {

      float a;

      a=1;

      a=2;

      a=3;

      a=4;



    It goes on like this for a while…

  11. AndyB says:

    "It’s rumored that VPs in Windows were offered big bonuses contingent on shipping Vista by the much-publicized August 2006 date"

    there’s one problem, should have given those bonuses to the devs at the bottom of the ladder, lol.

  12. phil wilshire says:

    Hmmm

    Vista … 24 hours to build a system on a dual proc box.

    My embedded linux systems take 24 minutes all in ( kernel plus user apps )  on a battery powered laptop.

    Ok its not apples to apples ( sorry steve ) but the end product for both  is a computer with a sophisticated kernel and a splatter of user apps. We do not  have all the graphics on the embedded side but it is still interesting to  see what the Gorrilla has to live with.

    On a more serious note if the core kernel gets too complicated you go into melt down. This looks to be happening here.

    Those 9000 developers could sure produce a really nice desktops for a BSD or GNU/Linux system instead.

    But wait… we already have them.

    Grin ;-))

  13. Richard Moore says:

    "Rich Jones said:

    I don’t know why they don’t just buy Apple Mac OS X instead of going to all this trouble to clone it.

    June 15, 2006 8:12 AM "

    Because they wouldnt be able to buy it, now way would apple sell it to microsoft.

  14. Neal Tisdale says:

    In your lines of code analysis, consider that much of the lines of code today are at a higher level than lines of code 10,20,30 years past, reflecting a much higher investment in requirements analysis and testing (time…).

    Also consider the complexity of the name space (variable structures, function/method structures) rises in a non linear fashion with the size of the space.  OO hierarchies and classes help this, but operating systems performance and system level requirements shun OO approaches – so you are essentially trying to write a massive application without the mitigating technologies which help the rest of the world write similarly sized applications.

    My company writes massive, millions of lines of code applicaitons, but we can utilize the OO mitigating technologies to allow us to get there – – we have developed quite a bit of expertise to overcome "performance traps" in the way OO can execute.

    Leadership and process are two large items which do not scale – you need entirely different approaches for something on the size of Vista.  

    "You don’t build the hoover dam by stacking 2000 honda home generators end to end" – things are tough to scale.  (Code bases, organizations, processes).  Its a specialty all itself.  Hats off to MSFT for trying.  

  15. homer hotcakes says:

    Back in the 80’s I read a military analysis of the difference between the US military and the Egyptian military that the US advisor/author was training. He noted that in the US military Sargeants efffectively had the equivalent decision making power of a Colonel in the Egyptian military. The reason was that in the US military a Sargeant was given an objective but was given a lot of leeway about how he acheived it, while in the Egyptian military lower ranking officers were conditioned against making even the smallest decisions for themselves.  To use your lanquage The Egyptian military had a proclivity for action control, not results control. That is the crucial point in your description of the Vista development effort.  If you are not managing for results you are not managing.

  16. Marco says:

    I think it will be a Apple OS X clone, that needs a super computer to run it. Microsoft must buy RedHat and make their own Linux distro, and help xorg foundation and create a fantastic UI.

    "Vista is just for eyes, not for brain".

  17. M Nova says:

    I have been developing software professionally for 13 years.  I have worked for several companies big and small.  Bad news dude!  Microsoft is just like everyone else.  With one exception, this post could have been about any company and any project that I have worked on  — just change the name.  

  18. Ivan Hernandez says:

    Ted, but in my opinion (as linux user) .NET is really important. Windows is a best on desktop and a high player on servers because it is easier for a programmer to start programming on windows than on any other plataform.

    Yes, python on linux does better job than .net, maybe and java is wide available and tested, and you can micro optimize your headeaching C and C++ code, but it seems to be that .NET is a best move for the microsoft developenment world, and what would be Microsoft without the independent developers? those ones that made Winamp, the old NetScape, WordPerfect, ZoneAlarm, and all that? Sure, some day Microsoft will bring it’s home breed solution , like media player, ms word, internet explorer and it’s windows firewall, and that;s really ok, but they still need developers interested on developing for windows, to have the next killer app running on they OS.

  19. John says:

    And does the Colective even consider the impact on the end user community?  From my perspective, we don’t really need a super bloated buggy, security ridden mess of code thrown over the Redmond Ramparts.  For it to be acceptable, we will have to wait until at least SP2.

  20. AtriumXP says:

    I think the nail was hit squarely on the head – there’s too many Chefs in the kitchen and the line cooks can’t fill the orders fast enough.  

    As posted by "Wesley Parish" above, you can’t honestly tell me that you think the Unix organization is doing anything spectacularly different *organizationally* from what the Windows Vista project is using…  to the effect of chunking out sections by teams that work independently of each other at least to the exclusion of other, unrelated functionality.  True enough, the very idea of chunking out a project like an Operating System is a bit of a fallacy, since so many things really are interdependent.

    The problem is really just that Microsoft (and they’re not alone in this…) continues to shoot themselves in the foot by promising scheduled release dates before they even have a valid, tested release candidate ready.  Add to this the fact they have existing support contracts out for their older versions, and security patches that need to be worked in, and all their anti-piracy/control issues (WGA) …  The list of stumbling blocks and delay factors _even outside of the Vista project itself_ really goes on and on, let alone the project’s own scope.  When you have a mega-multibillion dollar company get egg on its face for missing a deadline (and by more than a year), "it" rolls downhill from the head honcho all the way down to the janitorial staff.

    Simply put, they should consider just supporting their existing products while quietly developing the new stuff, and just roll with "We’re working on the next version, and it will be ready when it is ready".

  21. Mike South says:

    Re the Vista/Debian question, I just want to point out that we might make a distinction between "largest software project ever" and "largest software project ever that by its design can not be shipped in many little pieces with each improved upon fairly independently".  Vista is like Linux with bash, all the utilities,  and X Window inextricably in the kernel.  So, you might consider it an accomplishment to get such a huge project out the door, or you might consider it a failure to put it together in such a way that it has to go out the door in one piece.  And, to be fair, one also has to admit that it would probably require re-engineering both their entire product and their entire market for MS to be able to distribute things piecemeal.

  22. Justin R says:

    Ted, I can’t imagine, from the points in your post, that you are either actively involved in software development or have not been involved for a great amount of time.  Simply taking programmers away from ‘all that crap’ will not make Office or Vista ship any sooner nor will it make it any better.  At this point in a project this large, adding more workers will only serve to further complicate the project as current Office and Vista developers will have to divert their own time to bring the others up to speed.

    Additionally, although I can only speak for myself, I would imagine the countless others who work with .Net on a daily basis in their professional lives would hardly call it a ‘silly or useless project’.  .Net is one of the most successful development platforms available and thousands of developers rely on it to provide powerful software solutions to their respective clients.

    You are right, thought, and the world will definitely not wait forever for Microsoft’s big plans.  But, last time I checked, nobody was saying they had to.  There are several viable alternatives to Microsoft Windows (OSX, countless Linux distros), so if XP is no longer satisfying your needs, go with something different.  My apologies if I’m missing it, but I’ve yet to see the New York Times or any other respected newspaper declaring that the collective intelligence of the world is in atrophy by the continuous delays of Vista.

    Sure, some people will always be saying ‘MS sucks’ without real arguments to back it up while the rest of us look at them as either elitist or ignorant and uninformed.  If you want to be part of that crowd, go ahead.  We won’t miss you.

  23. Tsunami says:

    "Rich Jones said:

    I don’t know why they don’t just buy Apple Mac OS X instead of going to all this trouble to clone it."

    If we wanted a version of OSx, then we would have bought one. However, we wanted something that more than a few thousand people were actually going to use….

  24. Treefrog says:

    Interesting – just been through a similar kind of exercise (but a bit earlier in the process) for a major system release for a mobile telecoms system.

    Everyone had signed up to a release date, everyone was on board. There were a few small risks, believed to be  well understood and quantified.

    Then someone did a Monte-Carlo analysis on the project schedule. Turns out the date that everyone had signed up to had only a 5% expectation of being met…….

    Makes you wonder, doesn’t it!

  25. Keith Patrick says:

    How much effort is being put towards code reductions?  40 million lines of code is a LOT of code, and to increase that by 25% by the 6th generation of the OS, it just seems like changes are largely additive without much regard towards trimming/refining/removing earlier chunks of code.  It’s like the US budget that never goes down, instead hoping for the other metric (revenue) catches up, but at a scale this large, there *has* to be areas in that code that can lead to significant code reduction, which in turn leads to less code paths and (hopefully) less dependencies.

  26. George Bray says:

    Such enormous complexity will beget eternal fragility.

    It’s good for Microsoft they’ve implemented a revenue stream that’s based on continual, required security and quality improvements. It’s in their best interests to ship a buggy Vista, and nobody has any doubt this next version of the same unreliable computing infrastructure will be foisted upon the world to deal with for the next decade.

  27. Logo says:

    To Ted Nicols, Windows and Office is but one part of Microsoft it is not simply a metter of pulling people off all other projects and asking them to work on Vista so that it can ship on time.

    There still needs to be operational work done, as mentioned patches for current software. I challange you to actaully go and take a loot at the amount of products that Microsoft "manufactures". It is a huge number of software that all need to be kept current and up to date, security checked and flaws patched.

  28. Bitswapper says:

    The other shadow hanging over vista is that MS has no actual track record for building an operating system from the ground up in house, let alone a modern one.  Up to this point, they’ve only maintained and extended somebody else’s code, not really designed and built their own operating system.

    Perhaps Vista’s biggest problem is it has no Dave Culter to tell Bill and Steve (and whoever else) to get lost when they come up with some new kind of drivel to put into Vista.

  29. Will says:

    Ohhhhh the corporate world is SOOO hard… wahhh wahhh wahhh! I can’t believe politics and people get in the way of actual programming! wahhh!!!!

  30. Jeff Parker says:

    An LOL to John, you know, I wonder if redmond has ever heard those sayings which really is a fortune 500 company standard. Back in NT 4.0 erra you did not install anything MS be it office or an OS on normal usrs destops until service pack 3. You knew it was coming you just had to wait for it. Now I will admit they have narrows the gap some Desktops we still wait till service pack 2, server 2003 we finally moved to after service pack 1. Vista, who knows maybe Service pack 1 but it will definately not be right away. I am not saying this to be negative either these are some standard rules of thumb out in the world we follow.

    Now why do we follow these things. Well, I think even the fortune 500 companies are hip deep in policy and management approval and all the things that just chew up developers time. It is definately not like the old days where I could crank out code and sit there and just let the creative juices flow. For example I had a request from a customer. This would have taken me 5 minutes to actually do. It ended up taking me 6 hours to fill out all the paper work and get all the aprovals before I could actually develop for 5 minutes. Then of course I had to test it out. No Biggy, I fully support testing. Then it took me 30 days to get all the final approvals to put this code into production. Some of the things developers must go through now days it really kind of a waste of time as the managment just slows it down.

  31. Vic says:

    Vista will probably be the rock MSFT needs to start catching water and sinking. The only things keeping them floating are the contracts with the big system manufacturers like Dell, IBM, HP and so on that desperately recomand windows to their users. I’m sure half of the people using a windows box don’t need all the graphical enhancements in Vista. What does a 60 year old grandma need translucent window previews for when she can only manage working with one window.

    You might say she can switch to the standard interface, but can she manage doing that. What do the words Graphical User Interface mean to her? NOTHING ABSOLUTELY NOTHING. She just wants to read her e-mails probably through a web based application like GMail, Yahoo! mail, AOL, MSN…. This whole business of stuffing useless software down the customer’s throat is the wrong way to go. Windows has got FAT verry verry FAT. It’s incredible that only the operating system requires 1.5 GB of HDD space. I’m sure a lot of code in Windows is never executed. Why should it keep my HDD full of stuff I will not ever use.

    Give the user what he needs. That’s the chalenge!

  32. Ganiman says:

    You are your bold words aren’t impressing or convincing anyone.  Vista is not the largest software project known to mankind – get over yourself.  Lines of code is probably the worst metric you can use.  If I can write software using 1000 lines of code, and you write software that performs the same function and looks identicle, but it took you 5000 lines of code, what code do you think is more elegant?  What code would you think is easier to maintain?  I think there are some words missing from this blog; lamen terms – "bloated" and "crap" are really the words that should be put in bold all over this article.

  33. Vic says:

    Vista will probably be the rock MSFT needs to start catching water and sinking. The only things keeping them floating are the contracts with the big system manufacturers like Dell, IBM, HP and so on that desperately recomand windows to their users. I’m sure half of the people using a windows box don’t need all the graphical enhancements in Vista. What does a 60 year old grandma need translucent window previews for when she can only manage working with one window.

    You might say she can switch to the standard interface, but can she manage doing that. What do the words Graphical User Interface mean to her? NOTHING ABSOLUTELY NOTHING. She just wants to read her e-mails probably through a web based application like GMail, Yahoo! mail, AOL, MSN…. This whole business of stuffing useless software down the customer’s throat is the wrong way to go. Windows has got FAT verry verry FAT. It’s incredible that only the operating system requires 1.5 GB of HDD space. I’m sure a lot of code in Windows is never executed. Why should it keep my HDD full of stuff I will not ever use.

    Give the user what he needs. That’s the chalenge!

  34. The comparison between Debian and Vista is kind of the point: debian is a package of lots of small, relatively simple, individual components with understood interdependencies.  Vista, by the sound of it, is lots of large, complex components with badly understood dependencies.  

    If you take all the Debian code I have no idea how it would compare to vista.  but they manage to ship major releases without the massive management overhead that windows appears to have – which suggests that it’s not the size of the code but the processes and structures that cause the bottlenecks.

  35. Diggy says:

    I believe the fundamental problem is that Microsoft wants Windows to do it all, and from version to version, keeps adding "functionality" best left to add-on programs.  This is an "operating system" we’re talking about here, the framework upon which computer prorams run and operate.  Adding, neigh deeply integrating various tools, applets, eye candy, etc., does make Windows unecessarily bloated and complex, and helps stoke the thermonuclear Windows process.  Microsoft needs to apply the KISS priciple here.

  36. MS Reject says:

    Ivan,

    You said "you can micro optimize your headeaching C and C++ code, but it seems to be that .NET is a best move for the microsoft developenment world".

    I don’t disagree with you, in principle. But I think .NET is far, far too slow for use in an OS.

    I must disagree with you in fact. I have seen no evidence that MS actually uses C++. Their compiler support of C++ has always been just horrible. VC++ Express is the first decent C++ compiler they have _ever_ had. From what I can tell, the OS is still written in C – plain ‘ole C – with tons upon tons of complicated COM code.

    MS is huge a behemoth that can’t escape their own groupthink. They have so much time trying to convince the world that their tools were the best that they can’t admit to themselves that they have gone off course. They just don’t have the ability to admit that it was a bad idea, come up with a new idea for the future, and just cut their losses. They will go down with the ship – and the MS ship is sinking fast.

  37. Bold says:

    Have you ever considered *not* typing every other word bold?

  38. Towner says:

    Interesting article. A few thoguhts. I am not too suprised about most of it. Over managed software, unrealistic schedules. it all sounds a bit familiar for any major software project. Just look at the mess the UK NHS IT project is in now.

    I suppose what really stands out is that  a team manager will openly admit that the components interfaces are bloated, over complicated and hard to link together. Is this almost an admission that in many ways the linux zealots are correct in that windows is a behemoth which has been continuously modified and ‘hacked’ into the form it assumes today?

    It seems Phillip has admitted that the more modular and simpler interface philosophy a lot of FOSS projects try to adopt as good practice is indeed where Windows is currently failing.

    Like many I have watched pretty much all of the innovative features drop from Vista’s release. Even Aero could be quickly surpassed by the new window managers such as XGL (http://www.novell.com/linux/xglrelease/) and the future alternative version to be merged into the X-Windows framework. On top of this we have a lot of the HD-DRM which only the movie studios really want and the usual scary system requirements.

    Although Windows will more than likely still be a a good desktop operating system and will be heavily marketed/bundled and adopted by the home user. Is there really anything there to encourage business adoption?

  39. LongestPrefix says:

    There are lots of advantages to keeping it small. It looks like the Windows Vista project is suffering many of the same maladies documented in OS/360 in Brooks’ The Mythical Man Month. It’s no real surprise that having lots of minds involved in the design of a project requires lots of communication and coordination to make it work.

    Software really is tough. Large software is much tougher. As the "largest concerted project" ever, Windows Vista is pushing the limits of human capabilitity for coordination and communication. Each new module, and its attendant interfaces, adds new communication.<p>

    As communication increases, total overhead increases. In some cases, it increases in a combinatorial way. If we estimate the "efficiency" of a component as the value-it-brings (in terms of work saved elsewhere in the code) divided by the ( development-time + communication-overhead ), you always want this efficiency to be well over 1.<p>

    Is it less than 1 already? If so, can you really ever complete a project this way?<p>

  40. Fluffy says:

    Another poster mentioned the golden apple.  To summarize both the article and the poster: the dependencies are killing you now, have killed you in the past, and will continue to kill you in the future.

    Putting so many hooks in every conceivable place makes it -very- hard to understand, write, and debug.  It also makes it -easier- for malware authors to poke holes in the system.  Confining operations to a few, well-defined interfaces means you can tightly control the information that passes.

    But that does mean everyone will be on equal footing, and Microsoft products might lose a little advantage over third-party software, at least for the documented (and independently-discovered) API.

  41. Chris Parker says:

    Are you sure that you work at Microsoft and not down the hall from me?

  42. Mike Swaim says:

     Remember Cairo? If I remember correctly, some of the stuff that was pulled (the new filesystem) was originally supposed to be in Cairo. I suspect that someone was overly ambitious on a number of features.

     There’s also the problem of architecture changes. Video was originally in user space for system reliability. Then it got moved to the kernel for performance. Now, it’s being moved back out of the kernel. Also, a bunch of stuff that was written in .net in earlier versions of Vista has been rewritten in C++. Those changes can’t be good for trying to make a ship date.

  43. K.J. says:

    I agree with everyone that says lines of codes don’t mean jack crap.  I can easly bang out several hundred lines of code in a single day, mindlessly hammering on the keyboard until I come up with something that works, but in the end if I would of sat there for the first 4 hours instead of coding I could have solved it in about 30 lines.  Hopefully 1000 lines of code a year means we are looking at a much more efficient, much less bloated windows.  Here’s to the dev team, I’m sure it will be worth the wait.

  44. Mike says:

    Nice blog entry …

    At the end of the day the only thing that really matters is that Vista contributes to the financial success of the company. No matter how difficult it was in the making, it HAS to be accepted by the greater community or everything else becomes irrelevant pretty quickly.

  45. Fluffy says:

    Someone else made a comment about business adoption of Windows.  That is an area I see as a failing of newer versions of Windows as well.

    I really liked Windows 2000 — I wiped a two-day old laptop which had XP installed so that I could put 2000 on it.  To me, Windows 2000 is more of a "business and professional" operating system, and XP (even the "Professional" version) is more of an "entertainment and multimedia" operating system, only truly suitable to the home user.  

    This also relates to the "modular interfaces" comments from several people.  Separate out the -applications- from the -operating system- a little.  Then release two products for end-users: business-class and home-user-class.  

    And allow the -user- to have better control of what gets installed.  Maybe the home users need their hands held, but we in corporate IT decide what we want on our organization’s computers, not the users.  Give us some choices, instead of assuming we want to goof off all day with fancy multimedia applications and eye-candy.

  46. Tonetheman says:

    I really doubt the part about Vista being the largest software project.

    Most developers who live in a corporate world will read this post and laugh. I know I did. It is nice to know that even Microsoft suffers the same fate as everyone else.

    I do think that with as much money as Microsoft has, you are in a good position to try to solve the problem. I am being too kind though I think. In the end it is about the money and that translates to impossible ship dates… just like every other company who develops software in the world.

    I do think that there are too many people working on the OS though. You could get a lot done with half as many  people and probably a 3rd as many managers. The process is indeed a problem when you have that many people (I know this problem intimately).

    It is interesting to think that Windows suffers from 3 types of bloat: Useless Stupid Features that do not belong in the OS bloat, lines of code bloat (a child of the first bloat) and managerial bloat (nothing at all to do with either of the first two bloats).

  47. Beanard says:

    Well I am not too sure what to say, given people have said enough. But still I am waiting for my shipment from Redmond for this Vista Beta 2. I am not too keen on WIndows, after all my good and bad experiences within past eleven years. Windows are good and an excellent effort from MS for HOME users who wants to use there computer for entertainment propose. So I just want to experince the look and feel in Vista and other functions.

  48. Jacob Jones says:

    "Inch by inch, life’s a sinch.  Yard by yard, it’s very hard."

    Perhaps M$’s insistance on everything getting bundled / tied directly into the bowels of the OS is already plaguing them?  I admit that I haven’t looked into how Windows is architected, but it seems to me that most of these interdependancies shouldn’t be truly necessary. . . unless M$ is trying to make sure it’s anti-virus and pay-for-update franchises will be rolling in $$$.

  49. Freddie says:

    Good post.

    Regarding your "broken windows" analogy, Microsoft’s Windows is definitely broken!  It just so happens that their products are in use by nearly everyone involved with computing, so it’s easier to notice when their ship is taking on water.  

    It seems to me Vista will end up having a reputation worse than MS Me when it’s all said and done.  Me ’07 anyone?  Or will it be Me ’08?  A big step backwards in all probability, just like Me was to Win98.  Almost none of the original functionality promised in Vista will actually be in the code released initially, yet the release date slips and slips.  

    I guess it just goes to show that when you develop a product soley to make the most amount of money possible, eventually your customers will notice that they’re getting overcharged for things they really don’t need while core functionality, like security, is lacking or absent.  

    Apple and the open source community are hot on the heals of Microsoft while Microsoft can barely stand up straight, let alone pick up their pace.  Tell the programmers to add another pop-up window!

    Apple’s OS X was a much better product for the average consumer two years ago than Vista will ever be in it’s lifecycle.  Linux and open source will be offering substantially better products for the average user by the end of Vista’s lifecycle.  Eventually the population en masse will wake up and realize there are much better products on the market.

    Oh, well.  

    Bill, you just can’t strongarm and rob everyone and still expect them to like you and buy your merchandise.

  50. RetiredOldCoot says:

    Based on my observation of Microsoft over the years, having used its products, having competed against it, having read your assesment of Why Vista is Late, I’d say you got somethings right, somethings wrong and missed some more. I’d like to address some of the things you missed.

    First is the complete absense of business ethics, as evidenced by the dollar value of settlements and judgements against Microsoft. How does this affect the ship date? I suppose every employee recognizes, at least unconsciously if not openly, that his employer will screw him as well as competitors to win at all costs. I would further imagine that this weight adversely affects productivity by making him practice defensive measures to protect his job, be a YesMan and to stay out of the way of thrown chairs. From those I know currently working at MS, all have "sold their souls" to the Beast of Redmond. All would rather be somewhere else, doing something else, but the market won’t support it right now, so they sold out. They have to make a living.

    Read about Bill Gates, Steve Balmer in Stout, "The Sociopath Next Door". That’s what got Windows into trouble.

    Next is that Windows has achieved the Bathtub Effect. That is: the level of complexity of the product, the level of coupling of components in particular has gotten to the point that nobody can understand enough of it to be able to work on it safely. Safely is defined as being able to change it without breaking it.

    Windows achieved its level of complexity be going on a huge API grab in its early years. Every week you’d see some new announcement from MS for an API to do this, that or the other thing. Shortly thereafter, you’d see rants and raves from prospective users of those APIs often saying that the API sucks because … Often they were right. I can also imagine, and I believe others will attest, that the implementation of those APIs was undertaken without regard to security, usability, or any number of other factors influencing its long term stability. The job was to do the API Landgrab first.

    Decisions like making Internet Explorer part of the operating system itself were done, I would imagine, as part of the Kill Netscape strategy. Without thinking through, or maybe it was thought through and the risk taken anyway, integrating IE into the OS caused almost complete failure of security to Windows in its entirety. I can only imagine the herculean effort required to extract IE from the OS. … imagine! A web browser as a critical component of an operating system, complete with unrestrained memory access to everything in the box! … what were they thinking?

    Finally, ASP. If IE were not enough on its own, ASP was the straw that broke the camel’s back. By giving the BadActors of the world a tool guaranteed to cause remote scripting compromises (remember, IE is part of the OS withe carte blanche to write whereever it wants) MS sealed its fate. Windows is unmaintainable, unsustainable, unrecoverable. It’s history.

    The ultimate root cause of Why Vista is Late is Greed. Microsoft is truly a world class phenomenon. From nothing to one of the biggest ($) companies in the world in a little over 20 years. Would I work there? Not on a bet. Would I buy its products? Not on a bet. Will I cheer when it falls? You bet.

  51. MicroStiff says:

    Eleven (11) layers to get to Bill !  There’s your problem, mates.  Eleven butt kissing, facade-managers passing on "their interpretation" of the mission.

    I am sure you remember the story about 11 people in a circle; one starts a story and each member retells it to the next guy.  Then, they compare the story of #11 to the story of #1.  Results:  totally different, time-after-time.

    Eleven layers to Bill !  Yikes!  How can anything get done?  Then, of course, there’s the other problem:  What will Bill DO with the problem.  I submit to you THAT is a problem in and of itself.  He built this mess, it’s time to tear it down.  A perfect time…to tear it down.

    Ask yourself why the coming of Ray Ozzie, white robe on donkey through the Gates of MSFT was greeted with palm leaves?  Why all eleven (11) layers defer to the alpha-dog-food-eater Ray Ozzie, tails between their legs, snouts low to the ground.  Because they need leadership!  They are scared!  They don’t know what to do.  Hey-zanna, Ho-zanna, Zanna, Zanna…tell us what to do!

    My advice:  Ray, restructure the org and let your brother do the online stuff.  And do it…NOW!

  52. MicroStiff says:

    Eleven (11) layers to get to Bill !  There’s your problem, mates.  Eleven butt kissing, facade-managers passing on "their interpretation" of the mission.

    I am sure you remember the story about 11 people in a circle; one starts a story and each member retells it to the next guy.  Then, they compare the story of #11 to the story of #1.  Results:  totally different, time-after-time.

    Eleven layers to Bill !  Yikes!  How can anything get done?  Then, of course, there’s the other problem:  What will Bill DO with the problem.  I submit to you THAT is a problem in and of itself.  He built this mess, it’s time to tear it down.  A perfect time…to tear it down.

    Ask yourself why the coming of Ray Ozzie, white robe on donkey through the Gates of MSFT was greeted with palm leaves?  Why all eleven (11) layers defer to the alpha-dog-food-eater Ray Ozzie, tails between their legs, snouts low to the ground.  Because they need leadership!  They are scared!  They don’t know what to do.  Hey-zanna, Ho-zanna, Zanna, Zanna…tell us what to do!

    My advice:  Ray, restructure the org and let your brother do the online stuff.  And do it…NOW!

  53. furry little penguin says:

    Vista is a bloated piece of crap written by the bumbling serfs of an evil capitalistic megalomaniac.

    hehe, someone had to say it.

    but seriously, this slashdotter is looking forward to Vista; regardless of its release date.

  54. Jeff says:

    I *do* think it’s worth comparing Debian and Vista.

    I think that there are a few crucial differences:

    – Dependencies in Debian are minimised, and this means that

    – Integration is minimised too.

    – Decision making is independent.

    MS software is often very well integrated, but the converse is that there are huge dependency issues. When one bit breaks or is late, there’s a huge knock-on.  But you can trust that the interface used by one program is similar to another, and that the configuration uses the same mechanisms. Debian isn’t like that.

    Debian brings together lots of bits that are being worked on independently. One developer group doesn’t really take much notice of what another is doing, and worry about the bits that are in common. Generally the areas where things overlap and clash are fixed in a later iterative cycle. A good example of this is the ifup/down co-ordination mechanism. It’s clear that Vista isn’t being developed iteratively. And the dependencies lead to shared decision taking in the name of a more integrated, smoother final experience.

  55. Adam Jorgensen says:

    I thought Nethack was "largest concerted software project in human history".

    Erm, wait, sorry, it’s the longest 🙁

    A mildly interesting blog entry although one that is amusingly defensive in its tone…

  56. If it is late says:

    If it’s late, it’s not on time.  What’s ever on time?  You?  No, you’re always late.

  57. Chris Boss says:

    It is interesting to see the direction that Windows is taking. It gets more and more complicated as time passes. My comments are directed to Microsoft (if they are listening):

    I am a PowerBasic programmer (see: http://www.powerbasic.com) . To use PowerBasic I has to learn the Windows API directly (since PB didn’t support higher level commands). It took me a few years to finally grasp how the API works, but I finally got it.  

    My first impression of the API is that it was way too complex and not geared toward fast and easy development. I wasted time just double checking the API docs to make sure I made every call correctly. It is amazing that Windows is touted as easy to use for end users, but it becomes more and more complex for developers.

    My first task was to develop a much easier way to program the API. This personal need eventually turned into a commercial product. I developed my own GUI engine which would act as a middle man between my software and the Windows API (aka. a DLL). In writing a higher level GUI engine I found something very interesting. The size of the GUI engine was amazingly small (compared to the over all size of Windows). Whereas I often see single OCX components between 500 KB to 1 meg in size, my GUI engine was only about 180 KB in size (version 1.0). Now in the 4th generation, my GUI engine is about 500 KB in size and it supports nearly all of the standard and common controls (very advanced features), has built in custom controls (advanced canvas control, shape control, properties list control, files list control), has an ownerdraw engine, custom draw engine, drag and drop engine (built your own visual designer with it), print engine, graphic engine, sprites (with alphablending) and much much more.

    My point is that I did this all within 500 KB (1/2 a meg). No OCX’s needed !

    I am a sole programmer who has a home based business (self taight too). My GUI engine is about 30,000 lines of code (all written by me).

    With all of the resources available to Micrsosoft, it is amazing that Windows has become so big (PowerBasic programmers often use the word bloated) and so overly complex. I can build Windows complex applications that fit on a floppy disk. Microsoft can’t fit its new operating system even on a CD (likely must be a DVD).

    In personal reflection I have wondered why ?

    Without being critical, I have found some possibilities. One is that Windows is a team project. Not that teams can’t build good software, but team development likely adds complexity to a project. In the "old days" a lot of software was developed by a single programmer. Things have changed ! Now software is developed by huge teams, each one writing just a small piece of the pie. Also programming has become overly complex. In a so called effort to make thngs easier (COM, DCOM, ActiveX, .NET), things actually have become more complex and bloated.  It is probably too late for Vista, but Microsoft may want to rethink its software development style. The operating system is the core of all software. If the operating system can’t be made simple for programmers, then what hope is there that user software will be any better.  As a BASIC programmer, I have always appreciated the old adage of "keep it simple". Just the fact that Windows is written in C, rather than a more readable language says something.  C has no real advantages any more.  Maybe "how software" is written is something Microsoft should reconsider.  

    I do look forward to Vista (have no choice really), but I would like to see some real improvements in how software is actually written.  Much of the power of new computers is lost, because the software is so complex (and bloated). When I first started developing my GUI engine (about six years ago), I purposely used a Pentium 133 mhz PC to develop (and test) it, to make sure it ran fast on a slow system. If it ran well on an older (windows 95 and slow PC) system, then it would fly on a newer one. A lot of software today, barely runs on a new , fast system and would simply choke on a slightly older system. Thats poor design simply put.  Imagine if Microsoft forced all their programmers to develop an operating system that would have to run a 500 mhz PC, with 64 meg RAM (thats fast IMO) which would fit on just one CD. They couldn’t do it ! Surely its possible, but the biggest software maker in the world couldn’t do it.  Why ? Their whole concept of how software is developed is flawed.  PowerBasic (was at one time Borlands TurboBasic) programmers could possibly build such a thing with the tools they have. A 500 KB application is considered huge to them. Some of the talent pool I have seen on the PowerBasic forums amazes me.  The rule they follow is "keep it simple" and "keep it small" and "keep it fast". Add to that, they use one of the easiest to grasp programming languages there is , BASIC. Code is readable and easy to follow.

  58. Ken Nelson says:

    Interesting article. Thanks for posting it.

    Being in the software tools business for a decade and a half, I can attest that people call us pretty much every day with issues similar to what the Vista team appears to be mired in.  Except they are usually folks who weren’t involved in writing the original mess )-:

    On the basic premise of the blog posting:

    Vista seems likely to be an impressive feat that has lost the expectations game. Its success is being determined by people hostile to Microsoft (the press, Apple aficianados, Linux acolytes, and a financial press clueless about software).

    I’m sure there are frustrating managment layers in the project. Probably that could be removed or streamlined.

    But the first problem lay in setting a date. Microsoft has the profit to avoid doing that. Too bad they couldn’t resist.

    On SLOC as a metric:

    As other commenters have alluded to, SLOC  isn’t the perfect metric. But… it is a useful and relatively easy metric to collect.  But most metrics aren’t useful looked at in isolation (in time or context).  I’d be more interested in seeing Vista metrics covering SLOC, Complexity, changed SLOC, changed/new Complexity, Coupling and New/Changed Coupling.  It would also be interesting to see this broken out by regions of Vista. I’m less concerned about rapidly changing test drivers than by massive additions of complexity to the kernel or firewall.

    On SLOC:

    So what does 60 MSLOC mean???   What of that code count ships? How much is test code? How much is build code? How much of it is Minesweeper, etc…?

    On SLOC/Programmer:

    What is a programmer?  Should I count a team leader, who helps us build excellent code, but doesn’t code much in my ratio. How about the QA person that writes some test code to massively unit stress test another teams code.  

    It is a decent metric, but one that should be used with context in mind.

    On the comment threads:

    I don’t think Windows and Linux comparsions are at all Apples to Apples. As an example, Microsoft, IMHO, has done an amazing job keeping applications compatible through decades.   I regularly run into binary compatability issues, or more precisely kernel syscall issues, with Linux releases.   I don’t want to turn this into a Linux vs Windows issue, but to categorically trash Windows as a development effort seems misguided and wrong.   I love Linux.  I need Windows. I use both each day.  OS/X impresses me. I’m learning more about it and have let a few of our engineers who expressed desire live in it.

    Thanks again for writing this posting.

  59. Jan Andersen says:

    Interesting, but –

    Why all the random pieces of bold text? They don’t seem to make any sense – it seems more like a teenage girl telling something to her best friend aboutthat GORGEOUS new boy in class.

    And the claim about the ‘largest software project in mankind’s history’ – that’s simply hype. It’s neither the largest in any sense of the word, nor the deepest, cleverest, most important or most difficult. Apart from that, I can’t see how this is relevant; the project is late because it has been mismanaged by mediocre testosterone junkies – also known as Upper Management.

    Writing software may be difficult, but many other difficult projects manage to be done on time, even huge ones; just look to China, they have pulled some big ones off recently. Or to the US in days gone past. It is only a question of having competent managers; competent meaning ‘they know how to lead’ – by inspiring trust and cooperation in people – instead of micromanaging and saying ‘it’s not my fault’.

  60. PaidCritic says:

    There are some basic premises that you don’t even touch in your tome that you, and Microsoft needs to address. Your emphasis on the largest project in software history is a clue. The real history of Microsoft’s competitiveness in the marketplace and their perception of it, their need to dominate it, caused bad and inherently poor choices in terms of Windows foundational architecture.

    This is said within the context that there have been many attempts to make operating systems, and business ecosystems around them with hardware vendors, and others. None has succeeded as well, financially, as Windows– and that’s a quantitative, not qualitative analysis.

    The core architecture of Windows was written for an era long ago. The OS/2 divorce and the spawning of two kernel trees, one a kludge on top of the maladies (once simplicities) of MS-DOS (and its predecessor SB-86) begat Windows 95 through ME. Winnt was a separate branch built somewhat on OS/2 (remember Program Manager?) in a 32-bit native mode, against an elevated (ring 3) Intel architecture while other processor family support was promoted, but never really executed across non-Intel architectures in a meaningful way. Oh, we were promised a unified kernel at Windows 2000 and it kind of worked. And then came the exposures.

    The huge code base, (something for everyone–an API today; can you hear Zero Mostel singing it?) created enormous dependencies and synchronization difficulties. Hubris about driver certification, an enormous destabilizing influence on system integrity (and out of Microsoft’s control for many reasons) caused continued problems that they’re only now brave enough to truly confront. Here, the closed model continues to hurt.

    Now Microsoft is stuck with a legacy model that now is like weights around their necks. It made the fate of the world’s richest men. And now it’s a noose.

    We’d all like to see Microsoft succeed because there were, and are, many good ideas and ideals around what made Windows successful in the first place: egalitarian driver models, unified GUI on comparatively open hardware architectures, somewhat cohesive apps delivered with good market timing, and APIs that mostly work with each other (on good days).

    It’s the legacy that causes the huge dependencies. Linux and BSD derivatives rest on a long history of *nix successes and failures. Nice, and boring. It’s cute to see Linux kernel traffic with endless arguments over minutae. Linux will continue to evolve not for economic reasons, rather artistic and ego-driven reasons. Microsoft has to keep the pace of shareholder return, or face Wall Steet consequences.

    Oracle has learned how to do code that makes their core apps work across a staggering number of platforms. A revision– across those multitundinous platforms, many with staggeringly different processor and OS evolutionary consierations, can and have been done in a somewhat orderly fashion. This is a testimony to biting the bullet, and continuity. The legacy code issue noose around your necks will eventually drown Microsoft as all tides slowly rise. It’s already causing massive credibiltiy problems.

    I which you all luck. You’ll need it. And I appreciate your seeming bravery. It’s misplaced.

  61. Tom Spence says:

    I worked for IBM from the 1950s to 1990s.  The description of the MS "culture" sounded very familiar.

  62. benthere says:

    For those of us using Firefox to read this, if you have the EditCSS extension, add this to the end:

    b{font-weight: normal!important; }

    Gets rid of the raisin text. Now, on to actually read it…

  63. Harry Erwin says:

    1000 sloc/man-year isn’t bad for a life-critical system, but I would expect about four times that productivity for more general systems. Either it’s being built to life-critical standards, or the process has overwhelmed the product. Has security gotten in the way of building the system? We once asked what it would take to upgrade NT to the point that it could be used for air traffic control, and a MS VP indicated they would miss their price point by a factor of three. You’re in danger of doing just that.

    Probably the basic issue is the scale of the system. It’s neither simple, like Stonehenge, nor made of standardised parts, like my brick house. Instead it has a lot of large heterogeneous parts, each of which requires a manager, and it’s being integrated by putting those managers in a room. You need a software architect in charge who has the vision to make it all come together. There aren’t too many people out in the world who can do that.

    Good luck.

  64. PJ says:

    You guys just don’t get it.   It’s not the Sidebar.   It’s not about pretty Aero effects. You’re not out there to beat G’s Desktop Search.  You are not out to sell more copies or convert Mac users.  You need to work on retaining as much of the client base as possible.

    The problem is SPYWARE.  Instead of WinFS or speech recog, you guys should have been working on killing ActiveX, user instead of admin mode, and rebuilding IE from scratch.

    Have you even met someone who isn’t an MCSE?  97% of all Windows users don’t understand what ActiveX is, let alone the ramifications of accepting an ActiveX control.    You guys have no clue how bad it is with the average Windows XP user.  

    The general opinion of Windows is that it sucks, due to all the spyware headaches.  From the multi-B$ enterprise all the way down to my grandma, all are nearing the tipping point.  Public enemy numero uno is spyware, malware, trojans, rootkits, yada yada.  And don’t give me the typical band aid retort "malware writers are targeting the 95% of computers, if linux had more market share…." b/c we all know how fundamentally flawed NT is.

    Could have learned from Intel’s monumental meltdown with the Pentium IV and Netburst.  To kill off AMD, Intel marketing forced it’s engineers to increase MHz at the cost of CPU power.  It took them 6yrs and 30% market share to finally realize this was foolish.

    XP SP2 was Microsoft’s chance and they blew it.  I’ve running Vista beta right now, I can honestly say that they blew it again with the spyware issue.

    Why am I wasting my time typing this out, nobody pays attention anyways.

  65. TheNetAvenger says:

    Re: Debian & Vista

    Ok, this is about the silliest thing I have read in a while. The ‘project’ size comparison would be like releasing Vista bundled with Office, pick 10 other 3rd party applications, then you would at least be making a correct ‘size’ comparison.

    The second part of this that is alarming is that people truly don’t realize the structure of Windows and somehow are trying to define the ‘modular’ nature of all the Debian distribution and its applications as a ‘good thing’. Copy and Paste between all your applications (even the ones in the Debian bundle) would be a good example of why the poor level of ‘integration’ in Debian is a bad thing.

    It also demonstrates the poor level of understanding of the Vista OS, or even OSes in general. Vista is an NT OS with a Windows Subsystem and on top of that you have several new frameworks and technologies. There is also the technical advancements that are a part of Vista that don’t even exist in ANY other OS currently. Comparing Vista to Debian would be like comparing OSX to OS9. Vista is a vast jump in technology even if it kind of looks like the old Windows interface everyone is use to seeing.

    Re: MS Should Buy OSX?

    Why would Microsoft do this? If they wanted an outdated OS technology like OSX, they could slap the cute animations on XP, drop in a GPU texture composer and still be a several steps ahead of where OSX is.

    If you think OSX is even ‘close’ to Vista in terms of Kernel or Video level of technologies, I would suggest learning a bit about OS technologies and OS theory.

    Let me make a quick math analogy.

    OSX = 100 | XP = 100 | Vista = 200

    XP and OSX in regard to graphics are very comparable, although OSX has an edge to XP in using the GPU memory for a bitmap composer, and XP has a technical edge to OSX when it comes to the NT kernel technology that it uses.  

    Vista leaps both in many ways that will define the computing industry for the next generation of computing with things like a real Vector based GPU Composer, a new Graphical API that leaps past DisplayPS/PDF and GDI+, to new kernel advancements, and lots of technical items that are beyond the scope of this comparison.

    If Microsoft wanted something as simple as OSX, they would just add cute animations to XP, instead Vista is a rather large advancement over both XP and OSX.

  66. Bob says:

    One of the other posters said Microsft needs a "Cutler" to tell management where to stick it.

    Two problems with that:

    1. Cutler was part of the problem, not part of the solution. Cutler was an old-school DEC process-oriented big-project guy.

    2. Ray Ozzie is a Cutler fanboy. He isn’t a breath of fresh air. He’s Microsoft’s way of breathing it’s own gas. He’s also an asshole like Ballmer. A management nightmare twofer.

    Microsoft will have to experience a crisis like Sun, and will probably take as long as Sun has to turn things around.

  67. Bill P says:

    Heh.  It’s an interesting insight, and one that I can certainly relate with (the project I’m on is also on the order of many millions of LOC).  I don’t doubt for a minute how complicated everything must be to pull together, and I am still impressed with it.  

    One thing that a lot of people who aren’t involved in these large projects forget is that Vista (like Oracle) etc has to not regress in functionality: and the amount of software configurations, hardware configurations, etc. it all has to support while adding on new functionality is staggering.  A lot of applications (e.g. MS Office, Photoshop) can get by with a huge change since how a user interacts with it is much more confined, but at the system-software level, it’s never a trivial task.  Allowing any tom-dick-and-harry to just inject code without proper regression testing in that environment is just a recipe for suicide.  

    I think that those who criticize the processes need to actually try and support enterprise linux from one release to the next to see how difficult it can be.

  68. TheNetAvenger says:

    Re: MS Never wrote their own OS

    I beg to differ. NT and even Win95 were very much ‘real OSes’ and both came from MS 100%.

    Re: NT is based on OS/2

    I also disagree, NT was originally going to be a OS/3, but with the IBM separation and the hiring of the Cutler team NT took a whole new direction and virtually nothing from the OS/2 project was used in NT. People sometimes are more apt to argue NT is based on VMS (which is also incorrect) than OS/2 because of the VAST differences between the OS/2 and NT architecture. A good example of the difference would be to look at the NT Kernel Technology that is HAL driven with an outside kernel API nature, more of a client/server or hybrid kernel technology that is nothing like OS/2 or VMS. In fact the NT kernel technology is quite unique in nothing like it existed before, and even to this date no ‘comparable’ kernel technology exists in another OS. One example of how this affects the OS is the NT Kernel abstraction that has benefits of both a monolithic and microkernel design, but is really neither. The NT architecture allows for advanced OS concepts like subsystems, which even Win32/64(Windows itself) actually runs in, as well as the *nix subsystem to even the older DOS and OS/2 subsystems.

    Re:NT was never unified | NT never ran on anything but Intel

    This one is easy to fact check, NT was available for the RISC, PPC and Alpha processors, even Win2k was being developed for the Alpha CPU when Compaq bought DEC and pulled the plug. In the 90s you could buy NT for several non-intel platforms. Support for the other platforms was not successful because the x86 technologies from Intel and AMD caught up with the other processor platforms and there were no longer performance benefits to choose a non x86 architecture for a Server or Desktop.

    As for NT not being unified, I’m not even sure what the person is talking about. The NT code base was ‘always’ unfired up until the release of Windows 2003 Server. The NT kernel was also a unified technology in that sense as well, so again I’m not sure how this assumption was made or why.

  69. Peter says:

    Interesting article. I was reminded of (the differences with) the way the Space Shuttle code is produced, as described by a fascinating Fast Company article: http://www.fastcompany.com/online/06/writestuff.html

  70. Pat says:

    You know. I understand how a large project like Vista could get so heavy and complicated. But really. Do I want a fancy 3d motion effect translucent interface? Do I need all that bells, the whistles, the fireworks on my OS?

    NOOOOOOO!!!!!!!!!!!!!!!!!

    You know what the first thing I do is when I get a new system? I put the interface to classic, I reactivate all the desktop items and shortcuts, and I deactivate all the "effects" on the interface. Why, because ALL I need from my OS is to run fast, stable and clean. And to keep things running like that. Because the OS is the tool that I ues to run PROGRAMS. The OS is and should always be a commodity. The OS is NOT supposed to be the star of the show. A computer is a TOOL that I use to run OTHER MORE IMPORTANT tools.

    I believe that Microsoft has forgotten that…

  71. Bob says:

    TheNetAvenger said "It also demonstrates the poor level of understanding of the Vista OS, or even OSes in general. Vista is an NT OS with a Windows Subsystem and on top of that you have several new frameworks and technologies. There is also the technical advancements that are a part of Vista that don’t even exist in ANY other OS currently."

    And the benefits to the user are… what?

    The only party that gets more benefits form Vista are the MPAA/RIAA. They get better DRM. w00t! That’s something I want to run out and spend money on!

    Developers get .NET 3.0 – an OS with a 100% managed interface. That’s kinda nice, compared with waiting for various JSRs to get done, or trying to figure out what is a good object framework for OSX coding. But is it a real-world benefit compared with runnig an app server on Linux or Solaris or Windows? Who is actually going to dump Java for .NET 3.0, and why? This would have been a lot more interesting when .NET first came out.

  72. Morry V says:

    I’m curious, is Microsoft CMM level 5?  Or is it an ISO standard now?  I thought those processes were supposed to solved all problems of software development.

    have you thought of switching to TPF?

  73. Jason says:

    To Chris Boss: you have to keep in mind that your PB engine is a wrapper for the underlying Win32 API.  I can write all kinds of applications in vc++ that are extremely tight and small, and run extremely fast as well (I typically work on USB applications and automation systems).

    I agree with you absolutely that the framework being provided is far too bloated.  But I think that tends to happen when you try to abstract the machine to the point that you don’t have to know the basic operation of a computer to write software.  While glue languages are extremely powerful tools that can produce very useful tools with a minimum of development time, there still needs to be the underlying comprehension of the machine that JIT/interpretted languages tends to weed out of the general development community.  Without that understanding, people begin advocating that the operating system should be written using the glue (see questions in driver forums of people asking why they can’t write kernel mode code in C#).

  74. Babak says:

    Nice post.

    Thinking about this for a while, it seems like a lot of the problems you touch on could be addressed by changing the Windows business model to a service from the current product orientation.  Hear me out…

    The problem with the product model is that each major new Windows version has to make a significant enough noise and be compelling enough to entice users to upgrade their operating system — a major task for home users and an even bigger one for businesses.  This impetus leads to a simultaneous mobilization of the whole Windows team to make sure that every component gets at least a facelift concurrent with major changes to the core of the OS.  The result is equivalent to trying to build a car without the conveyor belt.  The image of 200 production line workers with wrenches and car parts piled up over a chassis (still hot from the forge) is telling.

    The alternative would be to allow customers to subscribe to Windows for, say, an annual $25 to $75 fee.  In this model, upgrades to various parts of the OS will be rolled out while they are good and ready and have been tested with the rest of the stable, existing package.  Obviously some upgrades will be more significant than others (e.g., kernel) and the rollout schedules could be problematic, but it’s certainly more manageable than a complete rewrite.

    It seems to me that this model will take some of the positive attributes of the open source process and "corporatize" them.  MS would put less “lumpy” demands on its resources and minor upgrades to the OS that are currently passed out for free (and at a different time as the revenue for the sale of the OS) would be more directly rewarded.

    I haven’t been a programmer for some time now, but I personally would much rather work in the second environment than the current MS pressure cooker.

  75. Tom Brown says:

    The biggest challenge Windows faces is one which none of the above comments, or the original article, mentions. This is a problem which is at the heart of malware vulnerabilities, as well as the code complexity that plagues the developers.

    Too much functionality is integrated on too low a level.

    There is no way to completely eliminate bugs, but when they happen in Windows, the resulting vulnerabilities can be widespread and potentially catastrophic. I confess that I cringed when I saw that Windows has circular dependencies. Ouch!

    A lot of text books talk about the software development cycle, but there is one step in that cycle that is never mentioned, because it is politically incorrect, no matter how necessary it is: Nuke the code and start over from specs. Of course, given the problems Microsoft has had recently with the EU, I suspect all of their functional specs are in one place: the source code. I suspect they don’t have any functional specification documents for Windows.

    These two elements: over-integration of functionality and aging, over-patched code would explain the Vista delays very well in my opinion.

    How can Windows be fixed? Realistically, at this point I doubt that it can be, short of something earth-shattering, like turning it into a GUI layer on top of BSD, like Apple did their OS. It really does need to be nuked, not just a makeover, but there is no way this will ever happen.

  76. Paul says:

    Duke Nukem Forever & Windows Vista.

    Need I say more?  I hope ya appreciate my humor in this.

  77. Bob McAdoo says:

    Hey TheNetAvenger, I don’t know if Win95 and NT being 100% Microsoft is something to be proud of.   Having supported NT in a multiple user environment it has to go down as one of the most unstable OSes of all time.

  78. Thomas F says:

    Vista Looks "Cool" but re-organizing the locations of all the settings that people have beomce used to makes no sence to the real world but I guess it works for the VP’s who green-lit the whole idea.  Uggh  Seems to be a Microsoft thing as they can’t even get Windows Mobile right.  

    Hey Bill – WAKE UP!!!!  Perhaps its time for a trip to the trenches to listen to your staff and not your managers playing CYA.

    It’s a SHAME that a small company like Danger Inc., with their HipTop OS used on the T-Mobile Sidekick, offers tighter application integration and navigation than on Windows Mobile 5.0.

  79. ico2 says:

    Is windows still existing? let alone in development? does anyone still use it?

    I think most people (although maybe not readers of this page?) that windows has been going downhill since 98se and arguably since 3.11!

    *feels inclined to include the word evil somewhere in this post*

    ico2

  80. BeerWulf says:

    My $.02 worth:

    For me, the most painful thing about Windows is the huge oversupply of hoops you have to jump through to do a simple thing.  In Unix/Linux, writing "Hello, world" is as simple as

    #!/bin/sh

    echo "Hello, world"

    while in Windows I have multiple steps in front of me before I get a little window that has those words in it.  What makes me hate Windows is the complexity of the OS and its rat’s nest of dependencies that I trip over when trying to do my job, and I don’t buy the blather about "it does a complicated job, so it’s a complicated OS".  Unix manages to do a complicated job without gooping up the box.  You can run Unix in server mode with no GUI eating up memory; try that with Windows sometime.  And you can write shell or Perl scripts that manage Unix/Linux boxes pretty easily, once you know what you’re doing.

    Of course, that may be the real rub for MSFT.  To know what you’re doing takes time and discipline, and once someone with two neurons that are still talking to each other learns Unix/Linux and then has to work in Windows, chances are Windows will become the hated wicked stepmother.  And said programmer will form a mental image of people in Redmond all wearing rubber noses and fluffy red wigs and big red plastic shoes.

  81. Geoff says:

    I would have to agree with previous commentors. The Unix divide and conquer through defined interfaces should be the way to go.

    I’m assuming you guys do a lot to make sure popular apps don’t break.

  82. Shrinkers says:

    The Slashdot trolls have appeared, what a shame as it’s a very well written article that is just reduced to "omg use linux/mac os x lol" etc. from people who probably haven’t written anything larger than a PHP shopping basket.

    Anyway…I was hoping those bolded words added up to another essay, but sadly un-true!

  83. KJames says:

    I am not sure exactly why this article or any of the following comments were written. A few of you have caught on that this could be about any company and relatively any kind of development project and not just software based. These issues effect every new innovative idea.

    Most of what I have read here amounts to partisan rhetoric and has very little foundation in reality.

    The market that made Microsoft what it came to be is consumer home computing. Tell me how many servers in 1995 were running a Microsoft product? Most were Novell or some other Unix flavor. The consumer OS that Windows invented was an answer to a solution when any other company that had the power to innovate was in management crisis. OS/2 was IBMs headache due to legal issues and poor design choices. Apple was in turmoil due to lost focus and poor management. Linux was a hobby and very very young. So Microsoft was at the right place at the right time. Your average consumer is mostly still tricked into believing MS Windows is the only thing on the market. Linux is a blur of technical, unfriendly, and complicated software that no average Joe knows what to do with. OS X is the other white meat that most people are still under the impression that it the same software and company that it was ten years ago. Ask your average illiterate computer user what a Mac is used for – " Isn’t that what artists used to make pretty pictures".

    Microsoft’s day has come with the consumer market and Vista is being inadvertently set up for disaster. By the time MS gets this one figured out most of their customer base will have woken up and realized that there must be a better way.

    Now this is not true for MS’s server OS market. They may thrive on that. And their government contracts may give them another ten years. But when it comes to Vista they will eventually rehash this project for a few years and then realize they will need a whole new OS either from a third party or to just start from scratch. I can even see MS slowly getting out of the OS market and focusing mostly on portable devises and game consoles. Heck the XBOX is the best thing that ever came out of that company.

    In the end this article has little to due with Vista and more to do with a very large company that is dealing with the common issues of a very large company. The real problems lie in the fact that MS never had the right answer to the OS market but they were the only guy in room when the job was up for grabs. Well the boss has finally caught on and these new resumes coming in are looking pretty good.

  84. Advil says:

    you’re a faggot

  85. Mike says:

    Question I have is whether the idea to integrate certain features deeper into the operating system (IE, Media Player, etc.) may have contributed to Vista slipping.  It would seem to me that it leads to two different things.  First, the demands on the lower levels are more complex, more coupled, and you end up with a lot of chefs in the kitchen.  Second, it means that the product shipping on time is dependent on all the parts.  Something is wrong with IE?  Can’t ship, ’cause it is integrated with the OS.  Can’t just use an older version.  I wonder if this led to the thermonuclear reaction.  Without clear defined interfaces between cohesive modules, then one change to one module would have a pretty big ripple effect.  Coupling everything has been useful from a business perspective in the short term, but could it eventually cost MS?  Leaves a lot of time between releases for competitors to come in with something better.  I think we’ve seen that with Firefox.  Would be interesting, academically, to understand more fully MS’s experiences with Vista.  Maybe they’ll publish something after it releases.  Would be valuable to software engineering as a practice, I think.  Vista may be big, but the trend is towards larger, more complex systems.

  86. Former Microsoft Windows development manager Philip Su unburdens himself about why Windows Vista is late with a a post on his titled Broken Windows Theory:
    Ask any developer in Windows why Vista is plagued by delays, and theyll say that the code is wa..

  87. Bob says:

    KJames speaks wisdom: "I can even see MS slowly getting out of the OS market and focusing mostly on portable devises and game consoles. Heck the XBOX is the best thing that ever came out of that company. "

    People buying game consoles accept the fact they contain content protection and are not open systems. So do people buying mobile handsets. And the products are good: Windows Mobile is better than Symbian/S60/UIQ, and XBOX 360 is the best console.

    "Personal computer" means a computer I own completely and I control completely. Vista is moving away from that model.

  88. LCB says:

    Not a bad synopsis and I agree with much of it – however, it surprises and saddens me that a manager of developer teams so misunderstands software development as to assert that "productivity" of a developer is in any way tied to the number of lines of code they wrote in a given period of time.

    That is so totally off the mark that it makes me wonder how much you (and others) really understand about development. For example, a little while ago I refactored some code I (and others) had written – I eliminated thousands of lines of basically duplicate code (duplicate logic – not duplicate code really). By your measure I was in the hole with regards to productivity – and yet I improved the quality of the codebase considerably, eliminated many bugs, and actually added a few features to boot.

    Which brings me to my point: you should be measuring developer productivity by two measures:

    1) Quality of the results.

    2) Features implemented.

    If they do this with less lines of code then more power to them. If you measure and reward lines of code, that is what you will get and I will feel very sorry for you and your team.

    BTW – I am still using W2K. I have seen no reason to upgrade to XP much less Vista and I doubt I ever will – now updating/upgrading my Mac to the latest version of OSX? I do that the instant it comes out.

    Good luck with your Microsoft shares – personally I would sell them.

  89. Thromboid says:

    Re: CMM Level 5

    Check out the actual CMM requirement sometime.  A company MSFT’s size can’t be CMM level 5 compliant, it’d take too long to certify (by the time you certified one division, enough personnel would have changed that your certification would be invalid).  The only way a CMM cert is really valid is if it’s applied to an individual team (and that team always performs essentially the same work — a CMM level 5 team that goes from producing a word processor to writing a file system probably won’t turn in a CMM level 5 performance).

    Don’t believe these offshoring houses that claim they’re CMM compliant, they only reason they get away with that is because CMM certs don’t expire.  All they have to do is have one team on one project turn in a CMM-level performance and they claim the cert (and then claim the whole company is compliant).

  90. Memet says:

    Hi, nice article,

    I would like to point a few things out. Just for a balance in perspective. And I am replying to the author here (philip) more than to individual posts.

    As humans, I think we have a tendency to band with others. And generally, this tendency is either with the underdogs, or the topdogs (yeah, I have a very dichotomic perspective of life – but hear me out).

    I’ve programmed on windows for about 10 years now, and I recently switched over to Apple as my laptop – I still work as a windows based dev, but my personal computer is now an Apple.

    I have relatively good knowledge of the internals of OS’, including kernel mode architecture of Win and a vague concept of how nix kernels work.

    Apple has been the underdog and has been hailed as the second coming by most. I’ve bought their laptop for purely hardware reasons. I love the OS, but mark my words, it is headed directly towards what Windows is right now:

    Recently, Apple released a hotfix that effectively froze the new Intel based systems. I called apple care and told them about my problem. He asked me if it was "Adobe Version Cue" that was freezing my system and I said no. He said "what is", and I answer unrar, graphviz (ATT labs) and some other useful but unspectacular program. His answer was flabergasting really: "Sorry, apple does not support other applications, have a nice day". The shock value of this is that a simple program like unrar was effectively freezing the entire UI (leaving no way out but a hard reboot).

    Apple has also recently made its kernel closed source, and started pushing DRM even further down people’s throats. They are having more and more nasty vulnerabilities show up on their system – and most ironically, some of them (like the jpg/png? image header corruption) are very similar to the windows bugs recently nailed.

    My point is: Apple is going towards what microsoft is with running leaps.

    And what I think of all of this: I firmly believe that the problem these days is not so much inside microsoft as it is about external pressures. Namely market pressures. There is such a burden on making not only money, but growth. Isn’t it absurd that a company that does not announce growth on a quarterly report will see its shares slide down?

    Construction is the most unsustainable of industries. If you ever played even a simple simulation game like SimCity, you’d see that when you have a boom in an area, the first thing that goes up is construction industry. As soon as the growth has settled, construction declines.

    Well, maybe it’s time that the world sees that the booming era of the post war (WWII) is over. We can no longer expect to perpetually grow, and we should maybe look at just sustaining for a while.

    Microsoft has been coming up with new Framework after new framework for decades now. And they’re not the only culprit (sun, ibm…). But does it really benefit us? Does .NET 3  really… REALLY do any good to me? Why is it that Wallstreet has to decide whether what Microsoft did this year is good for ME?

    Even Google, the king of benevolent companies is in this trap: google Earth does not show Tibet on the world map. It’s one thing to accept cencosrship laws in China, it’s another thing to internationally approve of something of this magnitude to please a market.

    Phillip, I highly respect the entire Vista team and Microsoft as a whole. I love my Macbook very much too. And I’m a big fan of google. And MHO is this: you guys are doing your best in a world market which no longer makes any sense. Keep on keeping on.

    (gotta run, didn’t proof read – please don’t mind the spelling mistakes)

  91. jayB says:

    As a past-time Windows app developer, I found it straining to read code functions that use anything from the Windows SDK (largely the windows.h file). Wading through all the uppercase characters introduced by typedefs makes the head ache like reading uppercase parts of the EULA repeatedly.  

    WINAPI int somefunc(LPVOID *FunkyPointer, LPCTSTR string, DWORD register);

    it could have been as lovely as

    WINAPI int somefunc(void *fptr, const char *str, uint32_t register);

    The following might be a little biased:

    I wanted to write a sample FSD sometime this year, but even the IFS DDK samples frighten me, in contrast to linux fses for example. Or writing a character driver for *BSD can be done almost in an instant even if you did not work with it before.

  92. Rumple Stiltskin says:

    Vista is the Tower of Babel. Its true purpose is bringing everybody’s collective intelligence DOWN. Because otherwise we would rival God, and Bill Gates doesn’t like that because Bill Gates is God.

  93. Hello World says:

    BeerWulf: How is this any more difficult?

    C:>echo @echo Hello World > hello.bat

    C:>hello.bat

    Hello World

    C:>

    Now, if you’re comparing writing a Hello World program using Win32 APIs in C++, then we an talk about the differences. But, comparing scripting languages? C’mon, I can do in one line what it takes two for you (note facetiousness).

  94. Oliver King-Smith says:

    If I was working on Windows, the big scary thing is all the legacy issues that need to be supported.  I am wondering if Microsoft’s adherence to being backwards compatible has made it so hard to understand what the correct functionality is for a series of APIs, as to make it almost impossible to clearly define what a piece of code should be doing.

    It could be that the Win32 API which has been a strength has now become an Achilies heel.  Unfortunately the solution is not very clear.  I wonder if there is a possible virtualization trick, where a new Windows could be developed that virtualizes the old Windows.  New Windows would not have to support legacy stuff, and could quickly add new features.  Old Windows would continue to run under virtualization but slowly gather dust as software migrates to new Windows.

    As the virtualization would be "simpler" to maintain, Each new release of Windows would not absorb so much time having to update and support Old Windows.

  95. CommonSense says:

    NO SILVER BULLET

  96. LabMonkey says:

    Could you please, please knock it off with the random bold highlighting? It makes it unnecessarily difficult to actually pay attention to what you’re writing.

    Otherwise, excellent article.

  97. Darrell Wright says:

    The best measurement technique is to measure the number of bottles(591ml or 2L) or cans(355ml) of coke/pepsi/mountain dew… .  You get a baseline comparison of people, using something like a 2 week marathon programming session and tally how much they drink.  It is accurate as all "Real" 🙂 programmers use caffeine as fuel and the harder they work, the more fuel they need.

    You can easily spot the cheaters as they will be the chittery ones talking a mile a minute.  The hard workers would have used all the caffeine writing quality code.

  98. clawhound says:

    I think that the real problem lies in the culture of hiring the best programmers.

    Hear me out. Let’s take the best mechanical engineers in the world and have them fix brakes at Midas. Does that sound like a good idea? No. You innately know that this is a bad match. The skill sets and temperments of an engineer are not the skill sets and temperment of a mechanic.

    What does Microsoft do? It hires the best talent that it can, and then has that talent perform maintenance on software. Does that make sense? The most brilliant people want to design and implement, not support.

    When you hire "A" students, you also hire the "A" mentality. "A" people work hard to get the "A" grade and put inordinate amounts of work into making sure that they get an "A". "B" students work hard enough to get a B, might get an A, but make a time-vs.-reward judgement on their work. In other words, B students are far better at establishing realistic criteria and benchmarks and focus on those areas with the highest payback.

    As long as Microsoft hires "A" people, they will get developers who work long hours to get things perfect, but who do not make good time judgments. This results in a culture where everything slips, because the culture selects for poor time management skills.

  99. BeerWulf says:

    Hello World, your point is taken.  However, in Unix or Linux (not running the GUI) I can write my little script with three lines:

    echo "#!/bin/sh" >> hello.sh

    echo "echo ‘Hello, world!’ >> hello.sh

    chmod a+x hello.sh

    without having to (1) go to the Start menu, (2) launch NotePad, (3) create the batch file, (4) save and exit notepad.  I can also run it without having to go to the start menu, run Command, and then once I’m in command mode make my way to the directory containing my HelloWorld.bat file, and type the command at the faux-DOS prompt.

    I was actually talking about the APIs, btw. 🙂

  100. Andy Hefner says:

    Most everyone has commented on the size and complexity of Windows Vista being out of control. Certainly it is — the combinatorial explosion of potential interactions between features has a remarkable impact on productivity even in small projects. The thing everyone seems to be ignoring is what exactly these 10 million new lines of code in Vista actually do. Descriptions of the new features in Windows Vista read like a laundry list of things I don’t want my operating system to do, from the multitude of bundled apps I don’t want and won’t use, to dozens of features in the OS itself ranging from comical to idiotic (but probably sounded good to the marketting guy, middle manager, or meddling executive that proposed them). Its hard to imagine any competent developer working on things like "SuperFetch" or "ReadyBoost" without objecting.

    As far as I can tell, Vista (provided it works at all) will have some interesting low-level enhancements that normal users won’t ever experience firsthand (which is fine, developers appreciate this stuff), some new eye candy (and Aero, which is a genuinely cool in an "Apple did this five years ago" way),  but, most priminently, a bigger pile of random disjoint features that mostly serve to suprise and annoy the user in the name of trying to helpful. More clumsy wizards, annoying popup bubbles in the corner of my screen, more crap that appears out of nowhere (like the window in XP that wants to look at every file on a removable disk the moment you connect it, exposing vast swathes of code to possible exploitation/infection, when all I’ve never once selected an option other than "Open in Explorer"), more crap to take up screen space (like the Explorer sidebars in XP), more animated animal characters and features that bend over to be "friendly" rather than useful (like the Search window in XP, with its completely bogus features to search music, pictures, documents, or whatever, when all I want is to find a filename), and so on..

    Personally, I think they ought to throw the whole thing in the garbage (again!) and start over from XP. For all its faults, XP is reasonably reliable and usable, and I’d much prefer they focus on streamlining and refining a system which in most respects they did a pretty good job on. Instead, their egos have gotten the best of them, and they want to rewrite the GUI substrate, shell, and everything else, and make this the biggest event since Windows 95. In practice it won’t be any kind of revolution in how I use my computer, just a slower and more annoying environment that I’ll have to learn how to use all over again, and a vehicle by which Microsoft furthers its dreams of monopolizing music, video, chat, gaming, etc.

    And for the record, I don’t think that any of their much touted security measures are going to have much impact on the security of the OS, except in the very short term. Most users are idiots, and you’ll never stop them from running malicious software on their computer, regardless of how many warnings you pop up and how many bogus marketting-conceived security features you cram into the operating system. Restrictions of user accounts are equally irrelevant, tilting the balance slightly in favor of the detection/removal tools (provided they can detect it, and assuming the security barriers are not full of holes, the user can’t be tricked into subverting the protection, etc), but does absolutely nothing to stop infection of the machine (except by breaking a few older specimens of malware which don’t anticipate it) nor to stop the malware from performing its actions.

  101. JustAThought says:

    Hmmm…  US programmer productivity dropped after 1999 – isn’t that about when XP came out?

  102. solomonrex says:

    The main issue here is that Microsoft started to believe it’s own marketing.  That the software they create is the solution to massive organizational issues.

    If I were Gates, Ballmer, etc.  Stop moving executives around and stop marketing.  Study the military, well-run hospitals and Walmart and try to find your own path to development effeciency, because you’re still mired in methods that won’t work at your current scale.

  103. Chris says:

    Gotta love open source projects.

  104. rborkows says:

    I’ve always heard the legend that the ‘Largest Software Project Ever ™’ is IBM’s OS/390. How does Vista compare to OS/390 in terms of complexity?

  105. RichB says:

    "Vista-scale software projects"

    The answer is never to do a "Vista-scale software project". Linux is a huge undertaking. MacOS is a huge undertaking. You could argue that Linux is even bigger, because it includes server functionality, whereas Vista and MacOS are more client-focused. And yet, they don’t have the problems of Vista. Why is that?

    Let me correct that previous paragraph. Linux and MacOS do have Vista problems – but on a much smaller scale. Later this year, Apple will show off their 6th major operating system release this century. If you take Gnome as indicative of a client Linux release, that happens every 6 months. These problems do happen, but each of these operating systems have milestones culminating in fully tested releases much more frequently. Any problems are found much much earlier.

    So the real question is why does Microsoft believe that Big Bang software releases are best? From a technical perspecitve it’s been known for years that this is not the case. The answer to this conundrum can only be found in that bane-of-Microsoft, the Marketing department.

    So, there we are. Get the techies back in charge and sack marketing.

  106. Vincent says:

    Windows is legacy software. It’s time to migrate to Linux

  107. Status says:

    If you’ve wandered past Digg or Slashdot sometime today, then you’ve probably already seen this MSDN blog entry on the Windows Vista release date slip.  That’s interesting, but not surprising, especially if you know anything about Microsoft’s culture

  108. Shawn says:

    I can’t write code worth a damn, not like this anyway.  Not OS style code, not anything that isn’t a script running inside someones else’s painfully assembled code.  So basically, I know nothing to next to nothing about what actually goes into a program like MS Windows.  But the one thing I do have is… AN OPINION!!!! (yay!)

    My opinion is that Windows XP is a good operating system.  My OPINION is that it does the job well enough!  IN MY GODS HONEST OPINION, Windows XP is so good in fact that picking it over any other operating system comes down to THIRD PARTY SUPPORT…

    Yep.

    Thats my personal end-user opinion.

    Uh-huh.

    Talk all you want about Linux but quite honestly most people couldn’t give two shits about Linux because most people aren’t running web-servers and making sure Yahoo.com is available 24/7.  I gave a shit about Linux tho’.  I have it installed on an old P3 1Ghz box that used to be a firewall/gateway for my home network and now is serving licenses for some of my expensive software.  I don’t know why I did it that way, I just did, because I was bored, and the machine was doing nothing, and I guess to this day its still basically doing nothing.  Sometimes I put files on it but thats really pointless since I have a single network attached hard-drive with triple the storage…

    Once in awhile if my windows machine is incapitated because I screwed with it till it stopped working, I go online using the Linux machine and find out how to fix the Windows machine…  

    I run SUSE Linux, its nice, the Lizard is very green, I enjoy the lizard.  I prefer the Lizard to the default Windows XP desktop, sometimes I wish Windows had a Lizard.  A Lizard could revolutionize my Windows experience.  I think that if in the end MS just ditches all the bells and whistles of VISTA and throws in a Lizard, the millions of MAN-HOURS spent making the thing would have been worth it.  

    I like the new OFFICE 2007 GUI.  Its quite logically arranged and simple to use.  If Vista somehow carries these ideas of logic and simplicity it will be good.  The one thing that bothers me though is the animation, the fading in and out of highlighted menu tiems.  Thats very annoying in the long-term.  I find the constant fading in and fading out of menu items to be painful, I would advise MS against creating such items in the future.

    I once worked for a company that used OSX by the way.  Wow, I hated that platform.  Apple is a joke.  The pro OSX crowd doesn’t know what the fuck they’re talking about.  I don’t know why people like OSX, its very slow.  Everything on a Mac is much slower thanks to the miracle that is OSX.  People told me it was very stable though!!!  Yeah, that was a lie.  I probably had more crashes using OSX for a year than in my entire history of using Windows.  Although I will admit that when Windows crashed it typically required a restart, OSX would usually keep functioning, though occassionaly in a hobbled state.  At least enough so that I could save work in other programs THEN restart.

    Either way, the idea that OSX was a panacea, not a shred of truth to the idea.  

    I hate the applications folder, what a foolhardy idea.  People like it.  I don’t get those people.  I think there are 4 types of people in the world.  Men, women, women who like women, and men who like men.  Somewhere in there are people who like Macs.  Thats my opinion, I could be wrong.  

    -Shawn

  109. David says:

    Is there any way to see the rest of your post?  Maybe through e-mail?  I’d like to get your perspectives and learn from what you have to say, not be another "me too" detractor.  

    Thanks.

  110. bennage says:

    I’m interested in the numbers you mentioned regarding average developer productivity (KLOC/year).  Do you have any references that you can give for those numbers?

  111. InvolvedObserver says:

    I applaud your publicly posted comments and insight, sir.

    Well written, meaningful.  I’m sure it took some courage to post.  I’m sorry you took it down though.  With google cache being what it is, it’s rather unecessary to boot.

    Cheers, and good luck to Windows team.

  112. chris says:

    "

    If we wanted a version of OSx, then we would have bought one. However, we wanted something that more than a few thousand people were actually going to use…."

    I think apples sells around 2-3 million macs a year.

    "

    XP and OSX in regard to graphics are very comparable, although OSX has an edge to XP in using the GPU memory for a bitmap composer, and XP has a technical edge to OSX when it comes to the NT kernel technology that it uses.   "

    Are you telling me that the NT kernal is better than the BSD kernal. I dont think so.

  113. I think some of this feedback is way out of line.  My only thoughts are, do you have any idea how large that project is? Someone out there please raise their hand if they’ve worked on a software project that hasn’t had it’s share of kinks?

    Most of the people winging on that site have probably had 6 mo delays on an application let alone an *OS* the size of vista. 2000 developers? Come up with a flawless process to manage 500 developers, or even 50 and I might consider listening to some of this banter.

  114. doctorsuse says:

    I had used Windows and other MS programs for 20+ years.  After battling to keep systems patched for this duration, I looked back on the 500+ security patches that I had cumulatively applied to XP, and came to the rocket-science conclusion (sigh) that this was a fundamentally flawed piece of software.  And after reading the mini-microsoft blog (and this page as well), it is well apparent that Vista will largely be XP in Aero-clothing.

    People depend on the computers they have purchased to allow them access to the Internet without compromising their personal identity, bank accounts, or loosing control over their own hardware.  This lofty goal seems to be out of the reach of Microsoft – which seems to be more interested in spray-painting a shiny veneer of “New Super-Bling” over essentially the same-old same-old bare-faced neglect of basic security issues.

    I for one do not appreciate the arrogance and abuse of power that MS tries to wield while announcing “thou shalt useth Vista, thou shalt have no other OS before Mine”, etc.  I switched to openSUSE 10.1 64 bit – it’s great – does everything you need FOR FREE.  I hope a large portion of the globe switches to Linux and rubs MS face in it.  Bill was complaining a while ago that he was too rich anyway – perhaps the Vista-fiasco is actually his philanthropic gift to mankind.  Billions of dollars saved by the citizens of our world switching to Linux, which can now go into food and clothing…all because of Bill (insert stirring music here)…

  115. JRI says:

    I have to appreciate the self-righteous commentary coming from the LinuxUnix world. I left OSS development three years ago to come work for MS (in Windows) because I was disillioned by the quality of OSS code, the lack of effort taken to do sustained engeineering and the poor interactions between different OSS applicationsfeatures. OSS does less then MS to do right by the consumer (that is a bold statement I realize, but when I say consumer I mean my Dad who can barely find the power button on his computer much less work a command line). The idea that the OSS has better quality code is a joke. I do admit that there are some great OSS projects that do a fantastic job (better than Windows or teh average OSS project) of development and SCM (Apache, Mozilla), but they are by far the exception rather than the rule.

    The biggest difference between the majority of OSS projects and MS is sustained engineering.

    Sustained engeineering takes a lot of resources time and effort. A good example of this is Perl (I am a huge Perl fan). Talk about late delivery – when is Perl 6.0 giong to come out? I do notice however that there is a steady stream of bugfixes and minor enhancements coming out for the 5.x versions. Another point about Perl is that it is taking longer than Vista, yet I hear no complaints/ridicule coming form the OSS community for it’s lack of forward progress? I personally do not mind since I want a Perl 6.0 that is done right and I want Perl 5.x that recieves good sustained engineering efforts. If all of the sustained engineering efforts were directed at finsihing next verison of Perl (as is the case in most OSS projects), Perl 6.0 might be here. I would wonder if I would still be stuck using the less than useful 5.0005 version? IMHO, Perl does no better a job of managing their "product" relase than Windows and I would say that typifies the OSS world. I have worked both extensively, so this is not mere conjecture.

    While I agree with almost everything Philipsu say, I think he has only taken into account some small fraction of the variables that go into shipping Vista. Like most feature teams in Windows the only concern is to ship their feature. This requires meeting a high quality bar. Many of the existing features in Vista had to be re-written to meet those quality bars (many having to do with security).

    I hate the fact that Vista will shiplate. I hate the fact that it looks like we copied OS X. I very much dislike some of the features in Vista.

    But I will still encourage everyone I know to switch from XP/Win2K to Vista for two reasons: increased secuirty and the best sustained engineering framework in the industry. Ths is not to say that it is perfect or even good, just the best one out there.

  116. WindowsWasher says:

    "threatens to also be the longest."

    if you are referring to time spent, someone hasn’t heard of the Xanadu Project 😆

  117. JSI says:

    Damn, did I really write "because I was disillioned by the quality of OSS code"?

    "because I was disillisioned by the quality of OSS code."

  118. MV says:

    Your article was recommened to me as a good read; but you took it down. Stick to your guns; strong opinions draw lots of attention and potential negative responses, but that doesn’t make them any less valid.  Respond to the detractors in another post.

  119. Bas says:

    I have had a good look at Vista…..

    The only thing I can say is that it’s basicaly more of the same crap we have seen before.

    Heck, it doesn’t even have a decent multi-threading design that OS/2 has.

    It has speach-recognition…..yeah way cool….but OS/2 had that already shipping in OS/2 Warp4…..

    Kernel? Who gives a shit about what kernel it uses? I don’t, why should I?

    I care about multi-threading, real OO-desktop, real multitasking….that stuff…..

    Windows still has nothing of that….no not even in Vista…..

    Simpe example, if I have a shortcut, but I rename the original file to something else….does the shortcut still work? No way sir!

    Multi-threading, no way, it has nothing serious to show…..example…goto hardware-manager, let it search for new hardware, at the same time try to move the hardware-manager-screen to a better location….boink! stupid sound that you can’t do that!

    Is this what we are all waiting for? OS/2 had all the stuff YEARS back….

    OS/2 does have real OO-desktop

    OS/2 does have a decent filesystem

    OS/2 does have speech-recognition

    OS/2 does have multi-threading all over the system

    And last OS/2 had Microsoft to kill it (sort off)……

    All this stuff already started when IBM was working on OS/2 2.0, where MS was working on OS/2 3.0 (later renamed to NT!)

    Microsoft is and allway’s will be the most stupid software company in the world….all that is good get’s killed by then….and what for?

    I’m still testing Vista, but boy, this OS is the worst I have seen comming from Microsoft since Win3.0

    It’s design is utterly stupid.

    Finding stuff is killing your brains.

    Yep, they are on the right way to turn Experts into morrons too.

  120. Jesse says:

    "Microsoft is and allway’s will be the most stupid software company in the world…."

    If you really believed that, you wouldn’t be "testing" Vista, now would ya?

  121. darkmoon says:

    Another "longest" that Vista would have to contend with.  Duke Nukem Forever by 3D realms.

  122. chromatic says:

    JRI, that’s a ridiculous argument.  Collectively, the developers at Microsoft waste more time in a single day reading e-mail than there has been paid development work on Perl 6 through its life.

  123. Jen Larkin says:

    I thought this sounded like a very interesting article and I’m sad to see it removed in an attempt to stop the typical zealot wars. Taking the article down certainly won’t stop the zealot wars, especially with comments still turned on. I wish you had left the article up and turned off the ability to comment. Removing good information in order to try to stop the zealots (from both sides) only hurts the rest of us.

  124. eikonos says:

    I didn’t have a chance to read the full post since it was deleted before I got here, but the explanation for why it was deleted is itself an interesting thing.  I won’t speculate about what the redacted portion of this post said, other than to say that it was probably trying to rationalize the slipped ship date.  Perhaps it would be more useful to take a couple steps back and look at what Vista was supposed to accomplish, then how it could have been accomplished and then compare that to what actually happened.  There’s obviously something wrong with the current development model, but rather than focus on the negatives, focus on what the development model should be.

  125. LCB says:

    Windows 2000 is fine and no need to upgrade but you upgrade OSX the instant a new version comes out?  Must not be too happy with OSX then, huh? 😉

  126. AJWM says:

    "The largest software project in mankind’s history."    You say that like it’s a good thing.  It isn’t.

    It brings to mind phrases like "death march" and reminiscenses of OS/360, which eventually reached the point that each upgrade (patch release, service pack, whatever you want to call it)  introduced more bugs than it fixed.

    If you knew going into it that it would be, or even approach being, the largest software project in history — that should have raised immediate red flags that the thing would never be finished (and certainly not as originally envisioned) and that you should take a different approach.  (This is 25+ years of sofware development and project management experience speaking — although I would have said the same thing 15 and perhaps 20 years ago.)

  127. KLOC says:

    Hah!  The comments about KLOCs are right on.  There was a critical program that was about 200 KLOC in unmaintainable bash or something.  Programmer was handed it, and asked to maintain it.  Programmer spent a month trying to understand it.  Programmer gave up.  Programmer rewrote the entire thing in a nice clean maintainable way (in perl too, iirc 8-)).  New code ran much faster, was maintainable, etc.  Total KLOC?  5.  Yes, 5KLOC.

    This guy would have resulted in NEGATIVE productivitiy, yet, his code is used to move billions in transactions every day.

  128. Lee says:

    I think the discussion of "code lines per year" misses the point.  What’s more disturbing is that, barring possible improvements in the swiss-cheese Windows security, it sounds like the system is indeed set to be a bloated mess.  I would indeed be happy if Microsoft were putting out a minimum of QUALITY programming per year, but indeed it looks like volumes of junk are squirting out, and it doesn’t seem like the volume of code is making things so much better.  The whole point of an OS is to facilitate the programs that run on it, and "Vista" looks like it places a lot of demand for resources before anything else is even running.  What’s all this crap about Vista actually rendering elements of the OS GUI in 3D? It’s a waste of system resources to render elements viewed in 2D layers as 3D elements.  Don’t tell me it’s a minimal use of resources; I work in high-end 3D visual effects, and I use 100% of my system resources all the time, so even if the system only takes another 5% of the resources to render fancy GUI doodads, it costs me.  And I’m afraid a resource-hungry system GUI bodes worse for all the under the hood stuff.  Clearly Windows is trying to play catch-up to Apple’s OSX "coolness," which is a very bad motivating factor for OS development. Look at the specs they require just to run the OS!  Why should one need 15GB of space just for the system?  OSX only takes up 1.1GB of space on my Powerbook.

    The overriding problem, as always, is that Microsoft is a monopoly, and they have no incentive to make "better" software, only "bigger and newer" with new hyped-up components that have the letter "X" in the name, and they know people will buy it because they have no choice.  Their only response to any serious competition in their established monopolies is to buy it or squash it (i.e. to sue the ass of anybody who threatens to move past a minimum of market share).  It looks likely that anybody running Vista on a Mac via Boot Camp is probably going to switch to being a full-time Mac user, and assuming Linux distributions continue to improve user accessibility, it could also stand to gain market share if "Longhorn" turns out to be a bull in a china shop.

  129. Michiel says:

    "The largest software project in mankind’s history"

    That’s until the next largest project?

    Also, you might have removed the post but Google never forgets. Forget the negative responses; you’ve been slashdotted and scobled. All the idiots (like me) are coming out of the woodworks. Ignore that.

    Heck, at the end of your original post you even said "Talk amongst yourselves."; well, you sure got that going 😉

    On a side note; have you ever seen Steve Jobs present NeXTSTEP release 3 way back when?

    http://www.youtube.com/watch?v=j02b8Fuz73A&search=steve%20jobs%20next

    If I look at how his system performs there and the tasks it takes in stride I can’t help but wonder what the entire computer industry has been doing the last 15 years.

  130. Shawn says:

    Guy who wrote the initial article.  Seriously, how many people do you think have experience working on super-large software projects?  Do you really think you can come out and talk about the most widely anticipated operating system in the history of the known universe and not stoke the fires of a massive flame war?

    HELL NO!

    Heck I take an interest in everything you say (now "said"), and I can personally identify with how debilitating micromanagement is.  In fact, I think there should be a law against micromanagement.  Its borderline harassment and mental abuse in some cases.  Managers are too often giant idiot know-it-alls.  But, you know what they say, THE FISH ROTS FROM THE HEAD DOWN.  (Here’s looking to you Bill)  You know what else they say, those who can, do, those who can’t, teach, and those who can’t teach MANAGE.  (I just made that up)  

    The key to making super-large projects work is cutting out the pressure.  WHY IS THERE ALWAYS PRESSURE??  The fear response is a chemical brain thingy that is actually BAD FOR YOUR HEALTH.  This is why people get heart attacks, strokes, liver failure, kidney failure, wrinkly skin, lowered libido, and just downright angry when placed under too much stress.

    Job one in any workplace is get rid of the fear thing.  Job two is make sure the bosses realize when something ISN’T FUCKING POSSIBLE…  I once argued with a manager on the phone over this piece of code.  It was a Flash actionscript thing, not even in my job description but thats not the point.  Point is he wants it to be backwards compatible with every version of Flash EVER, all the way back to like Flash 4.0 or something RIDICULOUS.  (Because the statistics show that Flash 4.0 has a 98% adoption rate and Flash 7.0 was only 92%)  I keep telling him that the functions we are trying to use simply WON’T WORK IN OLDER VERSIONS OF FLASH.  He says go try it another way, so I try and try, and essentially waste several hours trying to do the impossible and tell the moron it’s true it really can’t be done.  Then it began, the relentless insisting, it was like I was talking to a motherfucking recording.  I finally told him that if he was so sure it could be done to do it himself.  Then he lectured me on how I was subservient to him and that caused me to yell "fuck" REALLY loud and hang up the phone….

    Anyway, the problem with any large project is always the MANAGEMENT.  YA’LL MANAGERS ARE STUPID PEOPLE.  I AM NOT KIDDING.  Its really not that interesting.  If the managers are bad eventually everyone hates everyone else.  What else is there to wonder about?  The worst situation is when the oppressed workers are being paid a shitload of money.  My guess is that most MS employees have considerable savings.  They are feeling the pressure and the indignation, but they aren’t feeling the fear of life and limb aspect.  Yeah, so they put up with it, but over time their enthusiasm falls off to nothing.  Thats corporate life.  No enthusiasm, working cuz you have to, and having spoiled managers whine and bitch to get you to finish things on time.

  131. doctorsuse says:

    Re: security issues

    JRI:

    You mention that Vista will be the "best one out there".   On what information are you basing this statement?  Vista has not been released, all indications show that it will have a least some of the same vulnerabilities as XP (according to the security patches that have been released for Vista pre-release beta versions), so you seem to be commenting positively on an unknown variable.  The beta version of Vista is also a resource-gobbling hog, according to many independent reviews.  Hackers are doubtlessly sharpening their tools on the beta…if we are into predictions, I predict someone will certainly have their ego flattered for being the first to cause major damage through the new “Vista-vector”.  

    You posit that OSS is not “better quality” – what is your definition of quality?  Security? (Linux/Unix wins on that front, compared to existing and beta versions of MS software).  Value to the customer per dollar spent? (let me see, great user-friendly OS, free applications, free office suite, divided by zero cost…woops, my calculator can’t display “consumer value” numbers that big).

    The open source community is free of the huge organizational inertia of MS and other corporations mentioned in the previous posts.  This allows them to respond quickly to any bugs or issues without all that overhead and baggage.  You complained about Perl – V5.X works great, is well maintained as you have stated, and certainly can not be compared to XP, or MS Office, which are fundamentally insecure, and require constant patching to minimize the number of people who are victimized as a result of using that software (who comprise the “acceptable collateral damage” for MS).  And as for Vista, the “OneCare” program strongly suggests that MS expects to have to patch holes in Vista forever, and now wants to capitalize on this by milking the consumer indefinitely for their poor program design habits.

    With the user-friendly Linux distros available, I personally can not see my way clear to recommend to Grandma or Pop “who barely knows where the power button is” that they should spend hundreds of dollars on Vista, or on buying a new machine capable of running it, and then spend hundreds more on MS office, and $50.00 USD per year forever for MS “OneCare” to hold the thing together.   Not when you can set up a very user-friendly Linux distro on their existing machine,  place a few launchers on the desktop for Firefox, email, OpenOffice, photoediting, Amarok media player, games, etc, and walk away feeling good about them using Internet banking without being hacked, and without having to spend their pension on lining MS’s corporate pockets.

    I do appreciate your loyalty to your employer and your livelihood – but you can also make a good living programming applications to run on open-source platforms.  Things are taking off for Linux, with the establishment of the common LSB standard.  It might be time to jump ship and work for Redhat or Novell and beat the rush “if” Vista continues to flop…

  132. 24 hour build time? says:

    I saw the comment on the 24 hour build time compared to the build time of embedded linux and had to bring up two points.

    1:  I do not believe nmake supports multiple threads yet (it didn’t used to when I worked for MS), so you can’t just add -j5 to your makeopts on a quad proc build box.  I recall having to make complicated batch files in order to get some degree of parallelism out of nmake.

    2:  A basic gentoo "emerge -e world" takes about the same time (Around 200 packages including either KDE or Gnome) on a dual 2.66 ghz intel with makeopts = -j3.  CCache helps a ton with subsequent builds.

    Then again, things could have changed since I was at MS.

    Frank Russo

    Former VDash

  133. no it isnt says:

    duggmirror has the original post before he removed it (for those interested)

    http://www.duggmirror.com/software/The_Reasons_Windows_Vista_Keeps_Getting_Delayed/

  134. ThanksGoogle says:

    It looks like a copy of the original un-cut version is still available…. thanks to google cache.

  135. Bunty Gill says:

    Holy crap! So who called you on your cellphone asking you to remove the post or lose your job?!

  136. zzz says:

    Tom Brown has a point I believe.

    However I would not blame Microsoft entirely for adding more and more low level features that could be better kept at higher level with clear boundaries. Big, Very Big part of the blame goes to the fact that Microsoft thinks the "customer is always right, provided they are Fortune N company".

    What Fortune Company says, Microsoft does, no matter if it’s going to bite them in the process or soon after. This is very evident if you go look at new functionality and APIs introduced.

    Even in the latest and greatest, "WPF v1" as they call it, this is already a concern since instead of truly making it a fresh platform, someone somewhere wanted it to integrate with legacy apps seamlessly and that of course mandates a bunch of legacy interdependencies, thus limiting future possibilities of for example taking your WPF app and running it natively on a future Windows platform where the win32 would be ran in a VM, and just generally making new addition of features on WPF harder because of legacy considerations.

    That is just one example at the highest level, similar has happened in the kernel as well. New features are in just to satisfy a handful of companies at high cost and risk.

    Few big companies dictate where Windows goes, MS execs are too kind and give in to their demands without consideration of long term platform strategy.

  137. derf says:

    Why exactly do we need a "new" OS from Microsoft?  Why not fix/optimize/debloat/secure the existing one?

  138. Ryan says:

    "What started as an opinion on the challenges of managing large software projects has turned out to be a rallying point for detractors, which isn’t interesting or productive"

    so you didn’t want to waste valuable bandwidth by allowing people to download the original piece right?

    yep. makes sense.

  139. Justin says:

    >>"We shouldn’t forget despite all this that Windows Vista remains the largest concerted software project in human history."

    Hogwash!

    There are government softwares that number in the HUNDREDS of millions.

  140. Bill Gates says:

    I 0wnz you!

    I can delete your blog whenever I want. Ohhhh yeahhh!!!

  141. Peter M says:

    It is totally lame that you removed your post, as I found it interesting enough to forward to my manager, but alas, you lamed out before he got a chance to look.

  142. T2k says:

    I agree, it was totally pathetic move to delete the substance.

  143. Richard Nielsen says:

    Sorry to see you remove your post.  I found it interesting.

    Anyone still interested can find it here on Google’s cached version for awhile longer:

    http://72.14.209.104/search?q=cache:4y5780GV8mwJ:blogs.msdn.com/philipsu/+The+World+As+Best+As+I+Remember+It+blogs.msdn.com&hl=en&gl=us&ct=clnk&cd=1

  144. Christoph Henrici says:

    Gosh Vista is giving MS a heck of a problem……

    But the "next" is already on it’s way: Singularity http://research.microsoft.com/os/singularity/

    So it can’t be the best if theirs a need for a new one.

    It’s seems that all the "unsatisfied" hothead have found a new playground: MS with infinite resources…..

  145. We need more BOLD! says:

    Or more cowbell.

    I know, this is wildly off-topic, but is meant to be sarcastic.  Meaning, the bold is waaaay overdone.  It’s slightly better than using ALL CAPS instead.

    I guess we should thank the powers that be that he’s not also using lots of underscore, italics and various colours for additional emphasis.  😛

  146. No personal offense, jayB, but maybe your lack of basic comprehension of C/C++ is the reason why you’re, as you put it, a "past-time Windows app developer."  Real-world programming isn’t what you learned in a CS class in school, it’s learning how to adapt and provide to frameworks and constructs for the platform you’re working with.  

    Don’t forget that there are actual, tangible _business_ reasons behind LPVOIDs and DWORDs (and yes, writing software for Microsoft is a business).  Whether you fundamentally agree with the framework or not is your prerogative, but I don’t think you’re in much of a position to say, "Your code is too complicated;" rather you should be saying, "I don’t wish to invest enough of my time to learn my profession."  

    Watch – as *nix software development becomes a business (again), you’ll start to see way more convoluted APIs for performing conceptually basic tasks.

  147. lol says:

    ^^ pwnt

  148. Nic says:

    Why dont Microsoft just buy Apple Mac OS X rather than going to the trouble of trying to clone it?

  149. Nic says:

    Windows Vista will be just as much of a joke as Windows XP.

    Ugly, terrible, slow, terrible security….

    How many more Mac OS X features do Microsoft want to steal? That sidebar with the widgets? Stolen from Dashboard which works far nicer. The new Alt+Tab ide is rubbish, flicking between the windows. Mac OS has Exposé which allows you to see smaller versions of all of your windows at once for convenience.

    Windows in any form is a complete joke, theres nothing interesting about it.

    Vote Apple.

  150. dbh says:

    Wesley wrote:

    > How the Unix-sphere manages is by separating bits and pieces from

    > each other, and using well-defined interfaces to communicate.

    Christopher wrote:

    > To Lawrence, you can’t compare Debian to Vista.

    Isn’t that the point? You can compare the two but on results not on solution methodology.

    As Wesley pointed out the Linux crowd have resolved the issue by breaking the problem down and avoiding a monolithic structure. Who mandated that MS must use a monolithic development structure with multi-thousand person teams? If it doesn’t work change it.

    If Microsoft loses it won’t be to a company with a bigger single development team. It’ll be to one with a different methodology, one that almost certainly leverages the work of others outside of the company…

  151. Jonathan Day says:

    I cannot be called a Microsoft sympathiser, but in this I really do sympathise with Microsoft’s situation. This is a gigantic project and problems grow as the factorial of the number of paths through the sourcecode. (In fact, if a replacement article is written, that would be a fascinating metric to give.) I guess Microsoft is using static and dynamic code checkers, but maybe adding to the list would help? Is there a Vista Cluster Edition planned?

  152. virtualthinker says:

    Once upon a time I worked on a system known as TIRKS.  Seven million lines of PL/1 and 370 macro assembler code.  Bell labs started developing TIRKS in 1969.  There seem to still be guys in india working on it.  I think the airline reservation system has a similar history.  Guess what? Windows of any version will never need to be close to the level of convolutedness of those ancient systems.  BTW if we converted the 370 assembler to i86 and the PL/1 to C the LOC count would probably be over a billion on any of these projects.  Some of the 370 instructions were significant micro-code programs themselves.  The problem with big projects is the bigger the project the less time you get to code – and more time you get to do administrivia.  With TIRKS we did quarterly releases; Coding was typically scheduled for three, or maybe four weeks, which meant 80 days of coding per year.  Someone guestimated that we averaged six lines of code per person per day. That comes out to maybe 480 lines of code per year. Wow! If Me, myself and I write a hundred lines of code today, and if a hundred of us doing a conversion project managed 500 lines per year, 9000 of us trying to redefine the way anything works would get really close to zero.  That probably means VISTA is well beyond off the chart in the direction of diminishing returns.  After twenty five years of writing code, I can’t imagine getting 9000 advanced degree CS people to agree on any single line of code ever.  Not even if the world is infact perfect and they all live in Redmond.

  153. Corporate Blogs – Gradations of Value?

    &amp;nbsp;

    First, let me say once again, there has

    been…

  154. cada says:

    你们也是人啊!

  155. pyvy says:

    i am waiting….

    best os ,difficult development.

  156. Anthony Berglas says:

    It would be good to put the article back up.  I suspect there are lessons in it for many other software companies, such as the one I work for.

    Anthony

  157. There’s an old (&quot;old&quot; by our industry’s standards) urban legend about irony that actually found its way…

  158. TechBlog says:

    There’s a cliche we’re fond of around there that applies to the permanence of publishing information, either in print or online: You can’t unring the bell. But Microsoft developer Philip Su, who yesterday posted an extensive blog entry on the…

  159. Todd says:

    Wow – Philip Su wrote up a pretty interesting blog post about Windows Vista slipping, and it has kind…

  160. Wow – Philip Su wrote up a pretty interesting blog post about Windows Vista slipping, and it has kind…

  161. Sentido Web says:

    Un blogger de Microsoft, manager de desarrollo de Vista, explica el por qu&#233; de los retrasos que est&#225; sufriendo el futuro sistema operativo de Microsoft. Entre las cosas que resalta es que el c&#243;digo de Vista es complicado, siendo lo…

  162. It’s great to be back in the saddle and next Tuesday we will be giving away $300.00 so make sure you listen to win we gave away $100.00 in GoDaddy prizes tonight. Sponsors: [Save 15% on any order of $20…

  163. It’s great to be back in the saddle and next Tuesday we will be giving away $300.00 so make sure you listen to win we gave away $100.00 in GoDaddy prizes tonight. Sponsors: [Save 15% on any order of $20…

  164. An ex-Microsoft developer &lt;a href=&quot;http://blogs.msdn.com/philipsu/archive/2006/06/14/631438.aspx&quot; target=&quot;_blank&quot;&gt;explains&lt;/a&gt; some of the problems:&lt;br/&gt;&lt;blockquote class=&quot;bbquote&quot;&gt;Windows code is

  165. I commend the Microsoft leadership for allowing their employees to publicly criticize their business practices. &amp;nbsp;Philip Su, a Microsoft…

  166. c0t0d0s0.org says:

    There is one inevitable rule in software project management: For the real date of completion ask one of the old die-hard project managers, not a high ranking people manager.

    You find an very interesting weblog entry about the delays for Windows at Phil

  167. &amp;lt;p&amp;gt;Horrific blog by an ex Microsoftie on possible &lt;a href=&quot;http://blogs.msdn.com/philipsu/archive/2006/06/14/631438.aspx&quot; target=&quot;_blank&quot;&gt;reasons for Vista’s slippages&lt;/a&gt;. Comments such as &lt;i&gt;An&lt;br/&gt;architectural

  168. Anders小明 says:

    由csdn的一则新闻,联想到了软件企业的绩效管理和内部消耗,讨论了如何进行绩效管理,列举了3种不同的内部消耗。

  169. El blogger de Microsoft Philip Su esta poniendo a prueba a lo grande la capacidad de Microsoft para afrontar las cr&#237;ticas desde el interior. El desarrollador, en un post de la semana pasada, explic&#243; c&#243;mo la cultura de Microsoft forz&#243;..

  170. So now that we RTMed Commerce Server 2007 (and the docs are online on MSDN as well), I finally got a…

  171. I have been sitting here on the sidelines watching the show for a few weeks.&amp;nbsp; How many electrons…

  172. Stuff like this happens in all organizations, small or large. There is never a perfect company or a perfect job but this is a very interesting read into what is going on with Vista and the stumbles along the way. I am still a bit leery of the user interf

  173. In his blog, Philip Su – dev manager at MSN Search – gives intersting numbers on the productivity of developers in the USA:

    USA 1999 — …

  174. In his blog, Philip Su – dev manager at MSN Search – gives intersting numbers on the productivity of developers in the USA:

    USA 1999 — …

  175. Reading this made me feel a bit better about the struggles we are having in developing software within

  176. Bill Li says:

    Nowadays software is getting so complex that it needs incredibly more and more people to build it. For