ATTENTION: You are viewing a page formatted for mobile devices; to view the full web page, click HERE.

Main Area and Open Discussion > Living Room

Broken Windows Theory

(1/3) > >>

Mark0:
An interesting post by a MS blogger, about the "inner workings" behind Vista development.

Link: http://blogs.msdn.com/philipsu/archive/2006/06/14/631438.aspx

[...]
Windows code is too complicated.  It’s not the components themselves, it’s their interdependencies.  An architectural diagram of Windows would suggest there are more than 50 dependency layers (never mind that there also exist circular dependencies).  After working in Windows for five years, you understand only, say, two of them.  Add to this the fact that building Windows on a dual-proc dev box takes nearly 24 hours, and you’ll be slow enough to drive Miss Daisy.
[...]
--- End quote ---

Bye!

JavaJones:
It's a shame that with all that money and development talent they are unable to really rally behind a common "meta goal". That really seems to be the problem there to me - they can't even agree on a realistic release date. It seems like Vista is a true product of committee design. So the question then becomes, is it possible for a project of that size *not* to be?

Obviously you have to look at the Linux community and its development process for an example of a project (projects) of similar scale that work very differently. Perhaps there are lessons to be learned there. Part of what makes Linux actually work is that there are a very few common goals that inspire everyone who is involved, and those who are involved are there because they really want to be. There's a lot to be said for personal inspiration and motivation as opposed to simple monetary incentive.

Ultimately it seems like everyone wants some similar things in the basic parts of an OS. So that's the stuff that should really be hammered on for the core. In a way it almost seems like anything that people can't agree on readily should be dropped from the core OS (by which I mean the product that eventually goes on sale). Obviously that's a bit extreme and you wouldn't have much of an OS if you did that, but taking a less "we must include everything by default" approach could be part of the answer to this "uncontrollable" development. Truly modularizing Windows so that the core is small enough to be manageable and the team that works on that core can really make it fast, secure and stable, presenting the other teams only with interface logic to their core systems (in other words get rid of all these interdependencies the article mentions).

That's probably not quite feasible either, but it seems like making the project more manageable is critical. That doesn't necessarily mean *centrally* manageable, it could even mean somehow *self* managing, which in some sense is the way much of the open source community often works. So that's back up to the first points. Common goals and personal inspiration = robust core feature sets. Where open source tends to fail is UI design and consistent presentation. Maybe this is where you lock a couple really good designers in a room and have them just hash everything out...

Wait, I'm just rambling. I have no idea what I'm talking about. But I swear I started with some interesting ideas. :D Oh well, I'm probably too hungry to think rationally at the moment. ;) But, like many here I'm sure, I've had a whole lot of "great" ideas for "the perfect" OS over the years, so it's hard to resist yammering on a bit when a subject like this comes up. Ultimately I think I'm just (once again) disappointed that MS squanders (IMO) their massive resources.

- Oshyan

Gothi[c]:
Why don't they use a compile farm with many of those dual cpu boxes?
Why don't they have a modular design where you only have to compile what needs to be compiled?
...

JavaJones:
I think modularity in general would be a good thing for an OS this massive and complex. If nothing else it gives you clear divisions for teams to aid management. Working with encapsulated modules that only interact with other bits through appropriate interfaces would surely be the sensible approach to all the major goals of an OS - stability, flexibility, security, etc.

- Oshyan

jgpaiva:
Why don't they use a compile farm with many of those dual cpu boxes?
Why don't they have a modular design where you only have to compile what needs to be compiled?
...
-Gothi[c] (June 16, 2006, 11:51 PM)
--- End quote ---
You're right about the first part, they should use clustering or something like that. I believe they do use, i think that guy was just giving an example, to explain how big windows actually is.
As for modular design, with all those dependencies, probably it's not possible. (i mean, they're supposed to be some of the best engeneers.. ;) )

Navigation

[0] Message Index

[#] Next page

Go to full version