Notes on comments.
Welcome to our blog dedicated to the engineering of Microsoft Windows 7
When we kicked off this blog, the premise was a dialog – a two-way conversation about the engineering of Windows 7. We couldn’t be happier with the way things have been going in this short time. As we said we intended to do, we’ve started a discussion about how we build the product and have had a chance to have some back and forth in comments and in posts about topics that are clearly important to you. To put some numbers on things, I’ve personally received about 400 email messages (and answered quite a few) and all total we have had about 900 English language comments from about 500 different readers (with a few of you > 10 comments). Early numbers show we have about 10x that latter number in readers+page views.
A number of folks on the blog have asked for more details about how we build Windows—what’s the feature selection process, the daily build process, globalization, and so on. And in keeping with our new tradition of seeing the other “side” of an issue, many folks have also said they feel like they have enough of that information and want to know the features. So in this post I want to offer a perspective on a couple of features that have been talked about a bunch, and also a perspective on talking about features and feature selection.
We love the response. We have seen that some topics have created a forum for folks to do a lot of asking for features, and we will do our best to respond in the context of what we set out to do, which is to have a discussion about how Windows 7 is engineered, including how we make choices about what goes in the product. I admit that it might be tempting (for me) to blog a big long list of features and then say “give us feedback“. It is tempting because I have seen this in the past and it is a certainly an easy thing to do that might make people feel happier and more involved. However, there are some challenges with this technique that make these sorts of forums less than satisfying for all of us. First, it is “reactive” in that it asks you to just react to what you see. Absent a shared context we won’t be remotely on the same page in terms of motivations, priorities, and so on. This is especially the case when a feature is early and we aren’t really capable of “marketing” it effectively and telling the story of the feature. Second, a broad set of anecdotal feedback (that is free text) is not really actionable data and doesn’t capture the dialog and discussion we are having. Making decisions this way is almost certain to not go well with the “half” of the folks who don’t agree with the decision or prioritization. And third, there's a tendency to feel that feedback given yields action in that direction. These are some of the reasons why we have taken the approach of talking about how we are making Windows 7.
Some have suggested that we publish a list of features and then have a ranking/voting process. In fact some have gone as far as doing that for us on their own web sites. Thank you--these are interesting sites and we do look at them. But I think we can all agree that there is also a challenge that many folks are familiar with which is that a self-selected group provides one type of feedback which is likely to be different than a group that is selected intentionally as being representative. I was recalling an old episode of Saturday Night Live, “Larry the Lobster”, where for a toll call you could vote to save Larry from the stove or not. We all know that is a non-scientific poll, but we also don’t even know if it is a non-scientific poll of views of animal rights or of food preferences. I think the value of voting on specific features goes beyond just entertainment, but we also have to spend the energy making sure we are thinking about the issues within the same context. We also want any sample of customers we do to be representative of either the broad base of customers or the specific target customer “segment”.
Thus a big part of this blog is about creating a forum where we hear from each other about what is important and what our relative contexts are that we bring to the discussion. That’s why we think about this as a dialog—it is not a question and answer, request and response, point and counter-point, or announcement and comment. Personally, I am genuinely benefiting from the dynamic nature of what we are going to blog about based on those participating in the blog. So this is much more like a social where we all come to meet and talk, than a business meeting where we each have specific goals or a training class where one party does all the talking.
In that spirit, it seems good to continue a conversation about a few points that have come up quite a bit and I think folks have been asking for a point of view on these. Each is worthy of a post on its own, but I also wanted to offer a point of view about some specific feature requests. Let’s look at some topics that have come up as we have talked about performance or the overall Windows experience. Because this is “responding” to comments and input, there is a potential to delve into point/counter-point, I am hoping we can look back at the “context” discussions we have been having before we get too deep in debate.
In terms of feature ideas, a number of you have suggested that we offer a way at setup time to configure Windows for a specific scenario. Some have suggested scenarios such as gaming, casual use, business productivity, web browsing, email, "lightweight usage", and so on. There is an implication in there that Windows could perform (speed, space, etc.) better if we tune it for a specific scenario along these lines, but in reality this assumption probably won’t pan out in a consistent or general way. There are many ways to consider this feature—it could be one where we tweak the contents of the Start Menu (something admins do in corporations all the time), or the performance metrics for some low level components (disk block size, tcp/ip frame sizes, etc.) or the level of user interface polish (aka “eye candy” as some have called it), and so on. We’ve seen scenario or role-based setup as a very popular feature for Windows Server 2008. In the server environment, however, each of these roles represents a different piece of hardware (likely with different configurations) or perhaps a specific VM on a very beefy machine, and also represent very clearly understood "workloads" (file server, print server, web server).
The desktop PC (or laptop) is different because there is only a single PC and the roles are not as well defined. Only in the rarest cases is that PC dedicated to a single purpose. And as Mike in product planning blogged, the reality is that we see very few PCs that run only a specific piece of software and in nearly every study we have ever done, just about every PC runs at least one piece of software that other people do not run. So we should take away from this the difficulty in even labeling a PC as being role specific. Now there are role-specific times when using a PC, and for that the goal of an OS is to adapt well in the face of changing workloads. As just one example of this in Windows Vista, consider the work on making the indexer a low priority activity using the new low-priority I/O APIs. I know some have mentioned that this is “something I always turn off” but the reality is that there is an upfront cost and then the ongoing cost of indexing is indeed very low. And this is something we have made significant improvements in for Desktop Search 4.0 (released as a download) and in Windows 7. The reality is that a general purpose OS should adjust to the workloads asked of it. We know things are not perfect, and we know many of you (particularly gamers) are looking for every single potential ounce of performance. But we also know that the complexity and fragility introduced by trying to “outsmart” core system services often overshadows the performance improvements we see across the broadest sampling of customers. There’s a little bit of “mythbusters” we could probably embark on so -- how about sharing the systematic results you have achieved and we can address those in comments?
Another challenge would be in developing this very taxonomy. This is something I personally tried hard to do for Office 95 and Office 97. We thought we could have a setup “wizard” ask you how much you used Word, Excel, PowerPoint, and Access, or a taxonomy that asked you a profession (lawyer, accountant, teacher). From that we were going to pick not just which applications but which features of the applications we would install. We consistently ran into two problems. First, just arriving at descriptors or questions to “categorize” people failed consistently in usability tests—the classic problem when given a spectrum of choices people would peg all of them in the middle or would just “freeze up” feeling that none fit them (people don't generally like labels). Second, we always had the problem of either multiple users of the same PC or people who would change roles or usage patterns. It turns out our corporate customers learned this same thing for us and it became routine to “install everything” and thus began an era of installing the full suite of products and then training was used to narrow the usage scenarios.
The final challenge has been just how do you present this to customers and when. This sequence of steps, the out of box experience, or OOBE, is what you go through when you unbox a PC (the overwhelming majority of Windows customers get it this way) or run setup from a DVD (the retail “packaged product” customer). This leads to the next item which is looking to the OOBE as a place to do performance optimizations. Trying to solve performance at this step is definitely a challenge and leads to our “context” for the out of box experience.
The OOBE is really the place that customers first experience Windows on a new PC. As many have read in reviews of competitive (to Windows PCs) products the experience goals most people have relate to “how fast can I get from packing knife to the web”. For Windows 7 we are working closely with our OEM partners to make sure it is possible to deliver the most streamlined experience possible. Of course OEMs have a ton of flexibility and differentiation opportunties in what they offer as part of setting up a new PC, and what we want to do is make sure that the “core OS” portion of this is the absolute minimum required to get to the fun of using your PC.
By itself, this goal would run counter to introducing a “profiling” or “wizard” help gauge the intended (at time of purchase) uses/usage of a PC. That doesn’t mean that an OEM could not offer such a profiled experience that could provide a differentiated OOBE experience, but it isn’t one we would ask all customers to go through as part of the “core OS” installation.
I recognize many of you as PC enthusiasts have gone through the experience of setting up a Linux PC using one of the varieties of package managers—probably many times just to get one installation working right. As you’ve seen with these installs (especially as things have recently converged on one particular end-user focused disti), the number of ways you can produce a poorly running system exceeds the number of ways you can produce a fully functional (for your needs) setup In practice, we know that many components end up depending on many others and ultimately this dependency graph is a challenge to manage and get right, even with a software dependency manager (like Windows Installer). As a result, we generally see customers benefitting from a broad base of software on the machine so long as that does not have a high cost—developing that install is a part of developing the product, balancing footprint, architectural connections, system reliability, etc.
So our context for the out of box experience would be that we don’t want to introduce complexity there, where customers are least interested in dealing with it as they want to get to the excitement of using their new PC. I think of it a bit like the car dealers who won’t hand you the keys to your car until you sit and watch a DVD about the car and then get a guided tour of the car—if you’re like me you’re screaming “give me the keys and let me out of here”. We think PC buyers are pretty much like that and our research confirms that around the world.
We also recognize that there are expert users who might want to adjust the running system for any variety of reasons (performance, footprint, surface area, etc.) We call this the “Turning Windows Features On or Off” which is the next item we’ve heard from you about.
If we install the typical installation of Windows as one that is basically all the features in the particular SKU a customer purchased, then what about the customer that wants to tweak what is installed and remove things? Customers might want to remove some features because they just never use them and don’t want to accidently use them or carry with them the “code” that might run. Customers might be defining a role for the PC (cash register) and so making sure that specific features are never there. There are many reasons for this. For many releases Windows has had the ability to install or uninstall various features that are part of Windows. In Windows Vista this was made more robust as the features are removed from the running system but also remained available for reuse without the original DVD. We also made the list of features longer in Windows Vista.
For Windows 7, many have asked for us to make this list longer and have more features in it. This is something we are strongly considering for Windows 7 as we think it is consistent with the design goals of “choice and control” that you have seen us talk about here and quite a bit with Internet Explorer 8.0 beta 2.
Of course we have the same challenge that Linux distributions have which is you can quickly remove things could break other features by being removed, and then you have to have all the complexity of informing the customer of these “dependencies” and ultimately you end up feeling like everything is connected to everything else. On some OS installations this packaging works reasonably well because there is duplication of features (you pick from several file browsers, several web browsers, several office suites, several GUIs even). The core Windows OS, while not free from some duplication, does not have this type of configuration. Rather we ship a platform where customers can add many components as they desire.
For customers that wish to remove, replace, or just prevent access to Windows components we have several available tools:
Many folks want the list of Windows features that can be turned on / off to be longer and there have been many suggestions on the site for things to make available this way. This is more complex because of the Windows platform—that is many developers rely on various parts of the Windows platform and just “assume” those parts are there. Whether it is a media player that uses the windows address book, a personal finance package that uses advanced print spooling, or even a brand new browser that relies on advanced networking features. These are real-world examples of common uses of system APIs that don’t seem readily apparent from the end-user view of the software.
Some examples are quite easy to see and you should expect us to do more along these lines, such as the TabletPC components. I have a PC that is a very small laptop and while it has full tablet functionality it isn’t the best size for doing good ink work for me (I prefer a 12.1” or greater and this PC is a 10” screen). The tablet code does have a footprint in memory and on the 1GB machine if I go and remove the tablet components the machine does perform better. This is something I can do today. Folks have asked about Photo Gallery, Movie Maker, Windows Mail, Windows Calendar…this is good feedback and good things for us to consider for Windows 7.
An important point is that a vast majority of things you remove this way consume little or no resources if you are not using them. So while you can reduce the surface area of the PC you probably don’t make it perform better. As one example, Windows Mail doesn’t slow you down at all if you don’t have any mail (or news) accounts configured. And to be certain you could hide access with SPAD or just change the default protocol handler to your favorite mail program. Another example is you can just change the association and never see photogallery launched for images if that is your preference. That means no memory is taken by these features.
This was a chance to continue our discussion around how we are learning from our discussion and some specifics that have come up quite a bit. I hope we are gaining a shared view of how we look at some of the topics folks have brought up.
So this turned into a record long post. Please don’t expect this too often :-)
Ton of words and no real response!
Sorry, but if you keep insisting on that computers must be loaded with crap and you can't remove Windows parts "because it's too hard" you won't achieve anything. Ever.
@Tihiy and @Andre,
I agree. Market is full of new solutions. When something "can't be done" by company X, people will use products from other company...
More advanced people will not buy new OS only because is new or contains new wizards (and additionally it has got redesigned interface and DRM). New users can. Microsoft should decide, who should adress Windows 7 for...
Wow, you guys wrote a lot lately and we appreciate that.
I can see that you are careful of being "understood" as a "developer team" and I think you did it right.
Ok, now, straight to the points:
IMO, you, at Microsoft, are thinking way too complicatedly -and it's visible in your products-. No, I don't think things are as complex as you put it. Because we talk "Profile" you already think about huge differences. Different profiles doesn't mean that some crucial things should not be installed. It only means that the initial set-up components shouldn't blatantly hinder the main role of the PC.
For exapmle, if the profile "Gamer" is selected, some services which you know in advance will alter gaming experience, won't be installed or activated.
As a counter example, I'm a guy who uses his computer for just about anything except Games. In my case what is specificaly installed for gamers won't be installed.
If I change suddenly into a Game fan, I'll just have to insert the DVD (which brings us to the question of OEM's rescue discs vs real ones but I hope we will discuss this later).
The changes across profiles are more things on the surface, than engineer level. For exapmle loging in straight as a predefined user, instead of having everytime the log-on screen (which is passably boring for lone and less lonely home PC users), is not, I think, a core-level change.
Oobe and not Oops
It's also important that the user doesn't feel that choosing the right profile is that important (as I said, it shouldn't make so much differnces in functionality and never irreversably) and that there is the always reassuring "Custom" word in the drop-down list.
Secondly, I would like to stress, one more time, on the easiness of changing options afterward. Of a one, unified and undivisible control console where users could make sure to find all the settings they need. ALL the settings in one place. Improving this will de-facto reduce the risk of wrong profiling.
It will also help less advanced users of all the possibilities of configuring windows. If we don't know them, it's too often because we never opened the interface where they were. If they are all in only one interface, we have more chance to find them and say "Ah! I'm gonna definetly turn this off!".
I don't think it will go into the way of the OOBE to have a quick (thought how quick it is could also be a choice from the user) wizard to set his preferences (or set no preference). It will make him or her reaching the web one minute later, but at least the first web use won't be searching for "How to Tweak Vista 2.0" (aka The "worse case scenario Windows 7" -LOL-).
First of all, many thnx to you guys at MS for this care to make us really understand what’s going on, and what are we doing on this blog…
Second of all, I have to agree with many people (if not all) who supports a "Profile based setup", it would be but what i want to add is not all users want a menu to choose from, some just want to insert the DVD, leave for a few minutes, when they are back they want their PC to be ready to use.
So what I’m saying here is maybe you need to put 2 options, a simple "Normal Installation", with all the features installed, and an "Advanced", just like any program you install.
In that advanced installation you might put those "Profiles" and by this way I think you will satisfy everyone!
P.S.: We know its not quit easy to build an OS, But we expect it to be nothing less than REVELOTIONARY ;)
Hi, Thank you for posting such a wonderful blog, it really helps me understand the process and everything that must come together in order to build a great operating system. I'm posting suggestions of what I'd like to see in Windows 7:
- Resolution Independence, Vista is an improvement over XP but it's not perfect. Not everthing in Vista Scales perfectly. Gadgets should have an option to be resizeable (similar to Yahoo Widgets) or a better option would be to automatically scale to your display. The operating system should automatically scale to the resolution of your monitor. the operating system on a 19" lcd should be the same size as on a 24" lcd
- WinFS. I've got many photos and wallpaper on my computer. I've got them all organized into folders. Windows Photo gallery becomes sluggish in the beginning. Windows 7 should be able to handle thousands of photos smoothly similar to what Phodeo was supposed to be.
- UI. I would love Windows 7 to have a beautiful user interface that's completely scalable. Windows Vista was a good start, Windows 7 needs to improve on that.
- Installation, when you buy a new computer it should come with all Windows 7 versions already on it. So if you wanted to upgrade to a different version, you can do so easily without having to go to a store to buy a disk.
- Gadgets need to be greatly improved. The gadets in Windows Vista are basically for looks. The gadgets in Windows 7 need to interact with you and your everyday tasks. They should popup on your desktop and give you information that you need to know. One example would be a calendar that displays reminders and a weather gadget displaying a weather alert. Gadgets need to be resizeable (see my post on resolution independence)
Thank you for taking the time to read my post and I hope that my ideas have been beneficial to you. I know that Windows 7 will be an awesome operating system.
good blog...i am glad i found it...i am highly hopeful that windows 7 will knock all of our geek socks off...
why my/our opinion counts:
1. anyone that found this site is not your normal user..we are the top 2% that really know how to use our computer..---just talk to your church friends about your latest trek into windows component services(deer in headlights is usually the look i get)
2. sorry microsoft, but you probably have not received the anonymous feedback from our systems...the things that urk us is anything that interferes with our resources at any given moment (especially network bandwidth) ...so we turn off automatic updates along with phoning home to the mother ship .... the result...you have no idea what the top 2% think is a fine tuned running system (but atleast you get feedback from the poorly performing ones)...so thanks for this blog..letting us tell you directly...
3. i built my own computer (and overclocked it) all to avoid THE FAMOUS CRAPWARE from major computer retailers....heck before i built mine...i called one major manufacture and they actually said i could not get a clean vista install disk... the CRAPWARE is required/desired for increased computer experience....(yea..water is cheap but you dont put that in your gas tank either)..
room for improvement
1. OOBE -- after the final click of my computer tower..it actually took less time to install xp pro (and the motherboard cd, the graphics card cd, the printer cd, and finally zonealarm pro) than it did to open the box and register vista and then UNLOAD ALL THE CRAPWARE from a system my father in law just bought...
he THOUGHT ALL THE CRAPWARE WAS FROM MICROSOFT...he was confused why his new $1700 laptop would boot 3 times slower than his 11 year old computer running windows 95
why my soapbox story relates to designing windows 7..
design windows 7 in such a way that if the OEM thinks its important to have google desktop search but we dont want it or any of the other skype/vonage/movie service/aol service/ etc that we can get online to microsoft and create a recovery disk that we can keep that uninstalls all this unwanted stuff (including cleaning the registry) from the oem OS install disk...
either that or just tell them (OEM's) to QUIT IT!!!..i personally think this will solve a lot of problems..and yes given the chance we might actually be willing to pay the OEM an extra $40 on a system build if it came the way you designed it...clean and fast
"And this is something we have made significant improvements in for Desktop Search 4.0 (released as a download)"
Hi Steven -
No amount of under-the-hood optimizing and engineering will help if the finished product looks unfinished.
Search 4 is a prime example of a problem that plagues Microsoft's visual integration QA. Just install and use WS 4 in XP using XP's built-in classic style with color scheme set to something other than Standard (Plum, for example) and you'll see how out of place it looks in XP, even though it works great. Search 4 is specified as designed for XP, but looking at it in XP one is left with the impression that it may be less than desirable to have it running in XP because it's unsatisfactorily bolted to the UI.
To see what I mean have a look at
exist because of sloppy visual consistency in XP and Vista. It's a real shame that these are not official MS sites, because they are 110% pro Windows.
I encourage the Windows 7 Team to ensure that your engineering work is not undermined by the weak visual UI consistency that has characterized Windows since Windows 2000.
have you seen the PortableApps that work extremely well on thumbdrives.... http://portableapps.com/ ..it reminds me of the days of dos...put the exe there and it works ..remove it and it is gone completely...
now this is not a plug for them ..but if they have figured it out....they do it for a pittance in monetary reward...what could microsoft do with all of its resources...
in my naive oppinion if they can have email/thunderbird - browswer/firefox - office suite/openoffice etc all from a thumbdrive... why cant windows itself have the same thing...
the benefits...sandbox treatments of all files on the computer...i should be able to drop IE 8 beta 2 into the folder marked browser (or you create a script to do it)...it should replace the exe and keep the favorites folder and user settings folder....just that simple... and then do that for everything the user uses....obviously the core is hidden...
but then again i am not a developer so if this an ignorant suggestion...my apologies
Oh, and am I the only one who thinks the Vista UI looks cluttered, messy and confusing compared to XP? A simple thing like the Vista "Computer" icon is off-putting because it faces away from the desktop in the top LH corner, unlike the XP "My Computer" icon, which faces the desktop (and the user).
see it yet so: right is conservative - the left is progressive. ;-)
Looking back, Windows98 is the Home Premium version, and Windows NT is the Business version. They are released on different time. And you could tell 98 and NT covers entirely different market and two versions' bugs are treated separately.
This is called progressive product development. Modular software development process (not architecture, but development process).
Yes, XP was a great success launching both Home and Pro (business) version. But it too progressed to Media Center edition.
The scale of Vista is getting too large to deploy all versions at the same time.
I propose you to release Home first(includes Media Center, no more standard version). And then later on you release Business version and a Ultimate version for all-in-one. This is even better when you sorted out many bugs from Home version and able to release a much more stable Business OS.
If you try to do everything all at once, you will fail everything. You have to know your limit. Divide and conqure.
I got a feeling from this entry, that you are just explaining this so that you do not have to change anything, no offence. Example the installation and the OOBE (I know I have made posts about this). Does the change to make advanged installation have to create ANY complexity to the installation? You just need a ONE mouse click to select between complexity and straight-forwardness. Using profiles to install different components should be thought of like one profile binds the computer to certain task. The _example_ profiles must be created smar - many users do not need tablet stuff, nor media center. Some do need network working stuff and some don't. If the profiles are dropped out, at least consider the "admin" setup option. They know what to do, the home user can always click the "INSTALL THE STUFF NOW AND DONT ASK THINGS".
"Using profiles to install different components should be thought of like one profile binds the computer to certain task."
We need an edit option here :D Read the previous line as:
"Using profiles to install different components should NOT be thought of like one profile binds the computer to certain task."
And sorry my bad english.
Windows should be resistant for software leftovers. I hope that some day I can install 200 random apps + bunch of devices and when the day comes when I want to get rid of them that Windows provides nice UI for remove programs / program settings / device drivers. And when I click remove, I can trust that Windows takes care that no single leftover file or registry entry remains in my system.
There have been some good suggestions here that would help to achieve this goal. I think Windows folder should be like firmware image and forbidden area for third-party applications and drivers. For example instead of splitting drivers into several windows subfolders, it would be much cleaner to have something like C:\drivers\device#1 etc.
Its not only third party developers who causes registry bloat. Microsoft principle seems to be to add things to registry but never clean anything. Just look how many obsolete ControlSets your machine have or all kind of caches without clearing policy for ecample HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Management\ARPCache is list of every program that ever have been installed on a system.
You said this:
"Whether it is a media player that uses the windows address book,"
and I say "WTF? That's a feature?" A media player that uses something it doesn't need to, to do what it's supposed to?
SQL Slammer succeeded to the extent it did, apparently because Microsoft had the neat idea of using SQL Server everywhere, no matter the justification. Eric S. Raymond wrote a piece really laying into Microsoft for that. (Sadly I can't find it at the moment. ;)
That WTF I've mentioned breaks one of the most fundamental rules of security - the "need to know" ranking of security levels.