Slashdot Mirror


Why Vista Had To Be Rebuilt From Scratch

iliketrash writes "The Wall Street Journal has a long front-page article describing how Jim Allchin approached Bill Gates in July, 2004, with the news that then-Longhorn, now-Vista, was 'so complex that its writers would never be able to make it run properly.' Also, the article says, 'Throughout its history, Microsoft had let thousands of programmers each produce their own piece of computer code, then stitched it together into one sprawling program. Now, Mr. Allchin argued, the jig was up. Microsoft needed to start over.' And start over they did. The article is astonishing for its frank comments from the principles, including Allchin and Gates, as well as for its description of Microsoft's cowboy spaghetti code culture."

20 of 711 comments (clear)

  1. Jim Allchin by tyates · · Score: 4, Informative

    One of the best books I ever read on the Microsoft code culture was "Breaking Windows: How Bill Gates Fumbled The Future Of Microsoft" by David Bank. From the book, Jim Allchin is the Windows guy who quashed Brad Silverberg and the (relatively) innovative Internet team - although ironically he was an early advocate for getting TCP/IP support in Windows. He believed that all innovation in Microsoft should take place under the Win 2k banner and that the company should just keep making Windows bigger and bigger and bigger. Hmm, maybe it got too big.
    http://www.amazon.com/exec/obidos/tg/detail/-/0743 203151/qid=1127565487/sr=8-1/ref=pd_bbs_1/102-0616 241-1101748

    --
    Tristan Yates
  2. Re:Anarchy of Development by NeuralAbyss · · Score: 4, Informative

    I have a friend at university who was recently hired by Microsoft, partially for a quality control role. While this's a single case, and in no way can be extrapolated to the whole company, from what he's said, it's apparent that they're reusing a large amount of their codebase, with the dodgy bits either rewritten or modified and thoroughly tested.

    As you said, there's no way in hell you can have a 12 month rewrite. But, with any luck (for the end-users), this will hopefully turn out to be more than PR fluff.

  3. full text, detoxed by Anonymous Coward · · Score: 2, Informative

    Battling Google, Microsoft Changes How It Builds Software

    Delay in New Windows Version Drove Giant to Develop Simpler, Flexible Product

    Engineers Get Trip to 'Bug Jail'

    By ROBERT A. GUTH
    Staff Reporter of THE WALL STREET JOURNAL

    REDMOND, Wash. -- Jim Allchin, a senior Microsoft Corp. executive, walked into Bill Gates's office here one day in July last year to deliver a bombshell about the next generation of Microsoft Windows.

    "It's not going to work," Mr. Allchin says he told the Microsoft chairman. The new version, code-named Longhorn, was so complex its writers would never be able to make it run properly.

    The news got even worse: Longhorn was irredeemable because Microsoft engineers were building it just as they had always built software. Throughout its history, Microsoft had let thousands of programmers each produce their own piece of computer code, then stitched it together into one sprawling program. Now, Mr. Allchin argued, the jig was up. Microsoft needed to start over.

    Mr. Gates resisted at first, pushing for Mr. Allchin's group to take more time until everything worked. Over the next few months, Mr. Allchin and his deputies would also face protests from programmers who complained he was trying to impose bureaucracy and rob Microsoft of its creativity.

    "There was some angst by everybody," says Mr. Gates of the period. "It's obviously my role to ask people, 'Hey, let's not throw things out we shouldn't throw out. Let's keep things in that we can keep in.'"

    Ultimately, Mr. Allchin's warning proved cathartic and led to what he and others call a transformation in Microsoft's most important product. A key reason: the growing threat from rivals such as Apple Computer Inc. and makers of the free Linux operating system. In recent years these companies have been dashing out some software innovations faster than Microsoft. Google has grown particularly effective at introducing new programs such as email and instant messaging over the Internet, watching how they perform and regularly replacing them with improved versions.

    Microsoft's Windows can't entirely replicate that approach, since the software is by its nature a massive program overseeing all of a computer's functions. But Microsoft is now racing to move in that direction: developing a solid core for Windows onto which new features can be added one by one over time.

    As always, Microsoft's great fear is that it will lose its near-monopoly on computer operating systems and basic office software. In the short term, there is little danger of that. But the more Google and other software makers encroach on Microsoft's turf, the greater the chance that someday computer users will wake up and find Microsoft Windows superfluous.

    "What happened when the American car companies failed to update their manufacturing lines? There was a more efficient way to bring cars to market for a lower price and they lost their market," says Microsoft Vice President Chris Jones. "We're in a little bit of a different industry but it's the same thing."

    Microsoft's holy grail is a system that cranks out a new, generally bug-free version of basic Windows every few years, with frequent updates in between to add enhancements or match a competitor's offering.

    The Longhorn crisis helps explain the sweeping restructuring that Microsoft Chief Executive Steve Ballmer announced this week to organize the company into three major business units. A key goal is to force Microsoft to be more nimble in producing and delivering software.

    Mr. Allchin's reforms address a problem dating to Microsoft's beginnings. Old-school computer science called for methodical coding practices to ensure that the large computers used by banks, governments and scientists wouldn't break. But as personal computers took off in the 1980s, companies like Microsoft didn't have time for that. PC users wanted cool and useful features quickly. They tolerated -- or didn't notice -- the bugs riddling the softwar

  4. Re:Anarchy of Development by Jugalator · · Score: 5, Informative
    I personally would like to hear more about the software development procedures and methodologies used in other large projects - how successful different types of development are.

    Not sure if this is what you were interested in, but I think Paul Thurott has some great lengthy and detailed articles, along with some interviews with Microsoft engineers for some insight in the stress, problems, and achievements with various large Windows projects, and also with pictures of their build labs and test machines. :-)

    For example:

    Windows 2000

    Windows XP SP2

    Windows Server 2003


    A disclaimer bias-wise is that Paul Thurott is a guy who wants Microsoft to do well, but he's not afraid of criticizing them harshly when he doesn't agree with their decisions, so I think it's still not a case with "inside stories" being too biased to be useful. He was for example the guy behind the quote that Windows Vista had the markings of a shipwreck after seeing Beta 1. Although he has had some missteps IMO such as saying Windows Me should be far more reliable than Windows 98. ;-) I guess he had to eat his own words there...
    --
    Beware: In C++, your friends can see your privates!
  5. It wasn't rebuilt from scratch! by kidventus · · Score: 2, Informative
    It was just "re-committed" with an automated process. So, they basically adopted the OSS strategy of not allowing blind commits to the CVS tree without bug testing. Revolutionary I tell ya!

    The same code is still there, and the same "start menu" philosophy. This wasn't a philosophical and technology change, it was an administrative one.

    I'm glad they have good Quality Control now... maybe they'll apply for the ISO 9000 designation? Regardless, I don't think this points to a new thinking or revitilization in the company as the title and article seem to suggest.

    It's not a new code base, just a new process.

    --
    There is a rage in me to defy the order of the stars, despite their pretty patterns.
  6. Re:Amazing by Antity-H · · Score: 4, Informative
    I mostly agree with your remarks but you are mistaken one the last one : they did not restart from scratch.
    The day before in Microsoft's auditorium, Mr. Allchin had announced to hundreds of Windows engineers that they would "reset" Longhorn using a clean base of code that had been developed for a version of Windows on corporate server computers.

    From what I read on the net, the code base used was that of windows 2003 server.
  7. Re:That explains a lot by DaHat · · Score: 3, Informative

    Not quite true... In the mid 90's they did release a version of their own internal tool known as ChangeControl under the name Microsoft Delta... it flopped, big time. Needing something better, they purchased One Tree Software in 1994 and rebranded their One Tree SourceSafe to the more Microsoft style name of Visual SourceSafe.

  8. Re:And Microsoft rule by TMLink · · Score: 2, Informative
    From the article:

    The day before in Microsoft's auditorium, Mr. Allchin had announced to hundreds of Windows engineers that they would "reset" Longhorn using a clean base of code that had been developed for a version of Windows on corporate server computers.


    So they took the clean code they had from their server core (maybe from the next server edition, maybe from 2003?) and then used that to create Longhorn. So no, they didn't start from scratch, but they aren't building upon the XP quicksand foundation either.
    --
    Every time a guy gets a threesome, somewhere in heaven an angel gets his wings. --Cary Tennis
  9. Re:That explains a lot by dotcher · · Score: 2, Informative
    The "gates" that are being talked about are probably "quality gates", which aren't just about automated testing. There's a brief description of them here.

    As for SourceSafe, I've been told that it sucks. Badly. The source control in Visual Studio Team System is meant to be an awful lot better - they're trying to compete with things like Rational ClearCase. That said, it's both pricey and a 1.0 release. It might be worth looking at, though, if you have management insisting on a Microsoft solution.

  10. Re:That explains a lot by Anonymous Coward · · Score: 1, Informative

    Linux is open. So, you can actually answer your own question by looking at the code.

    Microsoft is closed. You cannot answer the same, or really any question, about the code. I know Microsoft lies to its customers so I sure don't trust the unsupported claim that the code for its latest hodge-podge OS endeavor has really been written from scratch. I'd say, if anything, take what MS says and believe the opposite.

    We all know this article would not have appeared if Microsoft's marketing department had not approved it. What was Microsoft's claim during the Anti-Trust Case? Oh, that evidence wherein we admit doing something against the law -- that's just marketing. We didn't really do something against the law. We just chose to describe in such a way to our customers for marketing purposed. Yeah, right.

  11. Mac OS X not that modular by leandrod · · Score: 4, Informative
    osX, the ultimate in plug-in philosophy,

    Mac OS X is not that modular. GNU Hurd is far more, and even GNU/Linux.

    from the kernel

    Mac OS X’s kernel’ not modular at all. It has conflated the Mach microkernel, which has already been abandoned by the Hurd for its bad performance, with the monolithic BSD kernel. The result is something just as monolithic as BSD, but much larger, more complex and slow. Linux is not as fast or simple as BSD, but still much faster than Mac OS X — and both are just as modular.

    In contrast, the Hurd on the Mach is a little bit slower but much more modular, and the new L4 version has the potential to be much faster and still much more modular, because it is a true microkernel with multiple servers.

    to the GUI

    The Mac OS X GUI’s not modular at all X is.

    --
    Leandro Guimarães Faria Corcete DUTRA
    DA, DBA, SysAdmin, Data Modeller
    GNU Project, Debian GNU/Lin
    1. Re:Mac OS X not that modular by Dolda2000 · · Score: 2, Informative

      Could you cite a specific example of where there are two specific regions of code within those systems that are not linked through a well defined interface, and make a convincing argument that they should be?

      Well, I don't exactly know OSX inside out, so these may already be so, but how about filesystem drivers, memory managers, I/O schedulers, device drivers (in particular drivers for devices like USB or Firewire) and network stacks?

      I think the arguments for all of these should be rather obvious, but just in case they aren't:

      • Filesystem drivers: It doesn't exactly hurt to be able to mount an FTP, WebDAV, SMB or NFS server on any directory as any user, nor does it hurt to be able to write extra filesystem drivers (for some archaic network protocol or filesystem dump or anything) and use them, as a user, without permission to alter the kernel.
      • Memory managers: It's not exactly an impossible thought that I'd like to mmap a shared memory segment over TCP or write my own swapping algorithm. It would also be necessary to write a memory manager in order to write a complete filesystem driver ("complete" in the sense of being able to mmap files).
      • I/O schedulers: Well, there may not be any obvious advantages to this. :) It doesn't hurt to be able to either, though.
      • Device drivers: There would be tremendous advantages for a user to be able to plug in his or her own USB device and use a non-installed driver for it, without modifying the kernel or risking to bring down the system.
      • Network stacks: It would be a good thing for a user to be able to plug his or her own tunneling driver or transport layer protocol (for example, for VPNs) without having to modify the kernel or affect other users.

      Did you know, by the way, that a system can be modular on the source code level and then (based upon a compilation flag) it can either be built such that (A) both regions are in kernel space, or (B) one region is in kernel space and the other is in user space. The former would use a very efficient interface, whereas the latter would use one that was more expensive (for having to cross that boundary).

      In both cases, the regions exist in separate modules...it's just a compile-time optimization. Modularity is mostly a "maintainability" concept. The user should never care whether two regions are communicating via a Mach message or a pointer on the function-call stack to a struct in the heap. Using the latter does not make the source less modular.

      That's not entirely true. First of all, modularity is not only an aspect of maintainability. It is also a matter of being able to reconfigure a system during runtime, without the need for restarting components or recompiling any source code.

      Also, the latter does often make toe source less modular. Being able to share a memory space (on a somewhat normal computer) enables much greater flexibility which cannot be emulated over a communication port. If you pass a struct over a function call, that struct is able to contain pointers to other parts of the same address space, which cannot be done over a communication port. In order to even being able to think of doing that over a port, you need to think long and hard over several aspects of data serialization (since most communication ports simply send arrays of ordered bytes back and forth). Since C doesn't offer any introspection into structs and other datatypes, this kind of serialization always needs to be done manually in C-based programs. In order to be able to overcome this limitation, the entire system would optimally have to be written in a more flexible language, like LISP or Java, but only being able to run managed code on a system would be ugly. A suboptimal solution would be a C-based language with introspection (and possibly type-tagging), but that, too, is quite ugly.

      Of course, the lack of non-ugly solutions to this problem lies in th

  12. Re:And Microsoft rule by jcr · · Score: 2, Informative

    Ahem OpenStep was a joined effort of Sun and Next Systems...

    Not exactly. NeXT tossed NeXTSTEP over the wall to Sun, who promptly botched it. Did you ever see OpenStep on Solaris? Let me tell you, it was not a pretty sight.

    -jcr

    --
    The only title of honor that a tyrant can grant is "Enemy of the State."
  13. More technical details by DJ-Dodger · · Score: 3, Informative

    There are some more technical details on the big map of windows and the quality gates in this blog post:

    http://blogs.msdn.com/larryosterman/archive/2005/0 8/23/455193.aspx

  14. Same Old PR Spin by dcuny · · Score: 3, Informative
    When Microsoft comes out with a new OS, they have to convince users that they need to switch to it. This can be difficult, since customers have made a hefty investment in the technology, and tend to be pretty happy where they are.

    There's a carrot and stick approach. The carrot is that Microsoft touts all the cool new features that will make life so much easier. Features you won't be able to live without.

    Then there's the stick. Part of it is to have Office use features of the new OS, so you won't be able to perform some spiffy operation without it.

    Another part of the stick is to badmouth the prior version, but explain that all the issues being badmouthed are fixed and gone in the new OS.

    So you get stories where Microsoft "finally admits" to various things, (like that DOS really does underly Win9x, despite assurances that it was gone)... You've read them.

    There's certainly truth to what Microsoft claims, and it's nice to see real issues being addressed. For example, WinXP's move away from the Win9x base to the more solid WinNT base was a huge win for most users (although gamers complained about a lack of drivers).

    But don't be fooled - fundamentally, you're just looking at PR spin designed to created demand for an new OS.

  15. Re:That explains a lot by thoth · · Score: 2, Informative
    I need to find some solid info to justify not using SourceSafe


    That should be easy, SourceSafe just can't handle large numbers of developers or files.


    Microsoft doesn't even use SourceSafe. I'm pretty sure the VS guys did a study and found the vast majority of SourceSafe users were people like admins or secretaries who were backing up docs and spreadsheets on their department server.


    When I started at Microsoft, they use SLM (source library manager) which convenient was pronounced SLIME. This thing was horrible: it used file locking, wrote little temp files to "lock" directories, used your volume label as part of your checkout, etc.


    For Win2000, they threw that away and bought Perforce's code, and modified it a little bit. It was branded "Source Depot", and was about 100 times better.


    But back to your question, SourceSafe just doesn't scale. Try using it with 200 developers and a couple thousand files. It'll die.

  16. Well placed propaganda. by tji · · Score: 2, Informative

    Microsoft got The Wall Street Journal to publish that free advertisement? That's incredible.

    Look at MS's big challenge now.. They are a monopoly, they are not going to increase their market share any more, because they already own the market. Their challenge is getting people to stick with their stuff, despite the demonstrated long standing problems in security.

    So, they throw in some tidbits critical to MS's past practices, because everyone is painfully aware of the problems they have had with security, viruses, etc. And they introduce our savior, Jim Allchin, who in a miraculously short amount of time, fixed all the development issues and got the company on track producing bug-free software.

    Now, IT managers can breathe easy, assured that the next release of Windows will solve all that pains them, and will be well worth the high price MS demands.

    This article is a great demonstration of why MS is on top. They have the clout to place a piece of propaganda in a national publication that will be read by a good percentage of corporate execs. That's innovation, MS style.

  17. Re:That explains a lot by dioscaido · · Score: 4, Informative

    For the record, even though I only develop in a particular branch of Longhorn, I do have access to the whole source tree.

  18. It WOULD be unbelievable, if you'd gotten the idea by mjfgates · · Score: 2, Informative

    Microsoft has BEEN using automated integration and unit tests, for at least fifteen years. (I spent a year owning some of the unit tests for USER, back in NT 3.1 days.) Windows has one of the best systems for allowing modular code out there-- yeah, we know about DLL hell, but it's there because lots of programs *do* use the same shared libraries, and with the versioning stuff in Win2k and later it's mostly dealt with. Predetermined interfaces... gawd. COM was developed precisely to allow that, and it's been working its way steadily deeper into the OS over time.

    Microsoft's existing dev practices would allow them to produce something the size of Apache, or PHP, or OpenOffice, with no trouble; they needed to do something better because the project they're taking on is so much larger.

  19. Re:And Microsoft rule by SewersOfRivendell · · Score: 3, Informative

    Apple's own systems programming staff

    You misspelled executive management. Apple had plenty of fine programming talent who would have been happy to execute on a strategy. Any strategy.

    It may surprise you to learn that many programmers at Apple -- including key members of the Cocoa team, the Carbon team, and the IOKit team -- worked on Copland. Difference between Copland and Mac OS X? Executive management. Define a goal and stick to it. Q.E.D.

    In fact, a non-trivial amount of code and concepts from Copland is recycled in Mac OS X (excluding Classic for the purpose of this discussion ;) ). A lot of the Carbon toolbox implementation comes from Copland (most of it via Mac OS 8.5). Much of the Darwin IOKit design (but _not_ the implementation) is derived from Copland's NuKernel driver architecture, and some small parts of IOKit are derived from Pink/Taligent designs (but not the implementation).