Slashdot Mirror


Software Engineering at Microsoft

an_mo writes "A link to a google cached document is floating around some mailing lists containing some info about microsoft software engineering. In particular the document contains juicy bits about the development of a large project like NT/2K. Some examples: Team size went from 200 (NT3.1) to 1400 (Win2k). Complete build of win2k time is 8hrs on 4way PIII and requires 50GB of hard drive space. Written/email permission required for checkins by the build team." The HTML version on Usenix's site is much nicer than Google's auto-translated version.

22 of 461 comments (clear)

  1. I don't know much about build times.. by Psx29 · · Score: 2, Informative

    So for something like Windows 2000 is that a long time?

    1. Re:I don't know much about build times.. by CptNoSkill · · Score: 1, Informative

      I can't speak for windows, but using gentoo and building everything from source, starting from stage1, It took about ~6 hours. That includes basic system compile, x, kde, and mozilla. All this was done on a Athlon 1.1Ghz, with 40Gb of ram. IMHO, 50 Gigs of HD? That is alot of space.

  2. read a book by johnjones · · Score: 5, Informative

    Show-Stopper!: The Breakneck Race to Create Windows Nt and the Next Generation at Microsoft by G. Pascal Zachary

    very funny about the head guy throwing chairs out of windows ( the phyical ones ironic really )

    and the black team....

    read it and Mythical Man-Month, and then you might have a small background

    regards

    john jones

  3. not a troll by johnjones · · Score: 2, Informative



    show stopper from

    when has been recomending books on the subject a troll (and it was done by someone with unlimted .... )

  4. Showstopper! by jkujawa · · Score: 2, Informative

    "Showstopper!" was fascinating. David Cutler really is a genius. NT had the potential to be a truly great operating system. I would have loved to have gotten a chance to play with it before they bolted win32 on top of it. Everyone who has the slightest interest in operating systems should read Showstopper.

    1. Re:Showstopper! by eyeball · · Score: 2, Informative

      You want NT without Win32? It's called VMS :)

      --

      _______
      2B1ASK1
  5. Old news... by Anonymous Coward · · Score: 5, Informative

    Guys, the PowerPoint slides for the Lucovsky presentation has been publicly downloadable for almost 2 years. I always find it sad when Slashdot reports something old as something new.

    Go get the slides at http://www.usenix.org/events/usenix-win2000/tech.h tml

  6. Re:A recipe for disaster by Axe · · Score: 2, Informative
    UML and other modelling fads I would not lump all modeling tools into FAD category. 65-page design is excessive - couple clear diagrams, in whatever standard you like will make wonders in your OWN understanding, of what you are about to write, allow you to communicate clearly with other team members. Visualizing is good.

    Formal checkins. Make you own branch and go butt nutty in it. Sync to the trunk often. Let them review your changes and integrate on their own pace. Code review. Once again - having anybody - even inferior programmer to look over your code will do wonders to your own understanding and skills. I am a good coder, and I beg other people to review and comment. The more I ask - the less problems they find - I am getting better. I hope you do not assume that you have no way to improve - otherwise: you are a big fat liar. My goal is to write code so clear that they can understand what and how it does without my help. Large, geographically concentrated development teams. That one I would agree. Adding people slows everything down. Full team should not be above 20 engineers, and some QA - above that, keep splitting projects. If you think it is not possible - you are a lousy architect.

    --
    <^>_<(ô ô)>_<^>
  7. Re:nope by m_pll · · Score: 4, Informative
    Win2K was built using VC5. XP is VC7.

    You can see the linker version using this command:

    dumpbin %systemroot%\system32\ntdll.dll /headers

  8. 4 P3 by thopo · · Score: 5, Informative

    sometimes it makes sense to read the article before you comment. (i know the chance is smaller to get modded up ...). the article says:

    Complete build time is 8 hours on 4 way PIII Xeon 550 with 50Gb disk and 512k RAM

    --
    keep it simple.
  9. Re:Can't pull IE from Windows, huh? by patchmaster · · Score: 5, Informative

    Those claims are clearly gross exaggerations intended to fool idiots and judges into thinking IE is an integral part of the OS. They define "IE" as every line of code exercised by IE in doing its thing, including mundane things like writing to the screen or saving a file. Then they discover if you pull out all the code for "fwrite" suddenly the system stops working. Duh! It's like claiming your car won't run without the windshield wipers, defining the windshield wipers as everything needed to make them work, including the battery. So you pull out the battery and, what do you know, the car won't start.

  10. Step aside, hippie. by nobodyman · · Score: 3, Informative

    UML and other modelling fads.

    While UML isn't the end-all, be-all, it is certainly not a "fad". When it comes right down to it, your will need to be able to describe the architecture of your code with something more than comment-lines and manpages. And, with the "U" in UML standing for "Unified", the is the ability for a new-hire developer, or perhaps the purchaser of your source-code, to understand what the hell is going on without pouring over millions of lines of source code.

    Code review is a power trip and best

    I suppose you'd rather accept source code sight-unseen? True, there are good and bad ways to conduct code reviews, but all the code reviews I've been a part of have been a fairly easygoing experiences and almost always helpful. Sometimes you really need another set of eyeballs to catch problems. Isn't that one of the good aspects of OSS??

    Large, geographically concentrated development teams

    I'm torn on this one. Yes, it's bad to simply throw a large number of developers on a team (unless you break them down... way down). On the other hand, you can't tell me that it's not easier to resolve a problem by walking over to the co-worker in the next cube than than email the co-worker who lives thousands of miles away. Didn't the formal release of Mozilla 1.0 get held up because a few key developers had not signed off on the new open source license and they simply could not be found??

  11. Reading the Slideshow you'll find... by sweede · · Score: 4, Informative
    that the 8 hour, 4 way p3, 50 gig drive compile was the OLD WAY of doing Windows 2000 based on how the developed Windows NT.

    the later slides describe the NEW project resource management and development processes for the continuing development of Windows 2000 (before and up until after the release?)

    Slides 23 and up tell you what they did and how well everything works on a project as large as Windows 2000 is.

    This slide gives a sumary of the new build processes http://www.usenix.org/events/usenix-win2000/invite dtalks/lucovsky_html/sld033.htm

    --
    I follow the SDK and GDN principles.. Spelling Dont Kount, Grammer Dont Neither
  12. Re:A recipe for disaster by cant_get_a_good_nick · · Score: 5, Informative

    The proper care and feeding of trolls...

    Eitehr you're a troll, or you've never done any real development.

    UML, can't comment on. Never did any. What I can say is that design is important, and shooting from the him on 20million lines of code won't get you very far. If UML helps you design, use UML.

    Formal checkins. In large complex projects, you need to be absolutely sure about your units. So many places for things to interact, if you don't have them as solid as you can get it, you'll get so many interaction bugs you'll never get anything done.

    Developer time costs $20-40 an hour. Ha, now I know you've never done real programming. Developer wages start maybe at $30/hr (not $20), up to $100/hr at spots. Thats just wages, not benefits, taxes all that stuff. If you have no experience in big projects, don't talk.

    Code review Code review is easily the best way of debugging. Study after study find that Code reviews find more bugs per unit of time than any other technique. as side benefits, it also transmits techniques from developer to developer. This comes from developers who want to learn and 1) too shy to ask 2) don't know that there is a better way. I learned something in code reviews, some techniques I never thought of.
    Can it be a power trip? yeah. CAn it lead to a clash of egos? yeah, but thats up to the review lead to control. A good review lead will keep that in check.

    Large, geographically concentrated development teams
    Not surprisingly, this is the model that Linux and most Open Source software uses
    They have no option because they can't pay developers, so no chance to get them in a concentrated area. There are plusses and minusses with the concentration.
    why OSS is phenominally successful compared with any of its proprietary competition
    Sales? No contest. MS.
    On what definition of success? Bugs? I've seen some really shitty OSS software. yes, the kernel is high quality, Apache, FreeBSD, others.

  13. Re:God help them... by Samrobb · · Score: 2, Informative

    Grrr. And of course, someone later on points to a blurb that describes SLM:

    Joel on Software

    --
    "Great men are not always wise: neither do the aged understand judgement." Job 32:9
  14. Re:A recipe for disaster by Anonymous Coward · · Score: 1, Informative
    Secondly, I've never met anyone who became a good programmer by reading books, even books as high quality as O'Reilly's. I learned to code by writing code and reading others' code. The books make handy references, but sticking to books is akin to trying to learn to write well by reading the dictionary.

    ORA books will teach you part of a particular API. If you want to read books that teach good coding techniques try Addison Wesley. Take titles such as: Effective Java, Effective C++, Refactoring, Design Patterns, Distributed systems Concepts and Design. Only the Per and X books come close. (I don't consider the Unix books pregramming books per say.)

  15. Re:nope by Anonymous Coward · · Score: 2, Informative

    Windows isnt' built with Visual C++ whatsoever. MS uses a custom internal compiler pretty much designed for building Windows and nothing else. In fact, during the Win2K dev process I'm pretty sure they took 4-5 different compiler drops. It might be based off of VC (I honestly don't know) but I know for a fact that they do NOT use VC at all to build Windows.

    JD

  16. Re:Zerg by Kevinb · · Score: 2, Informative
    View Source is showing that slide 19's content is commented out for some reason. Here it is:
    • Serialized Development

    The model from NT 3.1 -&#062 Windows 2000

    All developers on team check-in to a single main line branch

    Master build lab synchs to main branch and builds and releases from that branch

    Checked in defect affects everyone waiting for results

  17. Re:Can't pull IE from Windows, huh? by sql*kitten · · Score: 3, Informative

    So why can't you just build 2K without those 2 subprojects, or just stubs inserted for the functions declaired in those projects?

    The thing you must understand about Microsoft code is that everything is a component, OLE in the old days, COM now. That's why you can easily call Excel's charting functions from your own code, say. It's also why you can run macros inside Outlook, all Microsoft applications are components and scripting glue (like VBA). Wordpad, for example, is almost no code in and of itself, it's a rich text component, a toolbar component and so forth. If you want to build a custom web browser, you can just reuse the HTML renderer and whatever else you need from IE, they are all components.

    But this also means that if the internet components were entirely removed, there would be no OS-level TCP/IP support, the online help viewer which uses the HTML renderer wouldn't work, etc. So that's why MS say they can't remove MSIE - because IExplore.exe on your hard drive is just the glue holding together a bunch of components that are provided by the OS and available to any application.

  18. Build Time by I_am_God_Here · · Score: 2, Informative

    Team size went from 200 (NT3.1) to 1400 (Win2k). Complete build of win2k time is 8hrs on 4way PIII and requires 50GB of hard drive space.

    Big deal I worked on a project that had, at that time, 34 hours or so, that was on a 2 way I think though and 4 years. But the project is still growing, more then tripled, since I transfered, according to my friend that still works on it.

    --

    Capitalism: unequal distribution of wealth
    Socialism: equal distribution of poverty
  19. Re:What a DISMAL culture FAILURE. by Anonymous Coward · · Score: 1, Informative

    well, ol' NT4 ran on MIPS, ALPHA and there were even attempts on getting it to PowerPC (some ol' apple ceo even wanted macos replaced by Win32!!!, think amelio were his name)

    the new XP is scheduled to be running on IA64 which is a completely different architecture

    cannot say much about the other things, except when you have a LARGE userbase, there's were the script kiddies will be

    also closed source drivers has no way of quality assurance from third parties /Thomas arneATusersDOTsourceforgeDOT.net (damn i need to get that slashdot account workin')

  20. Re:What a DISMAL culture FAILURE. by Nadir · · Score: 3, Informative

    Portability:
    NT4 came out on x86, Alpha, PowerPC and MIPS

    --
    --
    The world is divided in two categories:
    those with a loaded gun and those who dig. You dig.