The 'Fire upper management' debate over at Mini-microsoft

First, dig in and have a good read in the comments over at Mini-microsoft: Vista 2007. Fire the leadership now!. It's a good read, though with over 450+ comments, it can be a bit time consuming. While reading the comments, and also the ones in the slashdot threads Windows Vista 5342 screenshots and Microsoft's Not So Happy Family, I started to wonder about some things, which in general come down to the software engineering process coupled to the inevitable sales force.

First of all, Vista seems to be completed with a bottom up scenario: it's done when all the components which form Vista are done. (source). I don't get this. Ok, I get the necessity of finishing all components which make up the product you want to ship, but what I don't get is that the OS is sold as a large box of tiny components. Anyone who has ever installed a modern Linux distro knows the difference: during the install, you're presented with a list of components (applications if you will) which you can install as well, ranging from shells to management tools to wordprocessors. The stuff you select is downloaded from the internet during the installation (or distribution point, which can be a server in your network), or if you downloaded everything up front, read from the DVD/CD, however it's the internet connection that's the key here.

It doesn't stop there. After you've installed the OS, you can access that list (and extend it with different sources on the web as well) at any time and select new apps to download, updates to install or to uninstall software if you want to. Everything is checked for dependencies so it's a click-click-go process (you can also wet yourself from the command line but why bother ).

Why doesn't Microsoft use this approach? And I mean: have users download additional components from within the OS with a nice UI. Even commercial software. Want a wordprocessor? Pay the $$$ with your creditcard and you're good to go. The advantage of this is huge:

  • The initial installed OS is slim and therefore can be shipped much easier.
  • You can create a whole new revenue stream for commercial downloads, or from people who want to offer their products via the generic distribution channel.
  • You cut out the middle man: software is bought via the web
  • Subscription model subscribers now have more value for money as the list of components to download is updated on a very regular basis, not once in the n years
  • Piracy can be limited, as downloading of components can only be done from legal OS installs.

There's something in windows called Windows Catalog, however it's not integrated inside the OS like the apt-get based systems in Linux (or equivalents). Heck, when I installed Suse 10, I downloaded the boot iso (23MB or so) and installed via the internet from a trusted FTP server.
What's interesting in this context is that in the game industry, more and more voices are heard that the shrinkwrapped model will die soon, with Valve's distribution system 'Steam' as a good example (which happens to be a company founded by ex-Microsofties, ironically enough )

Second of all, Vista seems to need top hardware to run with every bell and whistle(r?) it has: the screenshots of build 5342 show a rating system, and the guy running the build doesn't really have a slow system but still gets a low rating. (See this slashdot post for a discussion on it, complete with link to MSDN docs for more clarification). Now, I don't know about you, but whatever Microsoft puts between my applications and my hardware, the last thing I want it to do is to eat more cycles and resources away from my applications than it has to. My Amiga 500 with 1MB ram and a 7.16MHz processor was perfectly capable of task-switching the cr*p out of different threads/processes, so it's not the core-OS that needs all that power. So what eats away the cycles? Frankly, I have no idea. Though I do know this: If the OS on my system requires me to upgrade my hardware, something fishy is going on, because it's the world upside-down.

This slashdot post words it perfectly. For people who refuse to read posts on slashdot, I'll quote the beef below.

Everytime the OS forces a hardware upgrade on people we're moving away from app's driving user computational requirements to being driven by the thing which is just supposed to manage all the bits of a PC - not mint money for the hardware manufactures.

There. Admitted, buying hardware and not using it to its full capacity is a waste of money, however, if the OS needs the hardware to run properly, what's left for my applications? More or Less than what's left when I run Windows XP? if (less) {Vista.PutBackOnShelve();}, I can tell you that. I want my hardware to put to work for my applications, not my OS. I'm not kidding with my Amiga remark above. An OS kernel isn't something which has to be slow, and Vista's kernel likely isn't slow but very fast. It's the cruft that's coming with it that eats the cycles away, and MS should re-think their strategy in that area: the people who want to have their hardware working overtime to just render Windows Explorer, let them buy the stuff that offers them that possibility. For the people who just want the OS to be the moderator between resources and processes, between hardware and software, let there be a way to purchase that OS without the bells/whistles.

How it's going now is that the OS is starting to become (or already has become) an application on its own. And IMHO that's a bad thing. If the effectively amount of raw computer power left to my applications under Vista is roughly the same as it was under Windows 2000 on a P3-933, what have we won in all those years? IMHO not much besides pretty pictures and shiny mirrors. But trust me, shiny mirrors and pretty pictures don't get the job done you have to do.

