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.'"
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.
Quote:
12. Portability is for canoes.
'nuff said.
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.
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.
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.
Javascript + Nintendo DSi = DSiCade
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."
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:
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.
"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."
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.
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.
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"
It makes me mad when people remark how they haven't seen a BSOD since 1999. MS turned it off!
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,"
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.