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 :-)
Thank you for sharing the information on the engineering of Windows 7 processes. I would like you to consider my two requests for that Windows 7 will do. First, set the requirements for the OS in the way of hardware requirements (CPU, Memory, Video & etc)and then tell the hardware vendors that is what they must build. Second, let or make Windows 7 use all the memory available in the system before the paging begins.
And finally, please keep on providing your views and explanations even though many of us will counter with differences. I for one know that you are one of the leaders in this design effort and will follow you vision on the make up and functions of this new OS.
Decryphe has an excellent suggestion there. I too believe that categorizing and sorting out all features would benefit both you (the windows 7 team) and us.
As for the dependencies, you could just show a continue/cancel dialog box where it says:
The following services depends on this feature:
- service 1 (read more)
- service 2 (read more)
If you disable this, then those features might/will not work.
 check to diable this message
Clicking read more would show information about the service and perhaps even what programs use this service. Checking to disable the message would result in the dialog box not showing up next time you disable something.
Then all the core services that NEEDS to run is grayed out, so people can still know what the service is and does, but they can't disable them.. stuff like graphics drivers, keyboard and mouse etc.
This way, users with little to no technical experience can install windows with all features you (the devs) choose to include, while us techies can customize our system to our needs like not including windows media player, IE, tablet drivers, network drivers if the computer doesn't have network cards in it, "eye candy" etc. or something as simple as solitare :p.
And ofc, the possibility to enable a feature again with 3 options. At install, have 3 checkboxes for the advanced install:
- Leave features on disk
For people like me who don't mind a feature being on disk, I have enough diskspace, I just want a light-running computer in terms of CPU-usage and RAM-usage (since I multi-task alot with heavy programs)
- Able to install features from CD/DVD
Kinda explains itself :p
- Download features from Microsoft Online Feature Database
You create a database online where people can search and find old and new features, even features that might not be on the original disk but created later for people to enjoy ;o)
You seem kinda stuck in a loop where you think most people don't know what services does and that people don't dive into it.. I got 67 people in my class, and I know atleast 60 of them has been diving in and disabled any useless feature (that they think is useless) they could find. The thing is: Give us options, not ultimates ;)
A few comments:
- I'd like to have Microsoft take a look at doing some of the features completely by looking at what others have done. A good example of something done 90% is the way you recognize the network location and then set sharing and other features. I say this is 90% done because one of the key things a mobile user might change when changing locations (home versus office) is the default printer. Just about every XP add-on that dealt with changing locations included the ability to automatically set this based on location. And, sometimes we need a program launched when we change locations. You did 90%, but it is the last little bit that ruins the experience and infuriates users who've seen the capability for YEARS and can't understand how you could have missed the need for the feature.
I suspect it was internal politics, split of responsibilities across teams or some silly architectural purity argument. Get rid of this internal pettiness and focus and get focused on the user, user needs and user experience and LOOK at what others have done.
- The crapware that PC makers load up is the number one thing that really ruins the OOTB experience. We all spend hours getting rid of this CRAP. It takes space, bothers us with annoying prompts and icons and the like. A growing number of folks actually PAY $30 to have someone remove this crap. Kind of tells you something.
I now that this isn't something MS can control, particularly after the antitrust settlement, but try hard to find a way to get the PC makers to stop with the crapware.
- Your user base is SO large that whenever you make a decision on how something "ought" to operate, it will be wrong for 50% of the people. Take IE8. When I type and address into the address bar and hit enter, should it open a new tab or use the existing one? A user should have a choice but that choice isn't there. This relates to my first comment. One of the most popular add-ons for Firefox is TabMix Plus which allows the user to customize this. If this is so popular the reason is it is an area where users want choice. You could say "Well, IE7Pro gives you that choice". True, but over time lots of things that were external programs and add-ons (like the browser!) have moved to the base system because they belonged there.
- Work with the internal groups at Microsoft to get them educated in advance and get them to use the features of the OS. A great example of the failure to do this is that Vista has tags but Outlook doesn't use them and doesn't include them. Hence, which Desktop Search could find things based on tag, a key application where tagging would be very useful doesn't use the OS feature. Sigh. You own applications would be the showcases for the new features of the OS. What ever happened to "EATING YOUR OWN DOG FOOD"?
I'd be curious to hear what you would have to say about a profile based bootup, as opposed to profile based install. Personally I don't see the stigma of having a large default Windows install lasting too much longer with 500GB HDDs currently going for under $100. Plus I like the ability to enable/disable features without having to dig out the WinCD.
However, I've heard some people ask about having a Boot Profile, like Safe Mode, but to do specific tasks (eg play games). I don't really subscribe to their line of thinking, but the argument is that one would be able to get better performance out of an application if the system was able to boot using limited Windows services.
Ubuntu is currently installed by 1 or 2% of User
you know the reason why 99% of this 1 or 2% use Ubuntu (99% in dual boot with XP or Vista)?
the reason is called Compiz and cubedesktop!!!
you have see start up of Ubuntu??
an enormous waste of time
not to mention simple to install any software
Apt get apt get apt get
What comes to mind regarding features is that what's importand is probably not to be able to remove every single piece of functionality, but to be able to remove the parts that might bother the user.
I guess features "getting in the way" could mean not only performance wise but also unnssescary information on the screen that might confuse a non-experienced user or services running that might pose an unessescary security risk.
Here's the thing: I don't care that Windows Mail and Windows Photogallery are installed on my drive and cannot possibly be removed (although I doubt any Windows components or third party applications use them or assume that they are there). I installed Live Mail and Live Photo Gallery, which are supposed to be replacements for these applications. So why am I forced to still see the shortcuts in the start menu when I search for "mail" or "photo"? Can't you at least sort of -hide- these features when they're not being used?
Once again, thanks for this blog. I'm telling a lot of these so called "pseudo" tech journalists and bloggers to get on here. I think instead of whining about Vista, XP, or Microsoft in general, state their case here. Let them make Seven better or just quit complaining. I've been very satisifed by the articles and commentary that I'm pushing it to anyone.
On the feedback here: Its real simple, Windows really needs to be more malleable to its users. One of the things I've not seen on here is dealing with notebook batteries. While XP and Vista has made some improvements in power management, one of the biggest gripes with Vista was the battery drain. I have to admit that batterly life is a weakness in Vista. I'm not sure if its just drivers, technology limits, or other things. Also, in terms of being able to completely discharge and fully recharge in XP or Vista is pretty weak. This is something where both OEM's and Microsoft need to work together. If there was some sort of comprehensive approach and solution that would be much appreciated.
I would also have to agree with many on here that the crapware added by OEM's really do break the OS presentation to users. I know some guys like Sony have started a program that lets you just get a clean OS install. I would hope you'd work with OEM's to have every one of them offer a "Clean Slate" version of Seven. Now if they want to put the crap and trial ware versions on a DVD, I and many would be open to that. If they wanted to plug in the trial/crap disk in the registration process to the OEM, that would be acceptable too. However, lets start with the pristine version of Windows.
Another suggestion would be if you couldn't give all the options within Windows, how about creation of a master tweaking program? That way you can really hammer Windows for the more technical user? I remember in the past Microsoft used to do this, I think it should make a return. I know you guys have got your work cut out, but it would be helpful. Just a random thought.
As I've said many times, all the Windows apps need to be removeable via the Control Panel. That includes I.E., W.M.P., etc.
I'd also like to see an updated Windows Security Center that checks all software for updates. That way you can constantly have the most current software. I know its done with the antivirus but many of the most vulnerable apps are Quicktime, Java, iTunes, etc. Most people don't bother to download the latest version for three reasons. Ignorance about software vulnerabilites, lazyness, or lack of experience. It would be nice if Windows took the added step of creating a security software update menu to the Security Center.
On an added sidenote to the Security Center, it would be nice if companies did a better job of creating update packages. Taking Sun's Java for example. They leave previous versions on the machine and then load the next version on. It still leaves you vulnerable unless you delete the previous version. Perhaps you guys could work with Sun and other software makers about this. It doesn't help to leave previous versions on your machine that still could be compromised. Either patch up the hole or completely delete and reinstall a new version. Something that was raised also from Supersite for Windows several months back.
Once again, thanks for this blog and listen to the customers need. Its just one of the many reasons I've been a long time Microsoft customer. I hope something I have or will blog about impacts Windows Seven. Thanks Steven and thank your whole crew for me.
Steve, I don't know you guys keep sane reading all these comments. Personally, I have to get up and clear my head after reading the Nth post about "removing IE" or something else just as ill-informed.
I really appreciated you saying this: "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. " BRAVO!! YES!! I really think that people believe that their hard disk gets heavier the more it is filled up. They believe that it actually spins slower if there is more data on there, even if that data never gets read!!
So Steven and the rest of the Windows 7 team, keep up the good work on this blog. The more we learn about the decisions behind the design of Windows, the better. There is so much dis-information out there.
doesn't bother me that some apps i never used are installed, such as Photo Gallery or Movie Maker. what bothers me is everything vista tries to do for me when IT thinks it should.
what i want to see is an option to let me decide if i want all of these things to run when vista wants, or run when i want them to.
defrag, offline files, indexing, windows mail compact folders, for example. i turn all of this stuff off. like i've mentioned before, it's MY pc and i'll decide when i want to run these things.
you left powers users behind and geared everything to novices. that's why every version of vista is "vista home edition".
i'll bet most users in the ceip are novices because all of the power users clicked "no" so you got some incorrect metrics to design the interface.
Just my opinion.
Interesting blog, although it seems like I'm not getting rhe point what the intention of this blog really is.
Is it possible that the intention of this blog - to discuss the upcoming features of windows 7 - stays in contradiction to microsofts intention not to reveal any of the upcoming features of windows 7 ? (Just to avoid the vista disaster where many features have been announced just to be withdrawn)
Satisfying the needs of all different kinds of customers is really a hard job, I have to agree. This problem has many different sides and is really complex, maybe too complex.
These kind of problems always show up, when you design large systems. More and more dependencies arise while the system evolves. I think the key lies within modularization and the introduction of layers.
If the system is designed this way, it should be no problem to install it without the gui module or without the printing module (both depending on the graphics layer) for example. This implies, that you will make your system configurable without gui (Otherwise there would be dependencies to the gui module).
The basic installation could result in a minmal system where nothing has to be removed.
Dependencies between installed Applications do not need to exist. Consider the following, the Visual Studio needs the IE to be installed (for its help system or other tasks). It is also possible that the core os provides a html(web) library with a clear defined interface and both, Visual Studio and the IE depend on this library (The direct dependency from VS to IE has gone).
If anyone wants no IE installed, this will never happen (of course the html os libraries will be there) VE will work as well or even better than with IE installed. And if there are versioning problems, VE can bring its own html library with it.
I know this can be a tough job, but it is possible to reduce the complexity and dependencies with the technologies of modern software architecture.
Any possibility of an online installation? The user would need an installer program, probably on CD, and it would connect to the internet and you'd enter your credit card #.
AndiG brings up a good point: I think most of the readers here are getting the wrong idea about what this blog is about.
This blog, like the title says, is about ENGINEERING windows. That means they are going to talk about the decisions that are made in constructing Windows. To me, means we are going to talk about the "why" behind the features. It's not talking about the features themselves, but the decisions that went behind them. This is what the "shared context" is that Steve talks about in this entry.
So I feel this blog is not just to talk about the upcoming features of Windows 7, but to give us, the users, some insight as to the decision process that resulted in these features. As a user, that helps me use those features better. As I said before, there is an incredible lack of understanding about the purpose of a lot of the features of Windows and why things are the way they are. So I gladly welcome a chance to hear about the other side of the story.
Of course, I could be misinterpreting the purpose of this blog too! :)
Could you explain to me why the Vista Memory footprint is 3 times as large as XP? Even in XP, the memory footprint was getting excessive, but in Vista, the memory usage is nearing insane levels! Is there going to be any attempt to reverse this trend in Windows 7?
"The OOBE is really the place that customers first experience Windows on a new PC."
Yes, it would make sense that you would want to have people get on with whatever they want to do, rather than annoy them by asking them to tweak the OS.
But how about if the people who buy the "Retail Packaged Installer" got a choice about whether they wanted to do any tweaking before install, or do a standard install (or even choose from profiles your provide).
You might even take this further, by publishing a tool that does what nLite and vLite do now, allowing customers to make their custom install disks with only the features and services they want. These tools are also great for having custom, patch-updated, ready to install disks anyway, and who better to provide such a tool, than the people who developed the OS themselves.
I think it would be reasonable to expect that people booting the DVD shouldn't be too put off by that if they just want a standard install, and the people inclined to tweak would get what they wanted.
It's a good compromise, i think. You get the Microsoft standard OOBE for everyone else, while anyone who chooses to can tweak to their heart's content.
I like to tinker, and I would love it if tools are provided by the people who know Seven best...the Seven devs themselves. Im sure other people feel the same. :)
ps. keep up the good work, love this blog. :)