Slashdot Mirror


How Microsoft Develops Its Software

crem_d_genes writes "David Gristwood has a post on his blog that notes '21 Rules of Thumb - How Microsoft Develops Its Software', on which he will elaborate at TechEd in Amsterdam next week. It was derived from interviews with Jim Mccarthy, also of Microsoft. Gristwood: 'As someone who has been involved with software development for over two decades, the whole area of how you actually bring together a team and get them to successfully deliver a project on time, is one worthy of a lot of attention, if only because it is so hard to do. Even before I joined Microsoft, ten years ago, I was interested in this topic, having been involved myself in a couple of projects that, I shall politely say, were somewhat less than successful.' Tips include such features as 'Don't know what you don't know.'; 'Beware the guy in a room.'; 'Never trade a bad date for an equally bad date.'; and 'Enrapture the customers.'"

149 of 816 comments (clear)

  1. My post by andy55 · · Score: 4, Interesting

    I posted the following on this guy's blog comment form, and I thought some folks here might agree with it... Yay/nay?

    A worthwhile and insightful read (and it's about to get slashdotted). You use the phrase "great software" frequently. I post this sincerely and do not mean to troll. Since you are a MS PM and/or dev, there seems to be three possibilities:

    (1) MS consistently makes "great software" and you are, therefore, content to be a MS employee.

    (2) MS does not make consistently "great software" and you are, therefore, either unhappy at MS or long to be project group that makes "great software".

    (3) You and other people (myself included) have dissimilar meanings of "great software".

    In short, I believe possibility (3) is the case.

    1. Re:My post by Anonymous Coward · · Score: 5, Interesting

      Essentially great software is the one that solves customer's problem. Microsoft is good at it as each product that goes out the door can generally be qualified to solve at least one problem.

    2. Re:My post by tb3 · · Score: 4, Insightful

      Yep, Microsoft double-speak in action. Here's another great example, "Zero defects does not mean that the product does not have bugs" Well, to the rest of the world it bloody well does!

      --

      www.lucernesys.comHorizon: Calendar-based personal finance

    3. Re:My post by Reality+Master+101 · · Score: 5, Insightful
      Here's another great example, "Zero defects does not mean that the product does not have bugs" Well, to the rest of the world it bloody well does!

      The "rest of the world" has no clue about the nature of software. That quote is absolutely correct.

      --
      Sometimes it's best to just let stupid people be stupid.
    4. Re:My post by PhxBlue · · Score: 5, Informative

      No, it does not, but thank you for displaying your ignorance of software engineering principles. A defect is not just a bug; rather, it's a bug that has been found, documented, and fixed using a software engineering process. Not all defects are fixed every time a piece of software goes out the door--think of triage. Is the fact that the buttons render 15 pixels apart instead of 14 going to break the software when it goes out to market?

      The "bugs" referred to in the article are software issues that haven't been found, which is why the article warns developers not to assume that "zero defects means zero bugs."

      --
      !#@%*)anks for hanging up the phone, dear.
    5. Re:My post by tb3 · · Score: 5, Insightful

      Um, crap. 'Zero Defects' means 'Zero Defects'. If you mean, 'An acceptably small number of defects', then just say so. I still say it's Microsoft double-speak.

      --

      www.lucernesys.comHorizon: Calendar-based personal finance

    6. Re:My post by heinousjay · · Score: 3, Funny

      The quote is correct, but only for certain degenerate values of correct. You have to get yourself deep into managerspeak before something like that can be accepted with a good conscience.

      Caveat: I am a developer, and I am aware that the only software that has zero bugs is unwritten software.

      --
      Slashdot - where whining about luck is the new way to make the world you want.
    7. Re:My post by tlhIngan · · Score: 5, Funny

      I never thought "too much money on hand" is a problem, at least to me. It usually is the other way around.

    8. Re:My post by TopShelf · · Score: 5, Insightful

      Too bad you have to go AC just to say something good about Microsoft!

      You certainly bring up a good point, though - there's a fine balance before working on a product until it's completely flawless (by which time it will be obsolete), or rushing a product that solves today's problems to market before it's completely bug-free. Corporations, naturally, have strong motivation to getting the product out quickly, so as to take advantage of market opportunities.

      --
      Stop by my site where I write about ERP systems & more
    9. Re:My post by jkabbe · · Score: 5, Insightful

      Yes, but that "problem" is generally just the previous release :D

    10. Re:My post by Anonymous Coward · · Score: 4, Interesting

      This one has less to do with development, and more with project management and budgeting.

      Why do most open sources get started? Because we can. Sometimes, as that was the case with GCC, the project was started because it was needed, but most of the time it's just for fun. Essentially GCC is a great software product - because it solved an existing problem. By this definition Visual Basic 4 is also a great product, if your problem was building GUIs quickly. The internal quality of the product varies, however.

    11. Re:My post by PhxBlue · · Score: 3, Insightful

      Wow, your use of the language is almost as much fun as Microsoft's. Bugs, defects, software issues?

      That's what I said. The article's intended audience is professional developers and software engineers, which evidently does not include you.

      That means every piece of software has an infinite number of bugs, by your definition.

      Oh, nonsense. Software would have to have infinite complexity to have an infinite number of bugs. Now you're just blowing smoke.

      --
      !#@%*)anks for hanging up the phone, dear.
    12. Re:My post by mcb · · Score: 2, Interesting

      I assume it means that canoes are light and able to be carried around. As far as I know this was their purpose, since Native Americans had to walk between rivers, carry the canoe past some rapids/waterfalls, etc.

      I think his point is, software's purpose isn't to run on multiple systems, but to work correctly and solve a problem. So wasting time making it portable only prevents you from releasing it on time. Certainly an arguable point, since portable software is very useful, but I see his point of view. It's easier to develop a quality application if you are focusing on just one platform.

    13. Re:My post by arrogance · · Score: 4, Informative

      How the parent post got +5 I have no idea....

      Actually, much of the rest of the world DOES believe that "Zero defects does not mean that the product does not have bugs". Emphasis in quotations mine.

      Definition of Zero-Defect. "an aspect of total quality management that stresses the objective of error-free performance in providing goods or services"

      Six sigma's take on Zero Defect that states: "A practice that aims to reduce defects as a way to directly increase profits. The concept of zero defects lead to the development of Six Sigma in the 1980s."

      Here's an explanation of why people are confused about the subject. Yes, it's an M$ site.

      10 rules for ZDSD: "Not to be taken as meaning 'bug-free,' Zero-Defect Software Development (ZDSD) is a practice of developing software that is maintained in the highest quality state throughout the entire development process."

    14. Re:My post by Hognoxious · · Score: 5, Insightful
      Microsoft is good at it as each product that goes out the door can generally be qualified to solve at least one problem.
      Solving problems isn't hard. Solving them without creating worse ones is.
      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    15. Re:My post by DerWulf · · Score: 4, Insightful

      Yeah, out of context this quote doesn't make sense. Just like a lot of 'facts' in moores movies. Reading the sentence before, it actually means 'zero defects for this milestone'. So you got a milestone that says 'additional features available, existing features pass all test cases'. For the logically impaired this means: defects in new features a-ok, defects in prior features no-go.
      I can't help to think that you have no-clue(tm) and are trying to hide it by mixing with the oss/developer crowd since expecting perfectness at every milestone can't come from extensive IT expierience.

      --

      ___
      No power in the 'verse can stop me
    16. Re:My post by cabazorro · · Score: 2, Funny

      I guess If a definition confuses people then..the definition sucks!
      No wait.
      "The Zero Defects definition has "Zero Defects""

      --
      - these are not the droids you are looking for -
    17. Re:My post by MarkGriz · · Score: 4, Insightful

      Sure, many Microsoft products solve a particular set of customer problems. Yet the same products can and often do create a whole set of new problems (maybe you missed this story)

      To me, there is more to "great software" than solving one set of problems. It is solving them well, and well... if you create more problems than you solve, I'm sorry but that isn't "great software".

      Yes, I use alot of Windows software, and no I'm not a Linux zealot (love Knoppix though). With the exception of IE (which I abandoned long ago), most Microsoft software I use (Office, Outlook) is "good enough" but certainly not great.

      --
      Beauty is in the eye of the beerholder.
    18. Re:My post by Alan · · Score: 4, Insightful

      I mean no disrespect, but I'm going to guess you've never been a software developer. If you were you'd know that every piece of software has bugs and issues, regardless of the language you use to describe them. In a perfect world internet time would stop while you developed your programs and you'd be able to work for as long as was needed to fix all the bugs, issues, and defects and produce a "perfect" program on time and on budget.

      In the real world this doesn't happen. Deadlines slip, and if they slip to far management and / or devs have to decide what are the most important things to fix. Sometimes this means that documentation is left incomplete or with spelling errors, sometimes it means that if you click foo, bar, baz, while spinning on your right heal and alt-ctrl-hyper-meta-shift-clicking on the about box the program will crash or throw an error, and sometimes it means that spellcheck will be disabled until version 1.1 of the product. That's how development is, or a least in my experience.

    19. Re:My post by Oligonicella · · Score: 5, Insightful

      Bullshit. I develop software, and have done so since '72. "Zero defects" is an absolute statement. One can wiggle all one wants, redefine the meaning of "zero", or redefine the meaning of "defects".

      Still bullshit. A bug is a defect.

    20. Re:My post by Decaff · · Score: 4, Interesting

      Essentially great software is the one that solves customer's problem. Microsoft is good at it as each product that goes out the door can generally be qualified to solve at least one problem.

      Microsoft is good at providing solutions to problems that the customer does not have, and providing features that the customer rarely if ever needs. Microsoft is really great at marketing, which often consists of convincing managers that they have (imaginary) problems which can only be solved by MS software.

      And, what about problems that Microsoft deliberately creates, which can only be solved by their software? Remember how they sabotaged Windows so that it would not run with a competitor's version of DOS? Exactly what customer problem did that solve?

    21. Re:My post by NanoGator · · Score: 2, Insightful

      "Yep, Microsoft double-speak in action. Here's another great example, "Zero defects does not mean that the product does not have bugs" Well, to the rest of the world it bloody well does!"

      In a QA sense, a defect is a problem that is found as opposed to a defect that exists. For example: If Clippy doesn't give the right response to the word "Hamdingers", but nobody tests for use of the word "Hamdingers", then a bug exists but not a defect. It is not a defect because it hasn't been reported. He meant that all the tests are passed, not that all bugs are found. (He did explain this, btw.) This is not double-speak.

      Somehow I doubt this particular topic would have come up if Linus had been speaking.

      --
      "Derp de derp."
    22. Re:My post by danheskett · · Score: 4, Insightful

      The reason it is parse down to a finite level is that "issue" is a generic term - and that's what we want

      I am a developer. I have to track issues with my code. I have a single database to track feature requests, problem reports, bug reports, enhancement requests, and general suggestions. Each of these is referred to as an "issue". I frequently change an issue from being bug report to being an enhancement request. For example, "The software is broken because it won't rotate to 37 degrees. It will only rotate to 90, 180, or 270 degrees!".

      This that a bug? The user reported it is a bug. Does that make it a bug? Is the software defective? Or is that a feature that needs coding?

      Bug doesn't sound bad to anyone who knows something about software development. "Defect" sounds bad to just about everyone. Issue is used because it is vague, and that is often what is called for.

      Microsoft may be a marketing company, but one that happens to be the world's largest and most profitable seller of software.

    23. Re:My post by NanoGator · · Score: 5, Informative

      "Wow, your use of the language is almost as much fun as Microsoft's. Bugs, defects, software issues? ... We're talking semantics here, not methodology, because Microsoft is a marketing company, not a software company."

      Microsoft isn't 'marketing' here. It's one engineer talking to an audience other engineers. He is using the proper terminology (bugs, defects, issues) to describe what's going on here, just like the QA people do in just about every software company.

      You're confused because you don't understand the nuances of the terms used. That's okay, I wouldn't have either before I worked in QA. That doesn't mean that MS is intentionally trying to confuse you. It only means that you need to be a little more open minded. I'm not saying this to be a jerk, but rather because you're attacking everybody's rebuttal instead of understanding that there really is a difference between the terms.

      Here is how I understand the terms. I may have them a little off, so correction is appreciated. My work in that department was informal at best.

      Bug == The code was just plain written wrong. 2+2=5. Sometimes this term was used to describe unexplained behaviour.

      Software issue == The software does exactly how it is designed, but it creates an unexpected problem. "Automatic update auto-installs Windows updates every single evening. This is great! Unfortunately, some of them require a reboot, and the user either has to live with the imminent reboot or not getting the updates eveyr night."

      Defect == Problem that has been reported. "Defect #32516: There is a typo in the about box, Windows was spelled with an L."

      Yep, 3 distinct terms.

      --
      "Derp de derp."
    24. Re:My post by bicho · · Score: 4, Insightful

      Oh, please.
      By that deffinition, there is a lot of "great doftware" out there. And almost not bad software.

      Good Software does what marketing says it does, correclty and as expected.

      Great software is good sofware plus its simple to use and does things that you didn't expect it to do but that come in handy, while not annoying the hell out of its user.... more or less

      just my huble opinion.

      --

      errera hunamum ets
    25. Re:My post by arrogance · · Score: 2, Informative

      The phrase is not generally meant for customers. It's for developers, testers, and project managers: the entire development team. It has nothing to do with marketing. Yes a USER might become confused. A developer that has read the links posted and understands them will understand the difference.

      Of course there should be a balance between development time and squashing bugs, and ZDSD takes that into account. Read the above links. Read Steve McConnell, Rapid Development, PP.69-71: a 95% defect-removed rate appears to be optimal from the perspective of schedule, effort, and user satisfaction. Removing defects EARLIER IN THE PROCESS is the goal, a goal which also reduces cost, user satisfaction, and schedule. Reworking a requirements defect which has made it to production costs 50 - 200 times that of reworking the problem DURING the requirements phase. There's hard data on this from 1988 and probably earlier: 60% of all defects exist at design time. So again, we're talking about DEFECTS, not "bugs". A wrong requirement isn't a "bug". The rate chosen will also depend on the application: a nuclear power plant should have a different defect rate than Joe Six-Pack's personal web page.

      To make the point: the concept is aimed at those PRODUCING a product, not those CONSUMING it. Yes, those that use the term to sell to people who won't properly understand the term shouldn't do so. A DEVELOPER should understand its context in the SDLC.

    26. Re:My post by gurps_npc · · Score: 4, Insightful
      Why do people think others should "let it go????"

      Would you tell that to a holocust survivor? Someone that lost a spouse in the twin towers?

      Yes, these Micorsoft's crimes are less important than that.

      But that does not change the fact that they did it.

      Look, every unrepentent criminal that gets caught goes through the following stages:

      1. Denial - (I didn't do anything wrong)

      2. Deprecation - (It was just a little thing)

      3. Amnesia - (Forget about it, didn't I apologize... just let it go.)

      SOME criminals have a 4th stage ... admittance, repentence. Microsoft has NEVER done this. They repeatedly commit multiple crimes and when judges try and punish them for it, they complain and show their cash and expect to be given minor punishments to keep their employees working. Microsoft has repeatedly used illegal methods to put more people out of business then they employ. They weasel there way out stuff. Their products are not superior except where they sabotage other people's products.

      If they were 1/2 as good as they think they were they would not need to do the sabotage. Why should anyone let it go? That is stupid. We should never forget, so that when they try to commit more crimes we will be for-warned and pre-pared for their attempts.

      --
      excitingthingstodo.blogspot.com
    27. Re:My post by ezavada · · Score: 4, Interesting

      I would have to disagree.

      Too much money can lead to throwing more resources at a problem -- usually in the form of buying products or adding more engineers. Bought products rarely just drop right in to what you've been building, so often much time is lost learning the product and adapting it to the rest of your system. More engineers increases communication burdens. Worse still, these engineers are often hired quickly, so they aren't as carefully screened for compatibility with the rest of the team and they aren't easily aculturated to the team's way of doing things.

      On the other hand, when you can't just throw tons of resources at the project, you have to apply serious creativity to solving the problem in a way that doesn't cost too much. Some really great software gets built that way.

      Of course, too small a budget is a problem too. But the defense against that is fairly straightforward. As a PM, make it clear that the project can't be done without at least X resources. The too many resources problem is harder to see happening, because you are spending all your time managing them.

    28. Re:My post by augustm · · Score: 5, Insightful

      Does every piece of software have bugs?

      Does Knuth's TeX program have bugs? He will
      send you a cheque if you find one

      TeX was designed, then implemented. It works

    29. Re:My post by Keeper · · Score: 2, Insightful

      There is no such thing as "zero defects" in a large software project. There is only a concept of "zero known defects." Every time you make a change to your code, you risk introducing an unknown defect. As you approach the end of the development cycle, getting down to zero known defects is actually detrimental to the quality of the sofware, as unknown defects are introduced which may be far worse than the defects you fixed. And as you're at the end of the development cycle, test doesn't have enough time to find those defects so your product ships with poor quality.

    30. Re:My post by danheskett · · Score: 2, Insightful

      Microsoft has repeatedly used illegal methods to put more people out of business then they employ.
      That has never been proven, or attempted to be proven. It's your speculation.

      They weasel there way out stuff.
      They use the legal system.

      Their products are not superior except where they sabotage other people's products
      I disagree. I believe that in many many categories Microsoft software is superior to any other widely available offering. But's besides the point. There is no law against selling mediocre software. MS has always targed that ripe middle class of software users. The 90% that make up the majority.

      Why should anyone let it go?
      You should let go the case you mentioned because:

      1. It was over a decade ago.
      2. The people making the claim settled the case for many many many millions of dollars.
      3. The act was unique.


      You don't have to forget it, but it is irrelevant when discussing MS's current engineering practices.

      And it makes you look petty.

    31. Re:My post by msobkow · · Score: 2, Insightful

      No, that is functional software.

      Great software solves the customers problem (functionality), is light weight enough to serve their needs for a few years (scalable), does not crash nor lose data (reliable), addresses the problem before it gets out of control (timely), and provides more benefits than it cost (ROI.)

      Microsoft has never delivered a "great" piece of software, and never will. Their model is not based on "great" software, it barely qualifies as meeting one out of five in most cases. Their model is based on "deliver overpriced crap, then charge more for the upgrade."

      To me that is called "fraud" and "theft", not a "great" product.

      --
      I do not fail; I succeed at finding out what does not work.
    32. Re:My post by BroncoInCalifornia · · Score: 2, Insightful

      A bug is a bug is a bug.

      or ...

      A defect by any other name is still fucked up!

      --

      Religion is the main cause of atheism.

    33. Re:My post by mcrbids · · Score: 5, Interesting

      You certainly bring up a good point, though - there's a fine balance before working on a product until it's completely flawless (by which time it will be obsolete), or rushing a product that solves today's problems to market before it's completely bug-free.

      I've found that the "release early, release often" philosophy works very nicely, if you make it painless to update.

      When I wrote my most recent, decent-sized project, I wrote it in mind with built-in updates so that with almost no effort whatsoever, I can issue updates and patches and the program will notice, when online, that these new patches exist and offer to download them!

      Time to issue a new release of the software (for me) now is about 15 minutes, including time to upload the files to the server, and configure the server to publish the updates to the client software packages.

      I pay *alot* of attention to backwards compatability - a new update will not break data files or expected functionality from older versions, and there's a fairly elaborate document format version management and error detection system in place to ensure that the rules aren't broken.

      It's not atypical for me to discuss a bug with a user at 12:00 in the afternoon, and have the bug fixed, patch file published, and the user using it by 3:00 PM.

      Along with the patch distribution, we also back up the user's data files (in an encrypted form) so that if their computer crashes, gets stolen, whatever, we have backups of all their valuable data. They press a button and have all the data downloaded back onto their computer in minutes.

      The users LOVE IT!

      We're no Microsoft, but we have around 500 end-users using our niche-market software.

      --
      I have no problem with your religion until you decide it's reason to deprive others of the truth.
    34. Re:My post by Beryllium+Sphere(tm) · · Score: 4, Insightful

      Fred Brooks covered this in The Mythical Man-Month. A budget gives you the ability to say "no" to the next desirable feature. Without a budget, the development process is limited only by the imagination of the engineers, which is infinite if you've hired the right people.

    35. Re:My post by danheskett · · Score: 4, Interesting

      1. I referring specifically to the part about them putting more people out of business than they employ. That is not proven, and has never been argued in court. They have comitted infractions and crimes and torts, and have dealt with them all.

      2. Your descrption of what happened is false. The Justice department didnt just decide to drop the case. You made that up. The choose to not pursue a breakup order - that's a remedy - after losing several appeals. The political system is legal. FYI.

      3. Sadly, it is you who makes no sense. You claim MS superior software only when sabotaging someone else's software. That is absurd and provably false. However, it is irrelevant. 4a. Time is valid argument. Do you hold Volkswagen of 2004 responsible for actions of Volkswagen of 1944 in moral sense? I don't. It is reasonable to expect that after a given period of time things change within a corporation. This is true at Microsoft. They have a major management shakeup since the anti-trust trial. Or did you not notice that Bill Gates was ousted as CEO and President of Microsoft?

      4b. Settling is a perfect reason why you should let it go. They admitted liability, paid a settlement, and that's it. The case cited has no relevance on today's project management techniques. None whatsoever.

      4c. The act WAS UNIQUE. Microsoft did not sabotage any other version of DOS to be incompatible with Windows. Just one - DR-DOS. They did not cause other purposeful incompatibilies with Windows 3.x and alternate DOS's. It's just that simple. If you have other cases to cite, than speak up. What you seem to be suggesting is that comitted similiar crimes with other products and software makers. But the other cases you will likely cite are vastly different. The Java situation, the Netscape scandal, etc are TOTALLY DIFFERENT ACTS, falling under TOTALLY DIFFERENT legal definitions.

      5. Of course my point was good. Microsoft today - both managerially and technologically - is completely different from the company it was in the early 1990s.

      In conclusion, the statement "Let it go" demonstrates ignorance, complacency and stupidty
      Hardly.

      You are basically saying it is OK to commit crimes. A better statement would have been.
      I am saying that as critique of Microsoft bringing up a case that is over 10 years old, references completely obslete products, involves defunct vendors, was settled in court, and which is unrelated to anything at all to do with the article is a crappy proposition. It shows a general status of being out-of-touch with the situation. It shows a patetically reduced sense of scale. It shows that you equate an action that was eventually determined to be worth $23M to be the only deciding factor in the quality of a company that employes 50,000 and has an annual revenue in the high tens-of-billions.

      "That crime has been paid for and irrelevant to this discussion". That would have been accurate, intelligent, fair.
      If you think it's irrelevant to this discussion, why did you feel compelled to post?

    36. Re:My post by raduf · · Score: 2, Interesting

      Yes, I use alot of Windows software, and no I'm not a Linux zealot (love Knoppix though). With the exception of IE (which I abandoned long ago), most Microsoft software I use (Office, Outlook) is "good enough" but certainly not great.

      First a bit of backgdound info about me: I've been sysadmin at my highschool some 10 years ago and all network/server stuff I did was linux. I'm writing this from windows, but I dont't think since that time I've ever been without a linux partition on my computer and ocasionaly I've been without a windows one.

      And I'd like to ask you: why do you not consider MS Office to be great software? I admit it's a strange question, and I'm ready to admit that the latest versions brought little that the common user could use, but as a whole they solve a HUGE problem. Don't take my word for it, think for yourself of the enormity of small tasks one program must perform to edit an average document. There is a reason there are so few competitors in this field and that is it's damn hard to make a better software then word 97.
      Word and excel are amongst the best in their domain as we speak and at times in the past have been by far the best, and are also probably the most used programs in the world. And if the competition have been capable of making better they would have, because office programs until recently have been many things but not cheap.

      My point is that however we may not like MS business practices we achieve nothing by saying word sucks because it doesn't make coffe. Good software remains good software and all we can and should to is learn from it and try to make better. And no, I didn't read the article yet but I'm going to. If it's bullshit then so it is, but sure as hell I'm not going to ignore it just because it has something to do with bill gates.

    37. Re:My post by rcamans · · Score: 2, Insightful

      Yes, if your problem is trying to figure out a way to make money.
      Anti-virus writers, anti-spyware writers, etc certainly are making money off of M$ customers.
      Let's all jump on that cash cow.

      --
      wake up and hold your nose
    38. Re:My post by Gleef · · Score: 2, Interesting
      Raduf asks:
      why do you not consider MS Office to be great software?

      I know you didn't address me, but I share similar views to the person you are querying, so I thought I'd take a crack at answering.
      1. Too slow: Office drags; it takes forever to load for something that's supposed to be useful for, say, writing a quick letter.
      2. Forced obsolescence: The moment a new version comes out, the file format changes in incompatible ways. Next thing, someone is sending you documents in the new .doc format, and it's your fault you can't read them.
      3. Too large: Office is huge, it demands tremendous requirements for both hard drive space and memory space.
      4. Too inflexible: Office is designed around a certain way of doing things. If you don't like that way, you need to learn to adapt. Good software adapts to my needs, not the other way around.
      5. Too WSYWYG: Very often I deal with a set of content (eg. a book manuscript) that needs to be presented in a variety of ways (eg. manuscript form, a more readable form, an illustrated mockup). This content needs to be maintained and updated as well, then presented again in the variety of ways. Word is horrible at this; you need to either seperately maintain a file for each presentation, or maintain one file and go through all the convolutions to produce each presentation each time. I need tools that keep content separate from presentation.


      I could continue (eg. its word count algorithm doesn't accomodate professions where they have to count words in specific ways), but I think you get the point. Word is great if you want Word, Excel is great if you want Excel. Neither of them are good if you want a tool for crafting words or data in a professional manner.
      --

      ----
      Open mind, insert foot.
    39. Re:My post by Decaff · · Score: 2, Informative

      Check your facts if you tried to run older versions of MS-DOS and PC-DOS you would get the same error message.

      They were not functionally equivalent to the versions of DOS that ran Windows 3. DR-DOS was functionally equivalent (many considered it a better DOS, because if its improved memory handling). The only reason that DR-DOS would not run Windows in the situation being discussed was because of Microsoft put in code to check for the competitor's version of DOS.

      The difference between this, and not being able to run on simpler versions of DOS is, of course, obvious.

  2. Enrapture the customers by ideonode · · Score: 5, Funny

    Enrapture the customers

    Shouldn't that be shrink-wrapture the customers?!

    1. Re:Enrapture the customers by amightywind · · Score: 4, Funny

      Enrapture the customers

      He means to say "capture the customers."

      --
      an ill wind that blows no good
  3. Professionalism by Some+guy+named+Chris · · Score: 4, Interesting
    Generally, the whole article can be summed up as this: "Act like professionals". It's
    • Be Honest
    • Communicate
    • Put in an honest days work every day
    • Simple is good
    1. Re:Professionalism by mmusson · · Score: 5, Interesting

      Isn't that the point though. Scott Adams has observed that people inside most companies act in very disfunctional ways because most people *are* disfunctional.

      The real problem is that we expect people to be more rational and logical just because they are at work and that is not a valid assumption.

      --
      SYS 49152
    2. Re:Professionalism by Anonymous Coward · · Score: 2, Interesting

      If that is all you got out of the article, you really missed a whole lot.

      Yes, "communication" was a central theme to his article. However, he outlined critical points where communication often fails, and where small fissures most often become large cracks. In particular, the "make sure everyone has a shared vision" really hit home. When I had my first job working on a large enterprise webapp, I had no idea what it was supposed to look like. I was lost... and it hurt me bad for awhile. Eventually I saw what other people were doing, and it came together. We had REALLY tight deadlines, and the company had a "sink or swim" type attitude about things so it was really rough at first. That project is now about two years late (it was supposed to be two years long to begin with). We never did nightly builds, our QA process consisted of us programmers swapping hats and just banging on the system haphazardly( they were too cheap to hire a QA guy). The project is late, and the company is struggling. But if you asked the management or the guys on the team, im sure they would say that their level of communication was good.

    3. Re:Professionalism by xanadu-xtroot.com · · Score: 4, Funny


      Humans were not meant to sit in cubicles all day long, Michael.

      --
      I'm not a prophet or a stone-age man,
      I'm just a mortal with potential of a super man.
  4. Instant Slashback by LittleGuy · · Score: 2, Informative

    Compare and Contrast "21 Rules" with The Mythical Man-Month Revisted.

    --
    Mod Karma -1: I sed bad wurds. If I cep my mouf shut, I wud be at riyses.
  5. Worth considering... by jamie812 · · Score: 4, Insightful

    While Microsoft doesn't consistently put out the best products they're capable of, I don't think anyone would stoop so low as to say they put out the WORST product out in the market. As such, it's worth considering how they go about making their software, since it's a difficult job, at best, to get a group of developers to deliver anything. Any tips we can take away as a collective whole would be helpful to us in our larger goals.

    1. Re:Worth considering... by Pedersen · · Score: 2, Insightful

      I don't think anyone would stoop so low as to say they put out the WORST product out in the market


      No, those honors belonged to Rational Corporation (a company whose products were so unstable that it made Windows 95 look good) and IBS, the makers of SBN, the most foul program to ever disgrace the software industry.

      --

      GPL made simple: What was my stuff is now our stuff. If you improve our stuff, please keep it our stuff.
    2. Re:Worth considering... by gyratedotorg · · Score: 5, Funny

      I don't think anyone would stoop so low as to say they put out the WORST product out in the market.

      well, ill say one thing. microsoft's windows me was definately one of the best operating systems around when it came to drawing white text on top of blue backgrounds.

      --
      Gyrate Dot Org - "Where high-tech meets low-life"
    3. Re:Worth considering... by gillbates · · Score: 5, Insightful

      I don't think anyone would stoop so low as to say they put out the WORST product out in the market.

      I don't want to get into a flame fest, but since you claim they don't produce the WORST product in the market, and since Windows is such a large part of their revenue, I challenge you to find:

      • An OS that is less secure than Windows.
      • An OS that crashes more frequently than Windows.
      • An OS with a EULA more restrictive than Windows.
      • Software which has slipped the scheduled release date more often and by a larger margin than Windows. IIRC, Microsoft hasn't released on OS on time in the last 10 years.

      Please limit your responses to commercial vendors. Naturally, we'll exclude non-profit and free-software vendors because they couldn't possibly have the financial resources necessary to produce quality software.

      Why is it that everyone looks to Microsoft for advice on code quality when, after 20 years of writing operating systems, they still can't keep it from crashing? Microsoft's genius lies not in their code quality, but in their marketing department . A study about how Microsoft markets their software would be much more enlightening; their code quality is nothing to which we should aspire.

      --
      The society for a thought-free internet welcomes you.
    4. Re:Worth considering... by GileadGreene · · Score: 4, Insightful
      those honors belonged to Rational Corporation (a company whose products were so unstable that it made Windows 95 look good)

      Which I've always thought was exceedingly bad advertising. Either

      1. They don't use the Rational Unified Process (if not, why not?) or
      2. They use the Rational Unified Process (or parts thereof) and still managed to produce a bad product
      If even the people who are touting some magic software process can't use it to generate decent software then what hope is there for all the other software devs out there that have even less familiarlity with the process?

      Process is all well and good, but unless it produces good product, it's pointless. By the same token, once I see the folks at SEI use CMM or their "Personal Software Process" to actually produce a decent piece of software I might actually be convinced that said processes are worthwhile. Until then, it's all just hot air.

    5. Re:Worth considering... by gillbates · · Score: 2, Interesting

      Microsoft has consistently impugned that non-commercial software quality can't possibly match the quality of commercial software because of the financial incentives and resources of the commercial software model.

      So, according to Microsoft, there's no point to comparing their code against free/OS, because it couldn't be of better quality, right? So, for the sake of fairness, let's compare MS against their corporate peers:

      They're still at the bottom of the software quality barrel.

      For a commercial software vendor, their code quality comes in dead last. If we included free/OS, then they could use some of those abandoned projects to at least improve their credibility...

      --
      The society for a thought-free internet welcomes you.
  6. Dates by canfirman · · Score: 3, Funny
    7. Never trade a bad date for an equally bad date.

    I guess that's proof that M$ programmers actually go on dates!

    --
    It is not our abilities that show what we truly are... it is our choices.
    1. Re:Dates by andhravodu · · Score: 2, Funny

      ah, so that's why the anti-MS tirade on /. I am starting to understand it all now. i'm such a genius

  7. #11: Build it every day by tcopeland · · Score: 4, Interesting

    11. If you build it, it will ship.
    Conversely, if you don't, it won't. The product should be built every day, along with all setup scripts and on-line help, in a public place, where QA can conduct appropriate assessment of daily status, and the entire team can observe progress or its lack. This is the single biggest indicator that a team is functional and a product being developed.

    So true. And "in a public place" is definitely an important part of that - when a build fails, everyone should be able to see the compilation error.
    1. Re:#11: Build it every day by turgid · · Score: 2, Funny
      So true. And "in a public place" is definitely an important part of that - when a build fails, everyone should be able to see the compilation error.

      Another nice technique is to send a derogatory email to the person responsible cc'd to the entire company insulting his/her sexuality, ethnic background, football team, choice of clothes and lack of education and haircut and anything else you can think of.

  8. By chance... by artemis67 · · Score: 3, Funny

    does it have anything to do with "an infinite number of monkeys"?

  9. Re:Microsoft develops software by justkarl · · Score: 2, Funny

    Why do you think new XP updates come out all the time?

  10. Re:Microsoft develops software by strictnein · · Score: 4, Funny

    With its eye's closed...

    Come on... you got the correct form of "its" but you screwed up on the plural form of "eyes"?

    You can do better...

  11. Re:Microsoft develops software by Mz6 · · Score: 4, Interesting
    With its eye's closed...

    If that's the case, just wait until someone comes along and open them. Microsoft will be the single biggest software corpora... err wait a second.

    In all seriousness though, they are actually starting to open their eyes now and realizing that security is going to play a huge role in their continued success to develop software. I think they will still continue to be on top so long as they can evolve. So far they are beginning to... Let's look.. First was a more secure approach to computing, now they are starting to get more serious about searching techniques...

    --
    Hmmm.
  12. Re:They develop it? by kingstalemuffins · · Score: 2, Insightful

    To be fair, not all MS software sucks ass. I, for one, prefer Word over any of the open source alternatives for its quick load times, functionality, and compatibility. Yes, the compatibility is only an issue because of MS's shady business practices, but we have to accept the fact that if everyone uses a format, we have to be compatible with it.

  13. Errrmmm... by MancDiceman · · Score: 3, Insightful

    the whole area of how you actually bring together a team and get them to successfully deliver a project on time, is one worthy of a lot of attention, if only because it is so hard to do

    Not being funny, but can somebody point out the last time Microsoft actually brough a team together and managed to deliver a project on time. Every major OS release, every service pack, every single project they have ever produced seems to have been delayed. They are the antithesis of "release early, release often" but then they having paying customers as opposed to us guys...

    Anyway, call my cynical, but I think I can find better sources on how to program than the Microsoft team.

  14. Microsoft master plan! by Anonymous Coward · · Score: 5, Insightful

    How Microsoft develops software:
    (1) They notice a great software idea by another company.
    (2) They ignore it.
    (3) They realize it's big.
    (4) They copy it.
    (5) They "bundle" this software in the next version of Windows.
    (6) They eliminate the competition using their desktop monopoly.

    Number (5) can be substituted by "They buy the company".

    Microsoft doesn't develop software, they copy or buy.

    1. Re:Microsoft master plan! by mingot · · Score: 2, Insightful

      With the exception of #6 (and a slight modification to #5) this sounds a bit like the open source development model to me.

      And really, what's up with all of this bitching about MS bundling and eliminating the competition? If Linux had 90% of the market these same companies would STILL be out of business.

      PS. Go ahead and mod this as flamebait, because given the fact that I know just how irritating it will be to the zealots IT IS. But its still the truth and no amount of teeth gnashing is going to change that.

  15. Re: on what? by Mz6 · · Score: 4, Insightful
    When was the last time Microsoft actually delivered a product on time?

    When was the last time that a certain game company released their software on time? Or for that matter, a lot of game companies these days?

    --
    Hmmm.
  16. ooo by MagicM · · Score: 2, Informative

    Quote:
    12. Portability is for canoes.

    'nuff said.

  17. Portability is for canoes? by Hutchizon · · Score: 5, Interesting

    I find point 12, "Portability is for canoes" either self-serving to Microsoft interests or an interesting insight into their thinking process.

    I fight this idea all the time in terms of supporting more than just IE on a web site's design ("it has 95% market share, etc"). I've seen it in the past on supporting Macintosh platforms, and now I observe it in the industry as a whole in driver support, applications, games, etc., when it comes to Linux.

    Maybe I'm taking it too far. Portability can be hard to manage and achieve, but somehow I think if this was coming from the purveyor of a non-dominant OS platform player it would sound a little different.

    Overall, I liked the article. Nice to see some more analysis of success factors in project management.

    1. Re:Portability is for canoes? by BlackSol · · Score: 2, Interesting

      Portability takes time and money to implement.

      If its not an immediate requirement from your customers, including it in your estimates/costs is overcharging them. Good design makes porting much easier, and consideration should be taken, however if portability is not a requirement, simplicity of design and speed/cost of implementation should take precidence.

      This has nothing to do with locking in customers, or who wrote the article, it has to do with economics of commercial software development. Open source, free (price), software that is being developed for free by the community has no formal customer and no formal specification, thus portability should be a requirement to ensure flexibility and the development situation supports the added complexity and time required (no budget, no time to market concerns).

      --
      $sig=$1 if($brain =~ /idea\s+(.*)/i);
    2. Re:Portability is for canoes? by iwadasn · · Score: 2, Interesting

      I agree totally. Portability isn't about capturing that extra 5% of the market. It's about having code robust enough that it isn't broken by every little thing.

      If you have good portable code, it'll still work in 5 years, and it might still work in 10 years with little effort. If you don't, it won't.

      Portability is always thought of as spatial portability (port to different platforms today), it should be thought of as temporal portability, the ability to have it work on platforms in the future.

      Software doesn't rot out like an old buick, do you really want to rebuild it every couple of years? No, then do it right the first time, and get that extra 5% as pure gravy.

    3. Re:Portability is for canoes? by FuzzyBad-Mofo · · Score: 4, Funny

      Say, what kind of music do you play at this bar?

      Oh, we have both kinds, Country and Western!

  18. The 3 rules of thumb for Shipping Great Software by XeRXeS-TCN · · Score: 4, Insightful
    1. Release Early
    2. Release Often
    3. Listen to your customers

    I think Linus has proven the effectiveness of that one, and Eric S. Raymond happens to agree with me ;)

  19. Zero defects my ass by rcamans · · Score: 2, Insightful

    Zero KNOWN defects most probably means inadequate testing, poor quality control, or management that kills the messenger, so no one reports problems.
    NT 4 shipped with 65K defects?
    The only thing Microsoft never makes a mistake on is Billy Gates' take home paycheck.

    --
    wake up and hold your nose
    1. Re:Zero defects my ass by AKAImBatman · · Score: 4, Informative

      NT 4 shipped with 65K defects?

      I believe that was Windows 2000. It was a big deal because Microsoft was attempting to parade how stable and "Unix-like" Windows 2000 was. Allegedly. Scott McNeally responded by paying a bunch of bug exterminators to drive around a conference center where Microsoft was making some of its announcements about Windows 2000. Supposedly, the exterminators bugged out when it dawned on them why they had been payed to drive around.

    2. Re:Zero defects my ass by MarkGriz · · Score: 4, Funny

      "NT 4 shipped with 65K defects?"

      There were probably more, but they rounded down to avoid the "integer out of range" error in their bug tracking software.

      --
      Beauty is in the eye of the beerholder.
  20. People seem a bit hard on microsoft developers by 91degrees · · Score: 2, Insightful

    It's as though you people think that MS are the only people who write code that contains bugs.

    What rubbish. Every company produces buggy software. MS is actually one of the better companies. They actually have a quality control system and don't release software unless it's reasonably stable.

    Sure, you can say all you like about their monopolistic practices, but as far as basic stability goes, they're a lot better than most of their competitors.

    1. Re:People seem a bit hard on microsoft developers by jwthompson2 · · Score: 3, Interesting

      Who would be there competitors though?

      OS Market: Mac OS, GNU/Linux crowd, BSDs and proprietary Unixes.

      In that market no one believes that MS is the best and most stable game in town, just the easiest for the average PC using peon to use, but some studies indicate that Apple's UI is actually more intuitive; but with the hardware so expensive most folks just buy the cheapy PC.

      Productivity Market: Appleworks, OpenOffice/StarOffice, others?

      Well AppleWorks doesn't come close to resembling a real productivity sweet having used it myself and getting horrible headaches. OpenOffice is getting close to being as good as MS Office but there is a familiarity issue that stands in its way more than anything else, so I guess MS could be considered 'better' depending on how we define it.

      Server Accessories (Exchange, IIS, SQL): Apache, MySQL/PostgreSQL/DB

      Exchange is kind of nice and I am not aware of any really strong competitors to this but I am sure they are out there. Apache simply creams IIS on every point as a web server except maybe for lack of a GUI; but IIS is no where near as flexible, not even version 6. MS SQL is well featured but for thousands of dollars it should be. MySQL and the other OSS dbs out there are just as full feautered and cost a WHOLE lot less.

      I work with MS boxes at work, use nothing but macs and home and have a couple of BSD and LInux dedicated boxes and have to say that although MS software is as pervasive as STDs are becoming, it is nowhere near the optimal platform for much of anything except solitaire, but I prefer chess on my mac as it demands a bit more thought. But then again I do not comprise the segment that would be considered an 'average PC user.'

      --
      Even if I knew that tomorrow the world would go to pieces, I would still plant my apple tree. -Martin Luther
  21. Re:21 eh? by ch-chuck · · Score: 2, Funny

    that's the highest he could count with his shoes off and pants down

    --
    try { do() || do_not(); } catch (JediException err) { yoda(err); }
  22. The REAL story by revery · · Score: 4, Funny

    All we know for sure that is that when Microsoft needs a new product, Bill Gates goes into his High Tower of Closed Sourcery with 15 sheep, Steve Ballmer, a technology company with an established product, and an Enya CD.

    When he emerges, two months later, the new MS product is ready for market, the sheep have been trained as VP's, and the technology company is dead.

    --
    http://www.livejournal.com/users/gymbrall/

  23. What's with #6? by Paulrothrock · · Score: 4, Interesting
    Beware of a guy in a room.

    I do most of my good dev alone in a room. I even make deadlines! I used to work for someone who used to work at JPL in the 1970s managing software development. One developer would ride his Harley Davidson wearing a cape and goggles and lock himself in a room with the necessary hardware and ask that Twinkies and Coke be left outside the door. They didn't see him for a week, but the code was good. It was for the Voyager program, so we know it was good.

    There's a difference between not trusting an ex-frat boy alone in a room and a responsible software developer in a room. Treating everyone on a team the same just breeds discontent. If people work well alone and can be trusted to do so, don't make them waste their time in meetings.

    --
    I'm in the hole of the broadband donut.
    1. Re:What's with #6? by jkabbe · · Score: 3, Insightful

      Those people are good when they turn out wonderful code that works. But there exists the possibility that sometimes people like that will not turn out something that works. Or they will turn out something that works much later than planned. Locksing yourself in a room and not communicating doesn't make you a genius. And in a large project with tons of interdependancies you need to discover slips sooner rather than later.

      To use your example, what if this guy hadn't finished his code on time so it wasn't ready for the planned launch window? It's great that it worked out but many companies can't risk the possibility that it won't.

    2. Re:What's with #6? by Paulrothrock · · Score: 4, Interesting
      Well, opening the door or setting deadlines is good. i.e. "I'm going to check on your progress in three days."

      However, sending out an email saying "Everyone needs to meet and sing kumbaya to built group unity and get together on how this thing works" is stupid. Give me a task, let me do it, and if it doesn't work, fire me.

      Or they could adopt Unix Philosophy. If a program does one thing well and stores all data in flat text files, working independently on programs is easy, since the formats are agreed upon.

      --
      I'm in the hole of the broadband donut.
    3. Re:What's with #6? by BlackSol · · Score: 2, Insightful

      How is your software supported?

      How often do you re-invent the wheel? Has someone inside our outside of your company already made part of your job easier and you don't know it?

      Lack of communication (both formal and informal) may increase time to devote to development, but it will cost more is software reuse, more time troubleshooting, and make application support much more difficult (there's only one person that can fix that, and they are on vacation or quit etc...).

      --
      $sig=$1 if($brain =~ /idea\s+(.*)/i);
    4. Re:What's with #6? by RetiredMidn · · Score: 2, Insightful
      There's a difference between not trusting an ex-frat boy alone in a room and a responsible software developer in a room. Treating everyone on a team the same just breeds discontent. If people work well alone and can be trusted to do so, don't make them waste their time in meetings.

      The best team of developers I ever managed still warranted the advice to "beware of a guy in a room." Especially because these guys (they all happened to be guys) were so good, it was possible for any one of them to produce something arguably good and valuable, but which couldn't be used because the cost of incorporating it (in terms of integration and testing) would threaten the schedule. And it would be far more demoralizing to tell someone we couldn't or wouldn't deploy their cool work than it would be to point out ahead of time that it would have to wait for a better time.

      I didn't waste their time in meetings. I dropped by every couple of days and chatted about what they were doing, and describe how other (relevant) parts of the project were coming along and how all of it was going to pull together. More often than not, their very professionalism would cause them to adjust their efforts and do something differently than they might have if I left them alone for a couple of weeks.

    5. Re:What's with #6? by upsidedown_duck · · Score: 2, Funny

      ...ask that Twinkies and Coke be left outside the door. They didn't see him for a week...

      Beware of the bucket in the corner.

      --
      -- "Makes Little Debbie look like a pile of puke!" - Moe Szyslak
  24. The Whole Difference between Microsoft and Linux by Bandman · · Score: 5, Interesting

    6. Beware of a guy in a room.

    Linux was written BY the guy in the room.

    That's the whole difference in a nutshell.

  25. Microsoft imitates Rummy by schmaltz · · Score: 3, Funny

    "1. Don't know what you don't know.

    It is essential not to profess to know, or seem to know, or accept that someone else knows, that which is unknown. Almost without exception, the things that end up coming back to haunt you
    ..."

    Did anyone else think of Rumsfeld's infamous mindfart (for which he won a Foot in Mouth award) --

    "Reports that say that something hasn't happened are always interesting to me, because as we know, there are known knowns; there are things we know we know. We also know there are known unknowns; that is to say we know there are some things we do not know. But there are also unknown unknowns -- the ones we don't know we don't know."

    Eerie.

    --
    Big Daddy, Johnny, Burp, Aunt Zelda, Scott, Slurp, Big Momma ... where's Siggy?
  26. Scarcely news by Tim+Browse · · Score: 4, Informative

    I recognise most of these rules from here - note the publication date.

    Quite a good book. The things being said are good. The way they are said is terrible. Very poor writing.

  27. "Standards." Maybe you've heard of 'em...? by Crash+Culligan · · Score: 3, Insightful
    12. Portability is for canoes.
    20. Establish a shared vision.
    These two grate on my nerves, and for good reason.

    #12 claims bluntly that supporting something becomes so much easier when you only have to support it on one platform. From one perspective there's a certain truth to that, and from another perspective it's laziness. But contrast it with #20.

    #20 says that the idea has to be shared as completely as possible between everybody in order for everybody to help out as best they can to making the idea a reality.

    "Things become easier to support and test if they follow certain specific guidelines, and with a common implementation, everybody can follow a given idea better." Sure, it looks good on paper, and it makes a fine creed for developers, but with Microsoft, that's where it comes to a screeching halt. Because out in the real world:

    Hey, nice standard! Mind if we grab it away from you and run this way with it?

    It's both weird and wrong seeing people in Microsoft talking about ideas and commonality of vision when in practice the company as a whole so copiously defecates (both buttocks blazing, as it were) on any standards that they don't already have a headlock on.

    --
    You cannot truly appreciate Dilbert until you read it in the original Klingon.
  28. You are correct, sir by green+pizza · · Score: 4, Interesting

    I would have to agree with you on this. In my experience, portability takes more time but (generally) ensures quality. What breaks on Linux might not break on Windows, exposing a potental problem. I find more bugs in my code by porting than with any other bug-hunting technique. Many are minor and often don't even affect the user in that exact revision of the app. BUT, it's these little things that cause major problems down the road when I modify or change certain features.

    For a commercial example, look at Quake 3, I think Carmack's portability (Win32, Linux, MacOS Classic [and later, Mac OS X]) helped a great deal. Q3A was fairly lightweight for its abilities and ran decent on just about any platform with a decent graphics card. (Now we're getting into hardware details, but I digress)

  29. Breakdown by mfh · · Score: 5, Insightful

    1. Don't know what you don't know.

    Yes, and I would also add that feigning ignorance is much safer than feigning self-confidence, and it helps projects to thouroughly research information that is even considered known.

    2. Get to a known state and stay there.

    I disagree. I think we should accept that we are only ever in a state of the unknown, so that we may prepare for the worse. Don't stay in a state of the known, because then you are ripe for the unknown to come up and bite you on the ass.

    3. Remember the triangle.

    Resources, features and the schedule are indeed important, but I would also add that there are core features that must be adhered to in order to prevent disasters, which are not features, but critical systems. Sometimes companies like Microsoft will push for more and more features, when a much simpler system will work better and have stronger core competencies.

    4. Don't go dark.

    I would have to agree with this, but it could also be identified as avoiding feature creep by keeping it simple-stupid. Microsoft adds too many features that require a plethora of miniscule details in order to work, and that often throw off stability of the rest of the system in doing so. Going dark in some areas is going to happen, so I would put that you should go dark wisely, by accepting that at times in the project the team will be in a state of the unknown. Ensure that core competencies are structured correctly to accomodate individual feature additions without delays or growing instabilities. What it comes down to is smart planning and a lot of foresight, but even less features, but enough to get the job done.

    5. Use zero defect (ZD) milestones.

    I disagree. I think every milestone has to be understood completely for what it is, but it's got to be bug free or it's a fail, in my books. And you should understand the milestone failures along the way because that's part of team building. If you code up a module as one of your milestones and it has a few bugs, you have to track down why they are there and set that as a new milestone -- not skip to the next official milestone.

    6. Beware of a guy in a room.

    Read Donald Trump's book, How to Get Rich (2004). There is a part in there when Trump talks about a guy who is constantly late all the time, who isn't speaking with employees, and isn't working as a team member properly. Some employees start complaining, and Trump informs them to ask the guy if he needs his laundry picked up or a coffee or lunch brought to him. Trump reminds them that the guy started acting this way just a few months before a multi-million dollar idea was worked out, alone in his office. He says that whenever the guy acts like this, he's about to shake the company. You have to accomodate programmers like this too, and to do so, you can't be looking over their shoulder all the time. I think you should not beware of a guy in a room, but you should change your schedule to accomodate them, and ask for updates from time to time. You have to trust your people or it won't work.

    7. Never trade a bad date for an equally bad date

    I would agree with this, but if possible you should follow the Id Software motto, when it's done, instead, because only then will you reach the zenith of design and programming practice. Just don't take it too far like some of the other companies with games due out in the late/mid nineties that we're still waiting/not-waiting for.

    8. When slipping, don't fall.

    Duh.

    9. Low tech is good.

    Only if you're at Microsoft, because that's all you've got. *zing!* Seriously... the guy says, "A smaller effort is almost always more desirable than a larger one." Can I just say that it reminds me of the commercial with the underachievers? It hinges on putting forth a paced effort, not a minimal output. Sometimes you have to do some work.

    10. Design time at design time.

    --
    The dangers of knowledge trigger emotional distress in human beings.
    1. Re:Breakdown by richg74 · · Score: 4, Insightful
      "3. Remember the triangle."

      Resources, features and the schedule are indeed important, but I would also add that there are core features that must be adhered to in order to prevent disasters, which are not features, but critical systems. Sometimes companies like Microsoft will push for more and more features, when a much simpler system will work better and have stronger core competencies.

      I think the 'triangle' is one of those seductive things that is almost right, and therefore is an open invitation down the proverbial garden path. Fortunately, it's not hard to fix. Let's take the elements in order:

      • RESOURCES This is certainly one of the key things that determines the outcome.
      • TIME Time (or the schedule) is critical. To paraphrase Fred Brooks in The Mythical Man-Month, more projects have failed for lack of calendar time than for any other single reason.
      • FEATURES This is the one that is wrong. What it should be is product quality. This is where, IMO, Microsoft (and others) frequently go wrong, by assuming that more features => better. (Notice that this really addresses the point that the parent post makes.)
      I think the focus on features, rather than on quality, is a manifestation of what I call "bookkeeping syndrome": something is adopted as a metric not because it's important, but because it's easy to count. Using quality as a metric is harder, because it requires actual thought about how the product ought to work, and about what really matters to the potential users.
  30. Blind to portability by amightywind · · Score: 2, Interesting

    12. Portability is for canoes.

    And system software.

    Portable free software is in the process of dismantling his company. You would think he would acknowledge that.

    --
    an ill wind that blows no good
  31. Are the 21 rules working? by mjh · · Score: 2, Insightful

    What strikes me about this article is how there's such an emphasis put on meeting critical dates, but that Microsoft is routinely late in delivering their software when they say they will.

    How much value should we give to these "rules" if they don't actually work?

    --
    Key to financial independence: Spend less than you earn. Save and invest the difference. Do it for a long time.
  32. Re:The Whole Difference between Microsoft and Linu by Otter · · Score: 4, Insightful

    Huh? He's arguing against solitary development and for "They must be capable of performing on a team, making their work visible in modest increments and subjecting it to scrutiny as it matures." and you're invoking Linus as an argument against him?

  33. How MS makes software by IWantMoreSpamPlease · · Score: 4, Funny

    is much like how sausages are made:

    Best not to know how.

    --
    So rise up, all ye lost ones, as one, we'll claw the clouds.
  34. It's not the guy in the room by FraggedSquid · · Score: 2, Funny

    It's the guy(s) in the board room I'd worry more about.

    --
    You don't need a lab to make mud.
  35. You could not be more right. by MachineShedFred · · Score: 4, Insightful

    Once upon a time, I worked for a hardware company, where I started in their support call center. One of the first things I was told is to never use the word "problem" and instead use the word "issue."

    Why? This is what the idiot trainer had to say:

    "Problems have to be fixed, where issues get resolved."

    It's complete marketing bullshit, and we all knew it, so we would constantly be saying smartassed things like "This caller is causing me issues" and "what the hell is your issue, buddy?" and in the IRC server we had set up for in-call chats, the standard thing went like this:

    tech1: MainstreamVidCard is giving a black screen with an hourglass and locking up... wth?
    tech2: that card sucks. Tell them to get the übercard.
    tech3: LOL
    TeamLead1: Try new video BIOS and drivers. Go through BIOS settings, and tell them to stop overclocking.
    tech2: LOL
    tech3: LOL overclocking
    tech1: ok thx!
    TeamLead1: NI.

    We couldn't say No Problem, so we said No Issue instead. What a farce.

    --
    Slashdot still doesnâ(TM)t support Unicode after it was added to the HTML standard in 1997.
    1. Re:You could not be more right. by Speare · · Score: 2, Funny

      A Lieutenant was radioing in a field report to the Major back at the base. "Sir, we have some problems here and..." The Major cut off the Lieutenant, saying, "Don't say 'problems' on the radio, son. It's best to think of them as 'opportunities.'" The Lieutenant, looking at the exploded husk of his jeep on the side of the road, yelled into the radio, "Sir, we have some insurmountable opportunities here, and..."

      --
      [ .sig file not found ]
    2. Re:You could not be more right. by igny · · Score: 2, Funny
      to never use the word "problem" and instead use the word "issue."

      Redmond, we have an issue.

      --
      In theory there is no difference between theory and practice. In practice there is. - Yogi Berra
  36. Re:The 3 rules of thumb for Shipping Great Softwar by stratjakt · · Score: 4, Insightful

    That only works for free software.

    Release early - ie; when you KNOW it's unfinished.

    Relase often - ie; it's so full of bugs and unfinished you need nightly builds to work them all out. At this point, you're releasing forever because now you have yourself a moving target with no set "completion" point, or any goal you're trying to achieve.

    Listen to your customers - And if they complain just say "well it's free so fuck you if you dont like it". Seriously, no OSS projects "listen" to the customers.

    If they did "listen", Linux wouldn't be a monolithic kernel, so I could download binary drivers for my new video card without recompiling it. Guess what, nVidia or ATi are never going to want to open their drivers' source. Doing so would essentially give away all the IP they put into designing their GPUs. A month later, some fab is set up in taiwan producing Radeon clones.

    Samba would be able to function as an Active Directory Controller - it can't, and it's not even a project goal, NT4-style is apparently good enough, they haven't even plugged the gaping security holes in the old scheme MS did. Ie; you have to disable "require sign or seal" to join 2k or XP to a samba domain, essentially, you don't give a rats ass about verifying the authenticity of the MD4 password hashes that get bandied about plaintext on the network.

    Open source "works", but not all of the time, and not always how you want it to.

    --
    I don't need no instructions to know how to rock!!!!
  37. Re:The Whole Difference between Microsoft and Linu by Vellmont · · Score: 2, Insightful

    This is the danger of taking a line out of context. Really what that line means is a guy locked in a room for an indefinite period, and at some theoretical time in the future he releases his code to everyone else on the team and it magically works, and works well.

    It works fine if you're the only developer, it works horribly if you've got an entire team developing the software. People on a team need to touch base, and if there's just "guys in rooms" that aren't showing progress, taking criticism, etc, the whole thing can implode.

    You're right that linux was initially written by Linus, but he also wasn't working as part of a team at the time.

    --
    AccountKiller
  38. Words of wisdom for Mozilla project? by Fratz · · Score: 4, Insightful
    "While clever QA management can minimize the burden somewhat, the complexity of multi-platform support is beyond the reach of most development organizations."

    Wow, the Mozilla developers could really learn something from Microsoft here. Maybe they should contact MS and ask how they can switch from a build environment that supports 10(*) or more platforms to one that just supports Win32.

    While they're at it, maybe the IE core team can help them out with how to introduce Mozilla features that allow arbitrary, hidden software to be easily and automatically installed on the user's machine.

    (*) Technically, I suppose the Mozilla team builds for 3 platforms (Win32, OS X, and Linux) which does probably limit the amount of QA testing required, but this is still usually 3x as many as the Microsoft people deal with, and the build system enables at least 7 more platforms on top of that.

    --
    -- Fratz, human
  39. Yep, that's Microsoft alright. by Dr.+Bent · · Score: 3, Insightful

    12. Portability is for canoes.

    And system software. Even discounting the added development burden, with the addition of each additional platform the job of QA increases substantially. While clever QA management can minimize the burden somewhat, the complexity of multi-platform support is beyond the reach of most development organizations. Place your bets. Demand multi-platform support from your system software vendor, then build your product on the absolute fewest number of platforms possible.


    Wow...yeah, that's Microsoft alright. Don't bother writing software for anything but the One True Platform. Amen. Never mind the fact that Windows runs on...hmm, lets see...x86 and ummm...well. I suppose there might be a few others, but I couldn't tell you for the life of me what they are. Linux on the other hand...

    If you're writing a client side/GUI app, you can get away with this mentality. Try it on the server side and your product goes nowhere. I believe this is one of the reaons that Microsoft has had (and will continute to have) problems getting entrenched in the Enterprise computing market.

  40. Re:Really? by I8TheWorm · · Score: 3, Insightful

    You're right to an extent, but think of it this way. Typically, MS programmers are good at what they do. It's doing what they're told to do that can be a problem. Or worse yet, teams not communicating with other teams (through their team lead/project manager/development manager) that can cause problems. Even worse than that, it can be QA departments that aren't fully testing or are not communicating all known issues back to development teams.

    All of that can actually be attributed to poor management. Not necessarily in the sense of management not understanding the process, but leaning more toward the "ship the products for $$ sake" rather than "build better products for less profit, but better reuptation" business model.

    MS is in the business to make money. So far that's worked out quite well for them, regardless of the quality of their products. OSS has done a fairly nice job of forcing MS slightly into the latter business model, but as we all know, not far enough. It may never happen that MS fully embraces the idea of building better products for less $$.

    As a programmer with 13 years of professional experience, I can attest to the fact that an app with no defects/bugs/issues/ on the first compile would be a miracle. Programmers have trouble thinking like users and consequently have trouble imagining every possible way of breaking their app.

    That being said, I firmly think that most of MS's problems with software have much more to do with management than with the developers themselves.

    some developers from MS discuss how they deal with damage control on a daily basis. I think that would drum up some interest.

    Typically, that's management's problem, and if it never makes it back to the developers, they continue coding on what they're told to code on.

    My $0.02 anyway.

    --
    Saying Android is a family of phones is akin to saying Linux is a family of PCs.
  41. 0. Shamelessly imitate by wombatmobile · · Score: 2, Insightful

    Consider that Microsoft developed Windows (Mac), Excel (Lotus 1-2-3), disk compression (Stac), IE (Netscape) and the rest using other people's work as templates and the true value of #1, #2 and #10 is revealed:

    1. Don't know what you don't know.

    2. Get to a known state and stay there.

    10. Design time at design time.

    Then there's the way they "develop" products including MS-DOS, PowerPoint and Visio...

    3. Remember the triangle. resources (people and money), features and the schedule

    The lessons of Microsoft "development methodology" belong in university commerce and economics departments, not CS.

  42. The missing rule by Decaff · · Score: 4, Insightful

    22. Change direction then convince everyone that was the direction you were intending to go in at the start.

    Like with portability.... NT was supposed to be the portable OS, on MIPS, PowerPC, Alpha. But as that didn't take off, now 'portability is for Canoes'.

    No company can match Microsoft for blatant and unabashed hypocracy. This article is a good example.

  43. Rule (-1) by jbeaupre · · Score: 2, Funny

    -1) DOS isn't done until Lotus won't run. True or not, it sure seems like it. Anyone wonder about XP-SP2?

    --
    The world is made by those who show up for the job.
  44. These rules are great, but misnamed ... by arhar · · Score: 2, Interesting

    Assuming that these rules describe how Microsoft design their software, then I have to say there's nothing wrong with them. For example, the one platform issue - Microsoft has an opportunity to design for one platform, they know they can get away with it, and that's how they do. So the rule works for them.

    However, whether these rules are applicable for others is another question whatsoever. Microsoft's goal is to monopolize the market and get insane profits, and well, not give a shit about anything else. So if you look at these rules from that viewpoint, they make perfect sense - but not much else. That's why I think the author should make it more clearer that these rules apply only for a company that has a market share comparable to Microsoft and has the same goals.

    So, in conclusion, these rules are mostly useless for anybody but Microsoft.

  45. Too Many Managers by 12357bd · · Score: 2, Insightful

    Shipping is just the final milestone.

    How wrong! Shipping is just the 'start of adult age' for software.

    There are only three things that you are working with as a development manager: resources (people and money), features and the schedule.

    So people are things, and shipping is the objective... Wow! Let's call it productivity minded!.

    I don't buy this line, after more than two decades actively programming, I prefer the 'keep the people on' motto, really. Even more, I can hardly think on being 'proud' of making some software product if the people involved were considered 'resources'.

    --
    What's in a sig?
  46. Great Software? by BroncoInCalifornia · · Score: 2, Insightful
    To be fair we have to give credit for getting the complex projects out. It is very very hard to get a large team to deliver a product and not get derailed.

    But we all know Microsoft software has some severe problems. Security - gets viruses, spyware, trojans easily. Crashes.

    Is this because of the design process or for other reasons? Here are a couple reasons why Microsoft software could have all these problems in spite of a good design process:
    - Keeping backward compatability at all costs. This has been a key to Microsoft's success. It makes for ugly code but it keeps customers. It also leads to security vulnerabilities. If the internet ready version windows was designed fromt he ground up for security, it would have been a lot different.
    - Hairballing stuff together that should be seperate. IE is hairballed into to OS to work around anti-trust law. Now the media player is hairballed into the OS for the same reason.

    --

    Religion is the main cause of atheism.

  47. Wow, what a troll... by tqbf · · Score: 5, Insightful

    These "21 Rules Of Thumb" are distilled from McCarthy's "Dynamics of Software Development" book, which has been on the bookshelf of almost every dev lead I've ever worked with or known. You could have a similar "argument" about how good IBM software is (WebSphere?), but at the end of the day, if you're doing it to critique The Mythical Man Month, you're going to sound really dumb.

    More importantly, all bitching about MSFT quality aside, McCarthy was dev/program manager on Visual C++, which is not a poorly-regarded Microsoft product (it's one of the best compiler products on the market). There are extremely successful products --- successful on every axis --- that come out of Microsoft. Visual C++, and McCarthy's book, represents one of them. Microsoft Excel, and Joel on Software, represents another.

    Microsoft is a huge company with an enormous talent pool and many very qualified, very effective well-jelled teams. You do not sound credible when you try to tar them with the "Microsoft is buggy crap" brush, especially when you're arguing with McCarthy or Spolsky.

    1. Re:Wow, what a troll... by tqbf · · Score: 4, Insightful

      The last time I looked at GCC --- and you can correct me where I'm wrong, but, without citing what Apple has done with Xcode, tell me what out-of-the-box dev environment you're referring to --- GCC was inferior to Visual Studio. Here's why:

      • Visual Studio has a faster compiler.
      • Visual Studio has working precompiled headers out of the box.
      • Visual Studio has a good incremental build system (and fix-and-debug support).
      • GDB C++ support is a wreck; it has trouble demangling symbols, it chokes on template instantiations, and it gets line-number confused.
      • GDB thread support is a wreck.
      • Visual Studio generates better X86 code than GCC.
      • The Visual Studio UI canvas is better integrated with the compiler than Glade is with GCC.

      I'm sure GCC has made strides (and I think if you factor speed out of the equation, Xcode has surpassed Visual Studio), but when I was doing cross-platform Visual Studio and Linux GCC dev, Visual Studio won hands down. And don't get me wrong: I like Linux better, and my Visual Studio build environment was Cygwin CLI --- but my compile ran faster on Win32, and my debug sessions were easier.

      If you think GCC is a great compiler product, I'll agree. I think the fact that Visual Studio bested it is a strong argument for my point that Visual C++ is not a poorly regarded product.

    2. Re:Wow, what a troll... by IamTheRealMike · · Score: 2, Insightful
      Visual Studio has a faster compiler.

      Yes.

      Visual Studio has working precompiled headers out of the box.

      This is now true of GCC as well.

      Visual Studio has a good incremental build system (and fix-and-debug support).

      That's not related to the compiler, that's just a function of the IDE. I sometimes use flymake mode in emacs to achieve a similar effect. It's less cool than the VS equivalent but does work in a lot more situations.

      GDB C++ support is a wreck; it has trouble demangling symbols, it chokes on template instantiations, and it gets line-number confused.

      I don't know about that but I've never heard of such problems nor encountered them myself ...

      GDB thread support is a wreck.

      That's no longer true on a modern distro

      Visual Studio generates better X86 code than GCC.

      That's true. Flip side is that VS only generates X86 code, which isn't always what you want.

      The Visual Studio UI canvas is better integrated with the compiler than Glade is with GCC.

      Again you are confusing the compiler with the IDE. In fact, while the Glade/environment separation is sometimes annoying it's mostly useful. It means you can use whatever editor/coding environment you want unlike with Visual Studio where if you want to use the VS form designer you must use the VS editor, VS build system etc etc. Separate tools do not necessarily imply lack of integration even if in this case Glade is rather lacking.

  48. Bad advice from a classic quote: by gillbates · · Score: 4, Informative
    the complexity of multi-platform support is beyond the reach of most development organizations. Place your bets. Demand multi-platform support from your system software vendor, then build your product on the absolute fewest number of platforms possible. [emphasis mine]

    The first point is interesting; apparently, Microsoft doesn't know the majority of development work is multi-platform. I guess that in the Microsoft Universe(tm), if Microsoft can't do it, it can't be done... I am currently working on a rather large development project that will be used across at least two, if not three, major platforms. The overwhelming majority of developers must support multiple platforms because:

    • A vendor who writes an app that runs only on Windows risks Microsoft copying their idea and shutting them out of the business. Since MS almost never develops apps for non-Windows platforms, developing a cross-platform app is a hedge against MS stealing your ideas.
    • Cross-platform support is absolutely crucial for enterprise-level vendors. Most corporations want to leverage their existing server investments, and if you don't support the company's range of platforms, they won't be buying your application.
    • A large majority of internal development must be multi-platform because of legacy hardware.(yes, w2k and Windows98 count as separate platforms from a dev perspective). Just because your company has upgraded to Linux doesn't mean that there isn't a legacy Windows server lying around somewhere.

    And the second point? Granted, Linux may be able to do multi-platform support rather well, but anyone who demands multi-platform support from Microsoft will get laughed out of the boardroom. It's not like they're going to care; you aren't spending their money to develop your application, and if it doesn't run on different platforms, it only increases their monopoly.

    --
    The society for a thought-free internet welcomes you.
  49. Performance not Features by Gyorg_Lavode · · Score: 2, Interesting
    3. Remember the triangle.

    There are only three things that you are working with as a development manager: resources (people and money), features and the schedule

    Funny, I've always heard it as Cost-Schedule-Performance. It is another manifestation of the fundamental difference in thinking by microsoft that features should replace performance, or are synonymous with it.

    --
    I do security
  50. Okay, I'll bite this troll by bonch · · Score: 5, Insightful

    I don't want to get into a flame fest

    Right.

    , but since you claim they don't produce the WORST product in the market, and since Windows is such a large part of their revenue, I challenge you to find:

    First of all, the question itself is ridiculous. I can quite genuinely say that Windows XP has never crashed for me or been broken into. However, Linux has frozen up on me several times, and it has had kernel exploits in the past. But that doesn't make Linux less secure or less stable.

    The fact that Windows is used WAY more than Linux means you'll get a greater total sum of crashes and breaches, but that doesn't make Windows less secure or less stable. You're arguing a ridiculous premise.

    * An OS that is less secure than Windows.


    Remember that Slashdot article about how Linux was the most-breached OS on the net? I sure do. A Slashdot editor even modified the headline so it said "Linux Most Attacked OS On Net" instead of "Most Breached" so it didn't look as bad.

    * An OS that crashes more frequently than Windows.

    Windows never crashes for me. I haven't seen a BSOD since 1999. But, Slashdotters seem stuck in the late 80s and think Windows 98 still represents the stability of Windows today.

    I had Gnome crash my laptop under Red Hat 9 the very first time I used it. So fucking what?

    * An OS with a EULA more restrictive than Windows.

    This is a silly question to throw in. Windows' EULA isn't much more restrictive than, say, IBM's EULAs or Apple's. As if the EULA has anything to do with the operating system itself. Complain about the legal department but not the software development department.

    * Software which has slipped the scheduled release date more often and by a larger margin than Windows. IIRC, Microsoft hasn't released on OS on time in the last 10 years.

    Yeah, and how late was 2.6 again? Oh, that's right, it shipped a year later than Torvalds said it would. Again, this is a completely ridiculous argument.

    I know it's l33t to be a raving Linux zealot, but a lot of people are really getting tired of it, as evidenced by the posts I've been seeing lately that are getting upmodded. I'm very pleased to see more and more people approaching things rationally and fairly now--even if Slashdot editors don't. The very fact that Clippy jokes and BSOD jokes are still upmodded--two things 95% of Windows users haven't seen since 1999--shows you how stuck in the past zealots are and how they won't let go of their old Windows 98 experience. They're competing with old 9x versions of Windows when meanwhile everyone else moved on when the codebase unification to the NT kernel happened in late 1999, and we got Windows 2000.

    But, I forgot. This is the "year of Linux on the desktop." Hey, remember that article Slashdot posted that said Linux desktop usage would overtake Apple's in a year? I even had one Slashdotter cite it to me as evidence for a point he was making, simply because Slashdot had reported it. So much for that.

    If you're a Linux newbie and you're coming here for tech news, you're doing yourself a great injustice, as everything will be skewed and you will get a huge wrong impression about how the tech world is doing.

    1. Re:Okay, I'll bite this troll by Srin+Tuar · · Score: 2, Interesting


      First of all, the question itself is ridiculous. I can quite genuinely say that Windows XP has never crashed for me or been broken into. However, Linux has frozen up on me several times, and it has had kernel exploits in the past. But that doesn't make Linux less secure or less stable.


      I use win2k at work for cross compiling embedded code. It blue screens about 2 times a month on average. Otoh, my linux box has never crashed. Ive had X lockup a few times, but its a simple matter of killing and restarting X. I never had a linux system become completely unusable yet, and Ive never seen a kernel panic even with kernels Ive been myself. (may be doing some loadable object driver devel in the near future- so I may get the chance to soon)

      Maybe your experience is different, but in general Ive noticed that is a good idea to reboot windows boxes every now and then, because they work best after a fresh reboot.

      A linux box seems to run best after its been up for a few months. (I have a rh9 desktop thats never gone down except for a kernel upgrade and one sustained power outage.)

    2. Re:Okay, I'll bite this troll by SpyPlane · · Score: 4, Informative

      I usually wouldn't reply this late in the thread, here goes:

      My Windows XP box crashes everyday.. literally. My "win"modem for some reason doesn't seem to work well on "win"dows (which I find amusing). I've looked into it extensively and there has a been a bug submitted to the knowlege base for 3 years now regarding this issue. I think it was an issue on win2k as well. No I don't get the BSOD (does that even exist anymore) but the damn thing freezes 1 in 3 attempts.

      The funnies thing is that I dual boot with linux and that "win"modem works perfectly. In fact, when I wasn't having to do any video editing in windows last year, I had an uptime of 215 days in linux.

      I conceed that some people have more stable installs with windows than linux, as long as you conceed that at least if those people WANT to take the time to fix their linux box, they could, while people like me couldn't fix my windows problem even if I infinite knowledge.

      So, I respectfully disagree with your post.

      --
      "We need a fourth law of Robotics: Stop Fingering My Wife"
    3. Re:Okay, I'll bite this troll by PPGMD · · Score: 4, Insightful
      I am an infrastructure and application consultant for a Microsoft Business Solutions Partner. I have ran just about every version, and done commercial work on everything from Windows 95 on wards.

      My personal computer routinely goes 60 or more days between reboots. Mainly it's rebooted because I feel like it, haven't had any issues with Windows 2000, XP, or 2003 that can't be traced to a crappy device drivers, with XP and 2003 it's simple to roll back the driver.

      One of my DCs went 6 months before I decided it was time to install patches and reboot. Some consultants that I have talked to has had an NT box running 22 months and counting.

      Windows can be just as stable as a well admined Linux system, just as Linux can be more unstable than Windows 95 when it's in the hands of someone that doesn't know what they are doing.

    4. Re:Okay, I'll bite this troll by sydb · · Score: 2, Insightful

      So you're saying we can discount all hardware driver problems in Linux too? I hope so. I mean, the largest part of Linux is hardware drivers, and I've never had a Linux problem that wasn't driver-related. I'm willing to bet almost all Linux problems (in the stable release) are driver-related.

      Same goes for Windows.

      I think you're trying to cover up things by ignoring hardware-driver crashes.

      --
      Yours Sincerely, Michael.
    5. Re:Okay, I'll bite this troll by maxpublic · · Score: 3, Insightful

      I know it's l33t to be a raving Linux zealot, but a lot of people are really getting tired of it

      As compared to the raving Windows fuckwits who've been claiming for years that Linux will never be able to compete with an MS OS, that it'll never 'be ready for the desktop', that MS software is somehow superior because, well, it's produced by MS? Have you forgotten about these stupid little shits?

      There are plenty of assholes on both sides of the spectrum. It's rather clear you'd prefer to pretend that the vast majority of loser fanatics come from the Linux zealot camp, but anyone with half a brain and even the slightest bit of impartiality knows that MS has more than it's share of borg-like twats willing to run to its rescue.

      Try getting real. Zealots are assholes BECAUSE THEY'RE ASSHOLES. It doesn't matter what they peddling. Lumping Linux into the mix because that happens to be the bandwagon for one subset of zealots is not only ignorant, it's pathetic.

      Max

      --
      My god carries a hammer. Your god died nailed to a tree. Any questions?
    6. Re:Okay, I'll bite this troll by dedazo · · Score: 2, Funny
      Hahaha, I love it when the retarded zealots tell me my machine is somehow dying and I haven't noticed. Yeah, I was looking out for BSODs and missed the reboots!

      bwahahahaha!!!!!

      My god.

      --
      Web2.0: I love when people Flickr my cuil and digg my boingboing until my google is reddit and I start to yahoo
  51. I've worked there, and I must say by Anonymous Coward · · Score: 4, Interesting

    There's so much bullshit in this article, you won't believe. I don't know who this guy is, but any MS developer worth his salary would laugh him out of his office over that "Don't go dark" thing. That's the only way to get anything done at MSFT. If you participate in all the meetings that are scheduled for you and get "buyoffs" from everyone you will NEVER get anything done. So it goes like this, you participate in the meetings at first (to make you look good when review time comes) and then you go PITCH BLACK, not just dark and deliver the code. It's always easier to get forgiveness than to get permission.

    1. Re:I've worked there, and I must say by glenstar · · Score: 2, Insightful

      In previous stints in the belly of the beast it was not uncommon for serious developers to turn off the lights and lock the doors of their offices so that no one would know they were there. The amount of "interaction" at MS is mind-boggling. If you have never sat through a week (yes, a week of 9 hour days in a "war room") long meeting discussing the most inane, asinine, and mundane details of a project you wouldn't understand.

  52. 10 other rules by tootlemonde · · Score: 5, Insightful

    These rules of egoless programming have been circulating on various sites:

    The Ten Commandments of Egoless Programming

    1. Understand and accept that you will make mistakes. The point is to find them early, before they make it into production.

    2. You are not your code. Remember that the entire point of a review is to find problems, and problems will be found. Don't take it personally when one is uncovered.

    3. No matter how much "karate" you know, someone else will always know more. Such an individual can teach you some new moves if you ask. Seek and accept input from others, especially when you think it's not needed.

    4. Don't rewrite code without consultation. There's a fine line between "fixing code" and "rewriting code." Know the difference, and pursue stylistic changes within the framework of a code review, not as a lone enforcer.

    5. Treat people who know less than you with respect, deference, and patience.

    6. The only constant in the world is change. Be open to it and accept it with a smile.

    7. The only true authority stems from knowledge, not from position.

    8. Fight for what you believe, but gracefully accept defeat.

    9. Don't be "the guy in the room." Don't be the guy coding in the dark office emerging only to buy cola. The guy in the room is out of touch, out of sight, and out of control and has no place in an open, collaborative environment.

    10. Critique code instead of people -- be kind to the coder, not to the code.

    Like most platitudes, they apply in some situations and not in others and there are plenty of valid exceptions.

    For instance: Treat people who know less than you with respect, deference, and patience -- but don't let them tell you how to do your job.

    Or: Fight for what you believe, but gracefully accept defeat -- and when you turn out to have been right, don't let anyone forget it.

  53. autoconf / automake by mangu · · Score: 2, Informative
    How much time is wasted in big OSS projects to make sure it can compile in 90000 flavors of unix?


    Very little time. Less than it takes to write a Makefile for XP. If you use some IDE, like kdevelop, the wizard runs in a few seconds. Then it's just "./configure; make; make install", in any flavor.

  54. "Portability is for Canoes" by MenTaLguY · · Score: 2, Insightful

    I guess there's a certain truth to what he says, depending on how you approach it.

    The thing is, you really _don't_ want to be in the business of having to worry about platform-specific concerns for more than one platform in your own code.

    If you try, you'll either end up essentially writing your own meta-platform (building and debugging it from scratch, consuming development time better spent elsewhere), or your code will become a mess of #ifdefs and specializations which can only ever be built or tested on obscure platforms (meaning most platforms will always be moderately broken).

    What you want to do is pick a platform that lets you run on a range of systems -- i.e. "leave it to your system software".

    Inkscape's "platform", for example, is for the most part not POSIX nor Linux nor Win32, it's Glib/Gtk+/Pango/Gdk + libxml + STL.

    We still have a number of platform-specific subclasses and #ifdefs (many inherited from Sodipodi), but we're actively working to reduce (ideally eliminate) them.

    For example, most recently (in CVS), we replaced the typography subsystem we inherited from Sodipodi with a little bit of glue code on top of Pango.

    In the process, we gained a lot of features that Lauris never had time to implement or debug in Sodipodi's private typography library, like using the kerning information specified in fonts, and the hardest parts of support for rendering "interesting" non-Western scripts.

    Just be sure that the set of libraries (your platform) which you write to is widespread and well-tested on the systems you care about.

    I guess given the systems David's employer cares about supporting, his choice of Microsoft platforms shouldn't be altogether surprising.

    --

    DNA just wants to be free...
  55. Okay, but... by gillbates · · Score: 2, Insightful

    Where's the commercial OS worse than Windows?

    If my job as a project manager is to ship software on time and bug-free, why would I listen to Microsoft, which has done neither?

    Incidentally, my mother was a project manager for many years, and she managed to bring every project in on time, beating some deadlines by 50%. And bugs were simply not accepted - the project wasn't done until the bugs were corrected. Microsoft sets its own schedule, and they still can't ship bug-free software on time.

    --
    The society for a thought-free internet welcomes you.
  56. Can't get away by SuperKendall · · Score: 2, Insightful

    If you're writing a client side/GUI app, you can get away with this mentality. Try it on the server side and your product goes nowhere. I believe this is one of the reaons that Microsoft has had (and will continute to have) problems getting entrenched in the Enterprise computing market.

    I don't think you can get away with this, really. For one thing if you are writing only for Windows you are then ignoring a pretty attractive market - Mac users. The marketshare may look small but in general Mac users have a bit more money to spend, and additionally you are not going to have as much competition.

    But the other aspect that should lead a company to produce portable code is that by doing so, you avoid tieing your own product to any one OS. Then when that OS upgrades, you are probably going to have an easier time having it work on newer versions - plus if other OS's become more popular over time your product is not weighted down to just the one OS.

    Basically, the disipline of trying to make code work in multiple places will have other more intagible benefits - I think it's a mistake to discount this.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  57. Don't know by baxissimo · · Score: 2, Interesting

    "Don't know what you don't know" -- David Gristwood

    I don't know about you, but to me, if you say "Don't know what you don't know", it sounds like you mean "Be blissfully unaware of the things which you do not know".

    Whereas what he means is apparantly that you should know very clearly which things are unknowns. Not that you should be unaware of them. To me, the proper way to express that concept in English is "Know what you don't know". And I'm pretty sure I've heard people say that exact thing before in other contexts.

    Maybe this is where all the problems come from in Microsoft software. The top guys are all saying fervently "Don't know what you don't know!" and the developers are all thinking that means they are supposed to stick their heads in the sand and ignore the completely undeveloped specification, ignore bugs that haven't been found, and proceed full speed ahead with coding.

    At least that's what I would think if my boss was always prancing around saying "Don't know what you don't know".

  58. Same as Linus plan isn't it? by xswl0931 · · Score: 2, Insightful

    Except for step 6, doesn't this apply to how Linux has done their developement? Or for that matter any software company?

  59. Bad dates by sbjornda · · Score: 2, Funny
    'Never trade a bad date for an equally bad date.'

    So here's one advantage of being a programmer at Microsoft: At least you get dates, even if they are bad ones.

    --

    .nosig

  60. Obligatory Python Reference by Psymunn · · Score: 2, Funny

    We are the tech support that say 'NI'
    Now go fetch me a radeon or i shall say 'NI' to you...

    --
    The Neo-Bohemian Techno-Socialist
  61. Re:Before MS and its OEM extortion, there was WP by jwthompson2 · · Score: 2, Interesting

    Actually it was an oversight that I left it out. I haven't used WP in years but many of the professors around my work use it because it handles Turabian formatting much better than anything else. And the other list of applicated further illustrates the point I wanted to make, MS is not the best player in the game and really the only thin that keeps them where they are is general ignorance and monopolistic market dominance.

    --
    Even if I knew that tomorrow the world would go to pieces, I would still plant my apple tree. -Martin Luther
  62. Some clarification by GunFodder · · Score: 2, Insightful

    A bug is a fairly well understood concept: it is a user submitted deviance from the desired behavior.

    Obviously few people here understand the meaning of a defect in the softwre development process. It is a deviance from the expected behavior as described in the documentation for the current phase.

    The difference is that the documentation for early phases do not have the same level of detail as later phases. Modules aren't fully integrated with each other, so unit test cases must be used. Additional functionality may be added later as well.

    The term defect is manager-speak, but it is very useful because it describes something you can measure. It is straightforward to verify that a software project meets a list of criteria to pass a phase gate. It is not possible to determine whether a project is bug-free, because that would take an inordinate amount of test time. This is why real software is never bug-free.

  63. My Synopsis (sorry for redundancy) by RALE007 · · Score: 2, Funny
    Shipping great software on time is a difficult but not impossible task.

    Then why doesn't MS do it? For any MS fanboy who insists some of their software is great, what about the majority of it? Mediocre maybe?

    Get to a known state and stay there.

    Instability? FUD? Monopolistic practices? Insecurity? Bloatware? et cetera....

    Organize the project around the concept a reaching milestones with zero defects. Zero defects does not mean that the product does not have bugs, or missing functionality; it means that the product achieves the quality level that had been set for that milestone.

    Great, so zero defects doesn't mean zero defects, it means some intangible level of acceptable defect. Hm, sounds like a redefinition of language to have the meaning of words fit the state of their software.

    Slipping is what happens when information that was unknown becomes less unknown.

    Don't not unknow that which is known to be non-unknown knowingly..... Nothing against MS here this guys just sounds like a shmuck.

    The product should be built every day, along with all setup scripts and on-line help, in a public place, where QA can conduct appropriate assessment of daily status, and the entire team can observe progress or its lack.

    Why that sounds more like a bazaar than a cathedral.

    Portability is for canoes...the complexity of multi-platform support is beyond the reach of most development organizations...build your product on the absolute fewest number of platforms possible.

    Multi-platform support is beyond the capabilities of MS, not most development platforms. This is exemplefied by Linux, BSD, Gnu software etc.

    Enrapture the customers. Most software is a renewal business. Customers buy multiple releases over a relatively long period of time. As a consequence, the market has a deep understanding of your software and its flaws, and your organization and its flaws.

    Entrap the customer. They understand your software and its flaws, and your organization and its flaws. Make a token effort to alter the most obvious ways we're screwing the consumer and they'll thank us for only buggering them half the time we were before.

    Establish a shared vision.

    I'm establishing a vision of a penguin dancing on Bill Gates head. Is it working yet?

    Get the team into ship mode.

    Tell development the product is being released, ready or not.

    Everybody (or nearly everybody) must believe that achieving the milestone is possible.

    Ignore whistle blowers, we're releasing.

    All members of the team must understand precisely what they must do prior to shipping. All unknowns are factored out.

    We don't know if that glaring flaw in our software will be exploited, factor the unknown out.

    The goal is an acceptable quality level at ship time.

    Noble words, however based on past releases, an acceptable quality level defined by MS is extremely lacking.

    Understand the range of quality that is acceptable to your customers.

    Will they still buy this steaming pile of...

    How many low priority bugs did your product ship with last time? Was it a problem?

    Did they take the last steaming pile of...

    Are the customers better off with this product including this bug?

    Are we better off with the customers money now at the risk of disrupting their lives with our steaming pile of...

    Since destabilizing the software is more of a problem than most bugs, be very careful about which bugs you fix.

    Don't fix bugs, it might make our software buggy.

    This is why we have "ReadMe's" and bug lists.

    Releasing buggy software is ok, just let them know after the fact in some obscure reference and our hands are clean of responsibility.

    Well, if there were any doubt in my mind left as to why their products could be so horrible, getting an idea of their development method pretty much removes it.

    --
    Beware blue cats moving at .99c
  64. VisalC++, good? by Decaff · · Score: 2, Interesting

    Visual C++, which is not a poorly-regarded Microsoft product

    Says who? When I lasted used it, it was a typical Microsoft compiler product - a huge system, with very big manuals, and a phenomenal number of options, memory models, segment types, and strange keywords starting with double underlines. It was a monster. I dumped it.

    To actually get things done, I used Turbo Pascal for Windows, and then Delphi.

  65. "Portability is for canoes" by GunFodder · · Score: 2, Interesting

    Portability is for canoes

    I thought most of the rules were applicable for the general development community, but this one stuck out like a sore thumb. It sounds too political to be a general development guideline. We all know that the express desire of Microsoft is to tie everything into Windows in order to maximise the usage of their platform. But this often directly contradicts the goals of an application development group.

    The reality is that there are many platforms out there, and great software runs wherever the user needs it. This means that multiple platforms are often needed to meet the needs of the user. Some people might argue about the limited functionality of HTML based apps, but in many cases the ubiquity of browser software easily overcomes the limitations of the platform.

  66. Re: What does "Zero Defects" mean? by some+guy+I+know · · Score: 4, Insightful
    they should have said (perhaps they did?) that the product has zero known defects.
    Actually, what he wrote was that the product had zero defects relative to a particular milestone.

    Here is an example:
    Say that you are writing an HTML widget.
    Milestone n states that the widget will display paragraphs (<p> elements) correctly, but says nothing about the widget displaying tables correctly.
    When the widget is tested, it displays paragraphs correctly, but does not display tables at all.

    The widget is not fully working.
    It has bugs.
    But, in relation to milestone n, it has zero defects, i.e., it passes all of the tests for milestone n.

    While I don't agree with everything in the article, and while I am no fan of Microsoft's, I think that the whole "zero defects" thing has been taken out of context here by several posters.
    --
    Those who sacrifice security to condemn liberty deserve to repeat history or something. - Benjamin Santayana
  67. Er by Anonymous Coward · · Score: 2, Insightful
    Linux isn't competing with a MS OS (last check at Google Zeitgeist still shows 1% Linux usage), Linux is NOT ready for the desktop
    Every time one of you pathetic MS trolls trots out this untruth it makes me laugh. Yeah, never mind that Google Zeitgeist isn't a valid representation of market share, never mind the people who use Linux and a desktop manager *every day* with no problems, we should just take *your* say-so that Linux isn't ready for the desktop.

    BTW, don't you ever get tired of spreading FUD for Microsoft? Actually, I think you enjoy it. Do you enjoy beating your wife?
  68. MySQL is as full featured as MS SQL? by malfunct · · Score: 2, Informative
    Um, what dream world are you in? Does MySQL have proper stored procedure support? Trigger support? I rest my case.

    Thats not to say that MySQL doesn't do the job in many situations or that it is bad software, but calling it a full featured SQL server is sort of funny. Also comparing performance of MySQL to MS SQL in enterprise applications would be interesting. I don't know the result but I think that MS SQL is still "fastest" in the world depending on just how you rate it.

    --

    "You can now flame me, I am full of love,"

  69. It's the perennial Microsoft mystery. by metamatic · · Score: 2, Interesting

    All the evidence is that Microsoft have skilled developers who know how to build high-quality software. They have known how to build solid code for a good decade now. Yet they still don't actually build high-quality software. Why not?

    Similarly, all the evidence is that Microsoft have a massive well-funded research department filled with smart and inventive people. Yet I can't think of a single innovation Microsoft has actually rolled out in shipping product, that hadn't been done before by someone else, and usually done better.

    To me, the question of why Microsoft is institutionally unable to harness its clueful employees is much more interesting than what those clueful employees have to say. It must be pretty frustrating for the smart engineers at Microsoft, in fact, seeing their work ignored or screwed up. Still, I guess the piles of cash make up for it.

    --
    GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
  70. Microsoft seems to like people who think fast by wintermute42 · · Score: 4, Insightful

    rather than deeply.

    The Microsoft interview style is to ask the interviewee a constant stream of white board programming problems and throught puzzles. While this selects people with a certain level of intelligence, it also selects people who can think rapidly "on their feet".

    Perhaps the end result is to select a homogenious population of "Softies" think fast, settle on an approach and then hack it into code. Where a better approach to product development might be to think about the design, think about some alternatives, discuss the design and then implement it.

    Many people agree that Microsoft software evolves once it has been released. The common example being a first product that is inadequate, buggy and slow, eventually evolving into something that becomes popular. Perhaps this is a result of a culture of programmers who believe they are very smart (after all, they survived the Microsoft interview), think fast and then entomb their initial half-baked design in software.

  71. Re:Do you know what website you're on? by maxpublic · · Score: 2, Insightful

    Linux is NOT ready for the desktop

    Yada yada. Guess you're one of the twats I was talking about. Cue Billy G-worshipper rant on just how 'unready' Linux is. Not that we haven't heard this bullshit argument a THOUSAND TIMES already, but hey - when does that deter a zealot?

    If you're going to sit there and tell me Slashdot is some balanced place of 50/50 Windows versus Linux zealots, you're completely lying.

    Hey there Homer, try 'Reading Comprehension 101' and 'How to Present a Strawman Without Looking Like An Amateur 103'. Which one will be most helpful depends on whether you're just plain stupid or making a pathetic attempt at being deceptive.

    Where did I lump Linux into the mix? Oh, that's right, I didn't.

    Oh, that's right - you did. Linux zealots is what your whole post was about. You aren't related to the late President Reagan, are you?

    But you felt that your religion

    If Linux were my religion I'd never admit that there are plenty of assholes and zealots on both sides of the fence. Here's a quarter, go buy yourself a clue.

    Oh, and my penis is bigger than yours no matter what I post on Slashdot. Zealots, as a rule, have tiny peckers. It explains a lot, when you think about it.

    Max

    --
    My god carries a hammer. Your god died nailed to a tree. Any questions?
  72. Rule #1 ... by evslin · · Score: 2, Funny

    If it compiles, ship it?

  73. Zero Defects by noblethrasher · · Score: 2, Interesting

    I wish I had chimed in earlier. I'm an aspiring mathematician, not an engineer but I don't have an issue with the term 'zero-defect'. Engineering is all about tolerances and software engineering is no different. The highly mathematical nature of programming (as opposed to development) tends to obscure this fact. When an engineer designs a bridge they're not concerned about perfection, only how it will perform under a constrained set of conditions. For example, consider the math: the sets of memory locations and registers are finite and therefore pointer arithmetic (the operation of succession) is not closed hence buffer overflows are always theoretically possible on the hardware level. Some languages (C) unfortunately encourage us to forget this, and others (Java, and the .NETs) try to help out by at least simulating an environment in which we have infinite sets of memory (or in purer mathematical terms, pointer arithmetic is closed). The point is, as long as you're coding to the bare metal (and at some point you must) you'll always have the chance of at least this kind of 'defect'. At some point you need to be pragmatic (somewhat antithetical to pure mathematics) and decide when it is good enough: i.e. how many possible inputs should you test and how much peer review do you need? I personally would prefer to see software constructed in the same way as a mathematical proof (especially the peer review part which is a good argument for open source) but I also recognize that this is not compatible with all business models.

  74. Re: What does "Zero Defects" mean? by ThisIsFred · · Score: 2, Insightful

    That's still trimming off a good portion of the whole in order to force-fit it to the argument. If the widget in question doesn't render as expected in the presence of tables, one of two things is at fault: The developer, for not understanding the spec (see the article's beginning section). Or, the specification, for being ambiguous. Either way something is broken, and it very rarely is the specification.

    I'm losing my patience for this type of weasel-y behavior from developers. It would not fly in the manufacturing industry. Software developers break the standard (either on purpose or out of ignorance), and then send PR people on a world-wide, media-weasel word-mincing tour in the hope that if they seriously damage the public's understanding of the issue, the public will eventually abandon its quest for answers.

    --
    Fred

    "A fool and his freedom are soon parted"
    -RMS
  75. I'm just curious... by shaitand · · Score: 2, Interesting

    But is there anyone who would actually listen to development advice from Microsoft?

    Seriously they are infamous for turning out the worst software ever produced, they fail on every major checkpoint.

    Simplified interface, fail, menus are cluttered and unintuitive.

    Security, fail, their record speaks for itself

    Stability, again fail, again their record speaks for itself.

    Performance, fail. MOST competing products run faster than the Microsoft equivalent not one or two, not somebody beats them, almost everybody beats them on almost every piece of software.

    They may finish a project which is more than some can say, but that is about all they have going for them and it's arguable if they've ever TRULY finished a project.