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