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.'"

41 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 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.

    3. 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.

    4. 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?

    5. 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.

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

      This is untrue.

      A program need only have an infinite number of inputs. Each input can cause the same code to fail in a unique way.

      As most software has effecively infinite inputs (at least large enough to make a mockery of atoms in the universe), then each program could theoretically have infinite bugs.

    7. 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.
    8. 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?

    9. 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.

    10. 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.
  2. 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. #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.
  4. 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.
  5. 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 molarmass192 · · Score: 1, Interesting

      Another case in point: don't you just cringe when you load up a big application that was written in Java? Sure, you can run it anywhere, but it feels like silly putty.

      That's no longer true. Install Java 1.5 Beta 2 and the Azureus bittorrent client from SourceForge. It'll be virtually impossible for you to tell you're not running a native app.

      --

      Good people do not need laws to tell them to act responsibly, while bad people will find a way around the laws-Plato
  6. 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 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.
  7. 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.

  8. 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)

  9. 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
  10. 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
  11. Re:The 3 rules of thumb for Shipping Great Softwar by Anonymous Coward · · Score: 1, Interesting

    Yeah, it's a good model. Unfortunately it doesn't really work for commercial products.

    Imagine if a new versions of MS Office came out at the same rate as the Linux kernel - almost no one would have enough cash to keep up. It's also one of the reasons FS/OSS software evolves so quickly, the cash problem doesn't exist (free beer) and bandwidth is cheap.

  12. 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.

  13. 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
  14. 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.
  15. Re:Worth considering... by Anonymous Coward · · Score: 1, Interesting

    since it's a difficult job, at best, to get a group of developers to deliver anything.

    Yeah, just look at all those Open Source and GPL'd projects out there that dont deliver anything.

    No, I am not a programmer nor a manager of a programming department but software is 100% identical to any service or product out there...

    1 - if the employees you have working on it are happy, the product will be better.
    2 - if a programmer can bring up ANY issue with the product with the management and management will actually pay attention to the issues, the product will be better.

    3 - Stupid rules cause product problems. Customers need to be able to communicate with the people that actually know something about the product, tech support weenies that read from scripts are worthless. allow the programmers to COMMUNICATE with users and hire a knowlegable team to parse and filter user communications to the programmers.

    Microsoft misses on all of those points.

    I know 5 microsoft programmers and 10 ex programmers.. none of them are/were happy there because of the office politics bullcrap and the piss-poor attitude of management that is controlled by the marketing department.

    Microsoft could steamroller EVERYTHING if the management pulled their heads out of their asses and paid attention. they have a HUGE talent pool and can attract ANY programmer they want with huge salaries that noone else can even think of touching. but they refused to pay attention to the FSF movement even back in billy's pimple days when he was banging out BASIC, open Source and Free software was commonplace. Bill filled a nitche that Open source could not at that point.... well we have cought up and now have more programmers than microsoft can ever afford to hire. Microsoft continues the "mine! mine! go away!" attitude while windows could have been the absolute pinnacle of operating systems if they realized that Open source will overtake them and they had better use Open source to their advantage.

    People don't hack on the GNU tools or the Linux kernel because they hate microsoft and Bill Gates, they hack on the various open source projects because it's something they use and they want to make it better or fit something they want to do.

    Microsoft wont let anyone do this, so they continue to diminish while GNU, BSD, Linux, etc... continue to increase and expand.

    It's not the programmers fault, not one bit.

    every fault with microsoft software is the management's fault.... Same with any software program you can buy, download or plug-in. the programmer is simply doing his/her job and hopefully loving what they are doing. Management makes the mistakes of ignoring X, thinking Y is not an issue or shipping it anyways even though it's not even complete.

    So basically my tips to EVERYONE... is to look at MANAGMENT first for problems as they are usually the cause. I dont care if you have 6000 managers or you are the only manager and coder... MANAGEMENT is where companies and products fail.

    no if's and's or butts.

  16. 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.

  17. 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.)

  18. 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".

  19. 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
  20. 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.

  21. "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.

  22. 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
  23. 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.

  24. What about Qmail? by aLEczapKA · · Score: 1, Interesting

    ...every piece of software has bugs and issues, regardless of the language you use to describe them...

    True, there are bugs and issues which dont' bother me as long they are not security flaws.

    And as story of qmail shows you can write a software without security flaws - in its seven years of existence, Qmail has never had a security flaw!
    This is definition of GREAT SOFTWARE to me.

    --
    -- All Gods were immortal.
    -- S. Lem
  25. 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.