So what should be done? I don't work for MS, though reading the comments over at mini (also in other threads) is that there are two things which need to change:

  • People have to feel connected with what they produce again. The product they work on, be it a developer or a manager, has to be their child, their life. Again, just an observation from the comments there.
  • Products produced by Microsoft have to be created for customers who actually exist, and the way the products work and feel has to be driven by what customers want, not what sells the product according to Marketing. You know why? Because in the end, users don't pay for software which doesn't give them real value. The days of selling software which looks great but does the same job as the stuff you're been working with for the past 2-5 years are over. Software vendors have to deliver or go back to the drawing board.

Of course I have no illusions in this context, I'm pretty sure a large group of people will say they'll be very happy with Vista. However it depends to be seen if that happyness is based on the lack of knowledge what they're missing or the result of a fine piece of engineering that's shipped under the name 'Vista'.

14 Comments

  • You have a very good point, that MS needs to change the whole idea of the Operating system to be something more modular.



    However, once you do remove the 'cruft', you start getting rid of libraries and system components that are required for other parts of the whole thing to work. eg. the parts of IE that sit in the OS that a lot of apps use to render html, and connect to the internet. This is an OS component, even though its ostensibly part of IE. If we assume that this is shipped with the OS, what else comes too? Where will it end?... with the status quo we have today.



    Another way of looking at this is in those libraries themselves - now we have .net, we have an even larger library that has ludicrous memory and processing requirements, and is slower than before. It is designed to make programming easier and more secure however, so should we junk that because you prefer a more slimline toolset?



    The other issue with MS, is that they are driven by stuff that people *will* pay for, not stuff they need. We ran out of new requirements for Word in 1997, since then, its been "stuff" added on that no-one uses, or UI "stuff" that looks pretty (but obviously no-one needs). Still, if we were using Word97, MS wouldn't have a big revenue stream. The whole business model of software requires changes and new versions, regardless of what the added functionality is.



    PS. I had an Amiga too - it was as brilliant as people say it was :-)

  • Anyone will agree that I am a big Microsoft proponent. You know that for sure Frans :), because I think you are at times anti-microsoft.



    But, MSFT screwed up big time with Vista. They started working on it in 2002, and it will be released in 2007?



    Hey it's a good OS, but 5 years from today in the computer industry, we will probably be commuting in flying cars. 5 years is a damn long time IMO.



    So yes, IMO, MSFT screwed up on Vista.

  • Your Amiga ran faster than mine. Mine only ran at 7.14 Mhz, not 7.16 Mhz.



    Personally, I think by far the biggest reason for the higher level requirements are for the new graphics subsystem and all the infrastructure code that enables it.



    I doubt there will be much if any additional fat if you are just writing some low level code that uses none of this new stuff.

  • PAL amiga's ran a little faster, as the refresh rate was a little lower ;)

  • While you wait for Vista, please give Ubuntu a chance. No visual gimmicks, no fancy screen backgrounds, no fancy windows animations, but 99% desktop Windows functionality (I exclude games) with no hassles, excellent installation and great package management system.



    Also, oh my dear, it does not need registration, will not tell anybody what music you're listening or what movie are you watching. It will not host a few trojans, worms or the like serving other people's interest.



    Oh, by the way, and it will cost you exactly zero (put whatever monetary currency here).

  • I don't 'hate' microsoft, why should I? it's a big company. I hate corporate tactics and marketeers ruining the hard work of fine software engineers, no matter which company they work for.



    about ubuntu: you can jump up and down whatever you want, fact is that it doesn't run vs.net, it doesn't provide the working environment for me to do my job, hence, I can't use it. I have it installed as dual boot on my laptop though. It's OK, though it's not the OS I need for my daily work.



    I also doubt if vista will be that OS. XP doesn't crash on me and runs all the software I need to run and performs rather well. Though perhaps I need to upgrade in the future, (and this is a bridge to what I said earlier about hating corporate tactics and marketeers ruining the work of engineers), because DX10 isn't going to run on XP if I'm correct. This means that if a game requires DX10, what's the choice a person has? Oh, and no, DX10 isn't something so different that it can't run on XP. But perhaps I misunderstood/recall it and will DX10 run on XP, I only hope so, but I wouldn't be surprised if it wouldn't.

  • I don't think Frans hates Microsoft either. I don't. Yet, I'm not brown nosing. There's a difference between hating MS and simply not being a Microsoft fan-boy.



    Myself, I've tried Ubuntu as well. Still running it. It runs quite nicely actually with mono-develop.



    Anyway, it beats the crap out of Vista beta when it comes to UI performance (with or without Aero). All the fancy stuff, glass, Aero, the lot, give me a break. Or at least give me an option to turn absolutely all of that UI shiny stuff off.



    Linux isn't quite ready for the desktop yet, but it's getting damn close.



    Main 3 reasons are: lack of driver support, Windows software lock-in and lack of driver support.



    ;-)

  • Bloody heck. Just been reading some of these comments on the minimsft.blogspot.com link you posted Frans.



    Are they an eye-opener or what!?

  • Why doesn't Microsoft make Windows more modular? Because it's an absolute nightmare. There's little that's more obnoxious than trying to install something on Linux and finding out that it has a million and a half dependencies. I just wanted to install the latest potato slicer. Now it turns out I have to upgrade to the latest version of X11, install perl and ImageMagick, and shake not just one but TWO dead chickens before I can get the potato slicer installed.



    Microsoft's strategy is two get a base system that programmers can reliably code against. This makes for easier development AND a better end user experience, because now the developer doesn't require the user to install the woodchipper. It's built right in.



    The modular approach has it's advantages, but the tradeoff is that dependencies are for more trouble to deal with, and developers have to spend time coding against multiple tools/apps/whatever that are almost-identical-but-not-quite. On Windows, if I need to use some simple drop-in media player or web browser functionality, it's there. On Linux, I'll need to figure out which apps/libraries are there, and then tell the user that they've got the wrong ones and can't use my program. I get double points if I crash with some obtuse error message instead of telling the user what's wrong.



    I don't have much of an opinion about whether Vista is a serious screw-up. I fully appreciate their decision to ship a monolithic OS, though, rather than the piecemeal modular approach taken by Linux distributions.

  • Great that at least you don't reject Ubuntu as a choice. I was not trying to advocate Ubuntu as a universal OS for all things.



    Of course, there are people out there that are SW locked in Windows (VS.net is a good example) There's also people locked on the Mac or even people SW locked in Unix/Linux.



    I agree over the SW lock in point for keeping Windows. I agree with the HW support if we only restrict to home gamers and high end power users. For the rest, medium sized business and corporations where HW is already standarized, Linux driver support is currently enough to survive.



    One thing I agree with is the Mini-Microsoft post saying that there's no 30 second argument to switch to Vista as of today. Again, except perhaps for hard core gamers and high end power users. Those are a market minority.

  • I have taken a look at Vista's promised features and required hardware. Honestly I would like to see that 30 second argument because I just can't get it. Vista will force me to get a PC with 4 times more computing power than my current one in order to ... have a 3D translucent destktop ??? Come on... I tuned my XP desktop to look like Win95, I'm not going to waste any resources on that. What's going to be left for cpu and memory hungry apps like vs.net?



    As for gaming... well... if you need a 4.4 GHz box with a 256 mb DX10 compatible graphics card just to run the OS, maybe it's time to drop the PC as a gaming platform :)

  • The reason that Microsoft will not move to a "download from the internet" model is that they have an enormous base of users with extremely limited internet connectivity. Here I am thinking about countries where they still have data caps on broadband connections (e.g. New Zealand) and highly asymmetric broadband connections (i.e. 2Mbps download with 128kbps upload - New Zealand again).



    Microsoft has done an amazing job of selling their software around the world. Moving to an internet download model would really hurt their existing customers from smal-medium enterprises down to the individual home users.



    I am a great fan of most things Linux but Linux installation is still pretty hard for the majority of people. The sort of application-picker installer you describe sounds good but in practice will lead to a huge number of support requests.



    For Microsoft, the best choice is a big DVD (or set of CDs) with everything on it. Their customers understand this. Their customers do not understand the internet.



    If you want proof of this lack of understanding, ask yourself why all end-user hardware for connecting to a broadband service is almost always called a "modem" even when the more technically accurate name ("router") is more appropriate.



    One of my friends installed an ADSL router into the home of a friend of his recently. He got an inexpensive router. Until then, his friend needed to have her PC running to ensure that anyone on the home LAN could connect to the internet. So everything went via her PC. This seemed 'natural' to her. She found it confusing that here PC did not have to be powered on for anyone else to connect to the internet. Even more confusing was the fact that she didn't have to do anything on her PC to "connect" to the internet.

  • The obvious answer is that it's against their business interests. If you make it modular, then I can use something *other* than IE, or Word, or what have you. By bundling it all together, they leverage their monopoly.



    Why do you think they've been putting more and more applications into the "operating system"?



    Why do you think other companies protested this to the anti-trust authorities?



    So even if new MS stuff is *developed* in a modular way, it won't be sold that way.

  • Sure it will, the average consumer gains little to no benefit over using non-MS alternatives and since they already bought a MS operating system, they will also buy the MS applications. Instead of packaging everything with the OS, they could supply 'free vouchers' for things like IE, Media Player and stuff like that, so most people will inevitably download those. A very sound business plan :)



    But I wanted to reply to the comment on Valve's Steam system. It may work in terms of reducing software privacy, selling add-ons, ie. from a business point of view. But for the consumer it's the extreme horror. I'll spare you my rant on Steam, but I think the Windows SUS approach would make for a better model how this can be done, especially for large organisations.

Comments have been disabled for this content.