Notes on comments.
Welcome to our blog dedicated to the engineering of Microsoft Windows 7
In the emails and comments, there are many topics that are raised and more often than not we see the several facets or positions of the issue. One theme that comes through is a desire expressed by folks to choose what is best for them. I wanted to pick up on the theme of choice since that is such an incredibly important part of how we approach building Windows—choice in all of its forms. This choice is really because Windows is part of an ecosystem, where many people are involved in making many choices about what types of computers, configuration of operating system, and applications/services they create, offer, or use. Windows is about being a great component of the ecosystem and what we are endeavoring to do with Windows 7 is to make sure we do a great job on the ecosystem aspects of building Windows 7.
Ecosystem and choice go hand in hand. When we build Windows we think of a number of key representatives within the ecosystem beyond Windows:
Each of these parties has a key role to play in delivering on the PC experience and also in providing an environment where many people can take a PC and provide a tailored and differentiated experience, and where companies can profit by providing unique and differentiated products and services (and choice to consumers). For Windows 7 our goals have been to be clearer in our plans and stronger in our execution such that each can make the most of these opportunities building on Windows.
PC Makers (OEMs) are a key integration point for many aspects of the ecosystem. They buy and integrate hardware components and pre-install software applications. They work with retailers on delivering PCs and so on. The choices they provide in form factors for PCs and industrial design are something we all value tremendously as individuals. We have recently seen an explosion in the arrival of lower cost laptops and laptops that are ultra thin. Each has unique combinations of features and benefits. The choice to consumers, while sometimes almost overwhelming, allows for an unrivaled richness. For Windows 7 we have been working with OEMs very closely since the earliest days of the project to develop a much more shared view of how to deliver a great experience to customers. Together we have been sharing views on ways to provide differentiated PC experiences, customer feedback on pre-loaded software, and partnering on the end-to-end measurement of the performance of new PCs on key metrics such as boot and shutdown.
Hardware components include everything from the CPU through the “core” peripherals of i/o to add-on components. The array of hardware devices supported by Windows through the great work of independent hardware vendors (IHVs) is unmatched. Since Windows 95 and the introduction of plug-and-play we have continued to work to improve the experience of obtaining a new device and having it work by just plugging it in—something that also makes it possible to experience OS enhancements independent of releases of Windows. This is an area where some express that we should just support fewer devices that are guaranteed to work. Yet the very presence of choice and ever-improving hardware depends on the ability of IHVs to provide what they consider differentiated experiences on Windows, often independent of a specific release of Windows. The device driver model is the core technology that Microsoft delivers in Windows to enable this work. For Windows 7 we have committed to further stabilization of the driver model and to pull forward the work done for Windows Vista so it seamlessly applies to Windows 7. Drivers are a place where IHVs express their differentiated experience so the breadth of choice and opportunity is super important. I think it is fair to say that most of us desire the experience where a “clean install” of Windows 7 will “just work” and seamlessly obtain drivers from Windows Update when needed. Today with most modern PCs this is something that does “just work” and it is a far cry from even a few years ago. As with OEMs we have also been working with our IHV partners for quite some time. At WinHEC we have a chance to show the advances in Windows 7 around devices and the hardware ecosystem.
Developers write the software for Windows. Just as with the hardware ecosystem, the software ecosystem supports a vast array of folks building for the Windows platform. Developers have always occupied a special place in the collective heart of Microsoft given our company roots in providing programming languages. Each release of Windows offers new APIs and system services for developers to use to build the software they want to build. There are two key challenges we face in building Windows 7. First, we want to make sure that programs that run on Windows Vista continue to run on Windows 7. That’s a commitment we have made from the start of the project. As we all know this is perhaps the most critical aspect of delivering a new operating system in terms of compatibility. Sometimes we don’t do everything we can do and each release we look at how we can test and verify a broader set of software before we release. Beta tests help for sure but lack the systematic rigor we require. The telemetry we have improved in each release of Windows is a key aspect. But sometimes we aren’t compatible and then this telemetry allows us to diagnose and address post-release the issue. If you’ve seen an application failure and were connected to the internet there’s a good chance you got a message suggesting that an update is available. We know we need to close the loop more here. We also have to get better at the tools and practices Windows developers have available to them to avoid getting into these situations—at the other end of all this is one customer and bouncing between the ISV and Microsoft is not the best solution.
Our second challenge is in providing new APIs for developers that help them to deliver new functionality for their applications while at the same time provide enough value that there is a desire to spend schedule time using these APIs. Internally we often talk about “big” advances in the GUI overall (such as the clipboard or ability to easily print without developing an application specific driver model). Today functionality such as networking and graphics play vital roles in application development. We’ve talked about a new capability which is the delivery of touch capabilities in Windows 7. We’ve been very clear about our view that 64-bit is a place for developers to spend their energy as that is a transition well underway and a place where we are clearly focused.
Enthusiasts represent a key enabler of the ecosystem, and almost always the one that works for the joy of contributing. As a reader of this blog there’s a good chance you represent this part of the ecosystem—even if we work in the industry we also are “fans” of the industry. There are many aspects to a Windows release that need to appeal the enthusiasts. For example, many of us are the first line of configuration and integration for our family, friends, and neighbors. I know I spent part of Saturday setting up a new wireless network for a school teacher/friend of mine and I’m sure many of you do the same. Enthusiasts are also the most hardcore about wanting choice and control of their PCs. It is enthusiasts sites/magazines that have started to review new PCs based on the pre-installed software load and how “clean” that load is. It is enthusiasts that push the limits on new hardware such as gaming graphics. It is enthusiasts who are embracing 64-bit Windows and pushing Microsoft to make sure the ecosystem is 64-bit ready for Windows 7 (we’re pushing of course). I think of enthusiasts as the common thread running through the entire ecosystem, participating at each phase and with each segment. This blog is a chance to share with enthusiasts the ins and outs of all the choices we have to make to build Windows 7.
There are several other participants in the ecosystem that are equally important as integration points. The system builders and VARs provide PCs, software, and service for small and medium businesses around the world. Many of the readers of this blog, based on the email I have received, represent this part of the ecosystem. In many countries the retailers serve as this integration point for the individual consumer. For large enterprise customers the IT professionals require the most customization and management of a large number of PCs. Their needs are very demanding and unique across organizations.
Some have said that the an ecosystem is not the best approach that we could do a much better job for customers if we reduce the “surface area” of Windows and support fewer devices, fewer PCs, fewer applications, and less of Windows’ past or legacy. Judging by the variety of views we've seen I think folks desire a lot of choice (just in terms of DPI and monitor size). Some might say that from an engineering view less surface area is an easier engineering problem (it is by definition), but in reality such a view would result in a radical and ever-shrinking reduction in the choices available for consumers. The reality is engineering is about putting constraints in place and those constraints can also be viewed as assets, which is how we view the breadth of devices, applications, and “history” of Windows. The ecosystem for PCs depends on opportunities for many people to try out many ideas and to explore ideas that might seem a bit crazy early on and then become mainstream down the road. With Windows 7 we are renewing our efforts at readying the ecosystem while also building upon the work done by everyone for Windows Vista.
The ecosystem is a pretty significant in both the depth and breadth of the parties involved. I thought for the purposes of our dialog on this blog it is worth highlighting this up front. There are always engineering impacts to balancing the needs each of the aspects of the ecosystem. Optimizing entirely along one dimension sometimes seems right in the short term, but over any period of time is a risky practice as the benefits of a stable platform that allows for differentiation is something that seems to benefit many.
With Windows 7 we committed up front to doing a better job as part of the PC ecosystem.
Does this post reflect your view of the ecosystem? How could we better describe all those involved in helping to make the PC experience amazing for everyone?
What about the choice that the OS UI and OS features provide in terms of customizability? In that sense, Vista seems to narrow down everything available to power users and oversimplify stuff. Apps such as the Disk Defragmenter are a classic example. What about the choice which MS is giving less and less to Do-It-Yourselfers compared to what it does for OEMs (such as making MS software available exclusively through OEMs)?
Vista still has some serious bugs by design in its driver UI/"experience". The other day I was installing a new device which failed initially because the drivers were on disc and I hadn't inserted the disc. Fair enough, but now when I go to install the driver automatically or using Have Disk, either way it fails and gives an error saying "Windows found software for your device but encountered an error while attempting to install it.". I have gone mad searching the knowledge base and the internet for a solution and while the same error comes up for another issue (a corrupt INFCACHE.1 file/pre-SP1 issue), that does not apply in my case. I cannot install my hardware without reinstalling when my existing installation is a new clean one! The "Found new hardware" wizard does NOT even allow users to choose from a list of available device drivers assuming that Vista has a driver in its database or online. You have to go to Device Manager and start the "Update Driver" wizard to manually choose a driver from a list. I've enabled Error Reporting and always submit the errors from Problem Reports and Solutions but a solution does not seem to exist except reinstalling for the device driver to install properly.
When you say 'make sure that programs that run on Windows Vista continue to run on Windows 7', I was surprised to discover that if you right click an exe program in Vista and select 'properties', you have a choice of 'compatibility mode' starting with Windows 95. Incl. my favorite Win ME that had a lot of good try-out ideas for XP.
I wonder if this works, not having really encountered a need to use it? And does that mean Windows 95 programs run in Windows 7 :-)
If you are intent of migrating everyone to 64-bit I'm wondering if MS could ramp up explanations and benefits of this?
And finally, slightly off-topic; do you think that 'code names' are the best way to go for such a high demand and excitingly expected product? By that, I mean do you think you are ingraining 'Windows 7' in the conscious of your excited masses instead of the 'release name', that should, in my opinion, be hammered home at the earliest.
I'm getting very use to Windows 7 -- but ofcourse that may be the real name anyway. Only you and a selected few know. I don't think 'Snow Leopard' is doing Apple any harm.
If I understand the undertones, the ecosystem of supported hardware and software is considered the greatest asset to Microsoft's continued success. However, it is probably the source of the greatest bloat. While it's good to have a back catalog of supported software, a line needs to be drawn at some point. Computers today don't need to support the same legacy stuff that was supported by Windows 95, unless a business is using some absolutely ancient systems. In that case, they probably wouldn't upgrade the OS anyway.
Perhaps the ecosystem should be more of a Zoo and Museum variety, with only the outstanding specimens kept for all to see. The more less common, or more extraneous elements held aside unless explicitly needed or requested. I don't know if that metaphor makes any sense or has any practical baring on Microsoft's course with Windows 7, but hopefully it's of some use to you.
Windows "Ecosystem" ??
"Optimizing entirely along one dimension sometimes seems right in the short term, but over any period of time is a risky practice as the benefits of a stable platform that allows for differentiation is something that seems to benefit many."
The ecosystem... I think it's more than that, when you design Windows. It's about other operating systems, the mistakes of the past, the education system (and other OS byproducts) and the power Microsoft gets from an operating system.
- Other operating systems.
Why do you think Windows is number one worldwide and not another OS?
Why IBM compatible PCs became top of the world?
Why lots of companies prefer Windows to unix systems?
- Mistakes of the past
What was the main problem with Vista? Could it be UAC or DRM?
How do you explain that "IBM compatible" laptops are doing well, even though they are not actually customizable? Are they going to survive in the future without "IBM compatible" and customizable desktop PCs?
- The education system (and other OS byproducts)
How profitable is the involvement of Microsoft in the education system?
Could this ever exist without an operating system that is widely used?
- The power Microsoft gets from a widely used operating system
Profits from education, from companies, from other Microsoft products, all are connected to Windows. Simple users of the IBM compatible platform chose DOS and then Windows as their favorite platform. This is the real power of Microsoft. Break this connection, or make them angry and you lose everything.
Optimizing entirely along one dimension is not right as Steven said. Though Windows users deserve special attention.
Re: your comments that enthusiasts are the "common thread" running through all the above groups, there may be an element of truth to that, but there are overriding pressures in each group that are going to override the input of the enthusiast element.
In the case of OEMs, I think it's obvious to all of us at this stage that while the likes of HP and Dell have talented engineering teams, the fact is that the Marketing and Inventory departments have far far more influence over what is actually delivered to the customer - the amount of redundant software bloat is evidence of Marketing's push to shove whatever cross-promotion deals they've struck with ISV's, and the problems we've seen with Vista "capable" shows how Inventory's skimping on the pennies in terms of component choice has trumped the engineering needs of the OS.
The gross failure of some very major hardware vendors (Nvidia and Creative, I'm looking at you) to properly develop Vista drivers, even more than a year after release, shows that engineering concerns are being similarly overlooked in favour of... well, who knows what.
The same can be said of major software devs (even Microsoft's ones!) who have failed to take on the adaptations to Vista's UI that they should have done - there was a good comparison I saw recently which showed that even within vista, adherence to the inbuilt UI "look and feel" wasn't done with any consistency. If this is the case, then it also suggests that underlying "hard" engineering isn't being adhered to either. As most Vista crashes have been caused by 3rd party drivers and apps to date, this certainly has some evidence to back it up.
If I had to pick out two areas where Windows 7 can learn from the introduction of Vista it's this:
Vista had a very strong concentration on one particular part of the ecosystem: The OEMs. Users really didn't get a great deal of improved functionality, but the increase in hardware requirements was massive. It's very difficult to come away with a conclusion other than that Vista's purpose is to increase hardware sales for OEMs, and vendors of graphics, storage, and RAM.
The way Vista presents itself is very much like a superficial advert - plenty of flash, pretty colours, and shiny things. Simple, catchphrase slogans instead of explanations. It's all very slick, but it's generally not helpful or useful when you're trying to find something out about what the OS is doing, or fix something. This is important to the "dummy" end users that us enthusiasts end up having to help - The better the information the OS is giving them, the more comfortable they feel and the easier it is to help them. Apple has a similarly "Don't ask questions, press the shiny button and wait" sort of help system, but they have the advantage of closed hardware platforms.
And finally, application compatibility in an OS is all very important.
But what's the point in an OS supporting hardware that it can't possibly run on? Any vendor still using (for example) Win95 apps simply does not have the hardware capable of running Vista in the first place! Hell, a lot of hardware that was actually sold *new* when Vista was released couldn't run it!
It all smacks of wasted effort, blindly supporting hardware models that the OS couldn't run on even if you wanted it to!
You need to bring back the proper Windows Explorer as well.
I know quite a few users that use legacy applications that date back to 16bit computing, I still use some of those applications occasionally today on Vista, so I really understand the importance of backward compatibility. At the same time I understand that Microsoft spends a lot of time trying to get older applications to work with the newer OS through compatibility shims and workarounds.
And to be honest I think most casual users didn't even have a computer when DOS 6.22 or Windows 3.11 first shipped, heck a lot of computer users today weren't even born when those came out. However playing the first version of Tomb Raider on their Windows 7 PC might still be important to some people.
So a good solution for supreme app compatibility is virtualization and we already see a lot of that in MS products like 64bit Windows (WOW32), in Server Products HyperV and of course MS VPC, but I think we could see more virtualization, with something like HyperV making it's way to the Desktop version of Windows, and also with improved VPC performance (which in my humble opinion is lagging behind VmWare at the moment).
So if you'd bundle yet another component with windows (a virtualization solution) that would only take up resources when "compat challenged" applications are running, and that would be able to run XP or older OS with a negligible performance penalty. You could support only Vista applications on Windows 7 and let the users who need to run older apps use virtualization to do so.
From my experience most typical users don't use applications that are more than 2-3 years old anyway, and the users who use older applications, know how to get the most out of virtualization.
From today we can see Windows Ecosystem much drawn near
> PC Makers (OEMs) are a key integration point for many aspects of the ecosystem. They buy and integrate hardware components and pre-install massive amounts of unwanted crapware
any chance this time around that you guys can stop OEMs from flooding our new PCs with garbage please?
Speaking of Windows Explorer, when I first started testing Longhorn build 4074 Windows Explorer crashed, a lot probably because it was using WinFX (or at least .NET 2.0, anyway it was "Managed") at the time , and WinFX itself was far from complete, and even though it crashed, a lot, I was glad because it meant a new Windows Explorer for a new Windows. Finally a departure from the explorer we had from Win95. Now 4 years later I'm content with the new Explorer, it's not bad, it had quite a few useful features, but it also removed quite a few useful features (like toolbar customization).
Now I hope that Windows 7 will have yet another Explorer, but not one that brings old features back , one that makes us forget about old features. Something that lets us do more faster, something task oriented, something that really helps us organize 500GB, 1TB drives filled with 6-7Mb files (and please don't mention Saved Searches, I am curious just how many Vista users use Saved searches, maybe your usage and metrics department can give an approximation)
So what I am saying is, you should definitely should not ignore Windows Explorer, because it is the main component Windows users interact with everyday.
The UI consistancy between apps both pre bundled (MS apps) and Dell or HP added is a major issue. Dont believe me Check out the http://www.aerotaskforce.com/ this site is full of enthuists pointing out old/inconsistant ui issues within the shell and preloaded vista apps.
Okay, this is all well and good, but:
With the targeted release of 2010, isn't all of this discussion kind of moot? The feature set should be determined by now if there's any hope of a decent Beta/RC cycle.
The goals and features should be laid out by now and be locked. What are they?
I would like to say I really like reading this blog.
On this particular topic I was reminded of something that annoys me with drivers. This is that the regular joe using his PC will find it diffucult to remove a driver for a specific hardware device even with explaination from a professional over the phone. I presonally would like to see something similar to 'Programs and Features' on Vista for 3rd party drivers. This could also have an option to view other drivers. The same could be said for problematic Codecs and make it easier for the end user to check if they even have the correct codecs to view a certain file. I find this information hidden in the depths of the system folders and as they say 'where angels fear to tread'.
I really do like the fact that with Vista a lot of the regular hardware is plug and play, and often the windows OS drivers work better than that of actual hardware manufacturers.
I really look forward to more comments on this topic and any future topics you present us with.
Why is the consumer not on the list? Surely they are the most important.
The issue MS have is balancing between everyone. You dont want to make it tooo simple so that a sysadmin screams, but you dont want to use really long acronyms to annoy non-experienced people with computers. That is a hard one to fix, and I dont know a way on how to do it (Profiles e.g. User, Programmer etc. arent a good idea IMO).
was certainly an oversight