Engineering Windows 7

Welcome to our blog dedicated to the engineering of Microsoft Windows 7

Measuring the scale of a release

Measuring the scale of a release

Thanks for all the feedback that we have been getting. That much of it is positive is certainly appreciated. I’ve been answering mails as best I can and along with members of the team we’ve been having the discussion in the comments. Everyone has done a great job sharing their views on specifics, wishes, and requests. I love getting these mails and reading the comments. It is fantastic. I just want to make sure folks know I can’t answer each one! What we are going to do is look to the emails and comments as a way of suggesting posts we should write.  The team overall appreciate the warm reception from all those that have joined us--we know we have lots of energetic discussions ahead of us and we're genuinely happy to start.

With this post, I am hoping to continue the dialog on the way we think “inside the Win7 team” so to speak—in a sense this is about expanding the team a bit and bringing you into some more of the discussions we have about planning a release. This conversation about major or minor releases is very much like the one I have with my boss as we start planning :-)

When we started planning the release, the first thing some might think we have to decide is if Windows 7 (client) would be a “major release” or not. I put that in quotes because it turns out this isn’t really something you decide nor is it something with a single answer. The magnitude of a release is as much about your perspective on the features as it is about the features themselves. One could even ask if being declared a major release is a compliment or not. As engineers planning a product we decide up front the percentage of our development team will that work on the release and the extent of our schedule—with the result in hand customers each decide for themselves if the release is “major”, though of course we like to have an opinion. On the server blog we talked about the schedule and we shared our opinion of the scale of the releases of Windows 7 client and server.

Our goal is about building an awesome release of Windows 7.

Across all customers, there is always a view that a major release is one that has features that are really the ones for me. A minor release is one that doesn’t have anything for me. It should then be pretty easy to plan a major release—just make sure it exactly the right features for everyone (and given the focus on performance, it can’t have any extra features, even if other people want them)! As engineers we all know such a design process is really impossible, especially because more often than not any two customers can be found to want exactly opposite features. In fact as I type this I received sequential emails one saying “[N]obody cares about touch screen nonsense” and the other saying “[Win7 needs] more advanced/robust ‘touch’ features”. When you just get unstructured and unsolicited input you see these opposites quite a bit. I’m sure folks are noticing this on the blog comments as well.

Let’s explore the spectrum of release magnitude across a couple of (but not all) different types of customers: end-users, developers, partners, IT professionals, and influentials.

End-users are generally the most straight-forward in terms of deciding how big a release is going to be. For an end-user a release is a big deal if they want to go out and buy an upgrade or buy a new PC. We could call that a major release. Seems simple enough and a major release is good for everyone. On the other hand, one could also imagine that a release is really cool and people want to buy it, but they also want to use their existing PC and the release requires more memory, updated drivers that might not be available, or maybe some specific hardware to be fully realized. Then it seems that a major release goes from a positive to a bit of an under-taking and thus loses some of its luster. Of course we all know that what folks really want is all the things they want that runs on the hardware they want—then that is a great product to get (whether it is major or not).

Developers look at a release through a different lens. Obviously for developers a release is a major one if there are new APIs and capabilities to take advantage of in their software—again straight-forward enough. It could also be the case that a previous release had a lot of new APIs and folks are just getting familiar with using them and so what they really want is to round out the APIs and maybe improve performance. So one might suspect that the first release is a major release and the second type is a minor release. But if you look at the history of software products, it is often these “minor” releases that themselves become the major releases – Windows 3.1, Office 4.2, or even Windows XP SP2. In each of these cases, the target for developers became the “minor” release but in the eyes of the market that was the “major” release. The reason developers want to use new APIs is to differentiate their products or focus their energies on domain expertise they bring to the table, not just call new APIs for the sake of calling them. In that sense, a release might be a major one if it just happens to free up enough time for an ISV that they bet on the new APIs because they can focus on some things that are a major deal to them.

Partners represent the broad set of folks who create PCs, hardware, and the infrastructure we think of as the ecosystem that Windows is part of. Partners tend to think about a major release in terms of the opportunity it creates and thus a major release might be one with a lot of change and thus it affords the opportunity to provide new hardware and infrastructure to customers. On the other hand, incompatibilities with the past might be viewed in a less than positive light if it means a partner needs to stop moving forward and revisit past work to bring it up to the required compatibility with a new release of Windows. If they choose, for any number of reasons, not to do that work then the release might be viewed as a minor one because of the lack of ecosystem support. So again we see that a big change can be viewed through the lens of a major or a minor release.

IT professionals are often characterized as conservative by nature and thus take a conservative view of change. Due to the business focused nature of the role, the evaluation of any software product is going to take place in the context of a return on investment. So for an IT professional a major release would be one that delivers significant business value. This business value could be defined as a major investment in deployment and management of the software for example. Yet for end-users or developers, these very same features might not even be interesting let alone worthy of being a major or minor release.

Influentials are all the folks who are in the business of providing advice, analysis, and viewpoints on the software we make. These folks often look at releases through the metric of “change”. Big changes equal major release. A big change can be a “re-architecture” as we saw in the transition from Windows 9x to Windows 2000—even though these products looked the same there was tons of change to talk about under the hood. So for reviewers and analysts it was definitely a major release. Big changes can also be big changes in the user-interface because that drives lots of discussion and it is easy to show all the change. Yet for each of these, this definition of major can also be viewed as a less than positive attribute. Re-architecture means potential incompatibilities. New user-interface can mean learning and moving from the familiar.

We’ve seen a lot of comments and I have gotten a lot of email talking about re-architecting Windows as a symbol of a major release. We’ve also gotten a lot of feedback about how a major release is one that breaks with supporting the past. If I could generalize, folks are usually implying that if we do things like that then a number of other major benefits will follow—re-architecting leads to better performance, breaking with the past leads to using less memory. It is always tricky to debate those points because we are comparing a known state to a state where we fix all the things we know to fix, but we don’t yet know what we might introduce, break, or otherwise not fix. So rather than define a major release relative to the implementation, I think it makes sense define the success of the release relative to the benefits of whatever implementation is chosen.  We will definitely continue to pick up on this part of the discussion--there's a lot of dialog to have.

The key is always a balance. We can have big changes for all customers if we prepare all the necessary folks to work through the change. We can have small changes have a big impact if they are the right changes at the right time, and those will get recorded over time as a major release.

We’ve talked about the timing and the way we structure the team, so you have a sense for the “inputs” into the project. If we listened well and focused our efforts correctly, then each type of customers will find things that make the product worthwhile. And if we do our job at effectively communicating the product, then even the things that could be “problems” are seen in the broader context of an ecosystem where everyone collectively benefits when a few people benefit significantly.

From our perspective, we dedicated our full engineering team and a significant schedule to building the Windows 7 client OS. That makes it a major undertaking by any definition. We intend for Windows 7 to be an awesome release.

I hope this helped to see that perspective is everything when it comes to deciding how big a release is for each type of customer.

--Steven

Leave a Comment
  • Please add 3 and 1 and type the answer here:
  • Post
  • Here's my own personal feature list:

    1) Faster out of the box: The most impressive thing by far to those 'Influentials' (aka, Critics) who bad mouthed Vista is if they installed 7 and it was faster in most respects on similar hardware. Quite a feat to achieve, but one that would be worth its time to do.

    2) More polished UI: The Aero UI is certainly nice, and gave Windows a much needed clean up, but there is still some way to go and dusty corners that are showing things up. Having the team find and kill every little bug there would also work wonders on those critics (I'll plug the Aero Taskforce here too who are finding and identifying these: http://www.aerotaskforce.com/

    3) Even more .net support: There are lots of neat Vista specific features that were introduced at launch, along with the brand new .net 3.0 framework. But two releases later and things like glass and TaskDialogs still require p/invoke! If you introduce any features, make them easy to access from native and .net with the same level of ease and sensible experience downgrades for those on Vista or XP without those features.

    4) Educate users about UAC: UAC is a great idea, but users still don't know what clicking Continue means. Provide more information in the dialogs and explain to the user how to make a good trust choice.

    Thanks!

  • @daveli

    "two customers can be found to want exactly opposite features"

    IMO DRM does have it's place.  The ZunePass is a perfect example.  For $15/month I get all the music I want on my Zune.  Without DRM this wouldn't happen.  For music lovers that used to spend way more than $180/year on music this is the greatest thing since sliced bread.  

  • Great blog, good to see it so frequently updated.

    This comment is about a technical issue relating to how your teams work together.

    The Windows Engineering team seems to work on the platform independently to other 'towers'.  By that I mean that there doesn't seem to be that much co-operation between Windows and DevDiv and even the Office tower.  I say this because the managed platform being built out on DevDiv doesn't seem to be propagating over to the OS team.  For example, we recently had an issue with Remote Desktop and WPF.  I found out that the WPF primitives are not now supported in RDP and not likely to ever be.  This means that the Windows Team and auxillary apps don't seem to be planning to leverage the 'managed platform'.

    Rather than addressing this point, could you comment on how the teams interact and plan strategy?  How do you see the value-added apps in the OS fitting in with the equivalent 'Live' apps.  When will the engineering team start buying into .NET strategy?

  • There is another possible category that I think you may be overlooking, especially with regard to which features to include or not include.  It is the one of Enthusiasts.  This specifically applies to the Windows Media Center ecosystem, which, to many of us, is one of the key components of Windows Vista.  Often it appears features are left out or “dumbed down” to minimize the support requirements for the masses.  However, there is a very strong community of Windows Media Center Enthusiasts that “want it all” and have been waiting for certain capabilities for years.  I feel safe in saying that Windows Media Center is the one feature that has garnered the strongest community of enthusiasts and supporters over any of feature of Windows (client or server) ever.  Please do not forget this group of loyal followers as you decide what features to include or not.  Although there is a huge list of “what we expect to see” in several blogs, I would like to point you to what I consider a great condensed version of feature requests at http://mediacenterguides.com/feature_requests.  As expected, some are simple modifications and others are complete architectural changes.  We enthusiasts would love to see both encompassed in addition to your adding some that will surprise and astound us when the product is released.  We look forward to the next generation.

    Regards,

     =D-

    Derek R. Flickinger

    Interactive Homes, Inc.

  • The "Must Have" for me is more like a "Not Have" that is I would like to see an end to the 32bit version of Windows. The 3 and a bit memory limit is the elephant in the room here. It can't be avoided, My first PC has 640K and wow I though it was easily going to be enough. The more features we want will take more memory, it's inevitable. Would the omission of a whole version of Windows class it as major release? not sure, but I believe it's needed.

    For those that are asking for stripped out OS for business or speed. My question is why? If a £399 laptop can handle Vista without any issues with all of the eye candy what's your problem? If stripped out OS is what you are really after there are other options out there like Linux.

    Windows has always been a heavy weight Errr sorry "Feature rich" OS needing(driving)the the ever increasing speed of hardware to get a move on. This is what Windows is, big, really big with lots of whipped cream and a cherry on top. If you want it to be fast then invest in the hardware and it flys along.

    As for this site, there are a lot of people here with lots of ideas. I'm sure any one of us could fill a couple of pages of ideas and suggestions of what we want to see. How about a section of the site where ideas for features can be posted and votes cast. A dynamic "Top Ten" wish list. The suggestions can be from us the users or from the Dev team themselves.

  • I think it would be cool to see a moar customizable GUI, even if its just little things like being able to group pinned start menu items and stuff like that. Organization and productivity go well together

  • Hello Steven, and greetings to all members of E7Team,

    For starters, I would like to turn your (and this blog readers') attention to http://www.aerotaskforce.com/

    It's a page I enjoyed very much recently as it allows users to promote the glitches in Vista that disturbs them to be seen by others and allow it to be assessed by all the community. Windows steeling focus, old icons, it's all there. I, more than once, were pretty amazed to discover UI inconsistencies I haven't had idea of.

    It's a page of Long Zheng, who, not so long ago, with his team won 1st prize on Imagine Cup. I presume it's a quite good argument to look at some suggestion placed there. Moreover, already at least hundreds of users made their vote and still keep announcing new discoveries.

    However, I understand that this is only a part of the problem your teams has to deal with. UI is a part addressed mainly to end-users, as businesses tend to keep their GUI smooth and clean (at least that's the image arising from comments I've read here).

    Although I'm just a hobbyst developer, I can imagine to some extent the amount of job that you need to do to make a new version of system running. And moreover, I admire your efforts and the efforts of the people before you. I believe computer programming is a wonderful, though sometimes upsetting activity, and as many people here wish you success. Using the opportunity, I'd like to express some of my disappointment with Vista development and nowadays some negligence of this product in Microsoft policy. This is, I suppose, caused by a mostly disapproving reaction from the community after serving Vista RTM. And now everyone is counting days to Windows 7, guessing its release date, and hunting for any scrap of information concerning. Whereas Vista, by some, has already been pronounced dead. I feel it’s quite saddening and maybe embarrassing for all the people that gave everything to write Vista. Though we had to wait 5 years to see the Aero in its full glamour, and another one for SP1 to be able to copy our files at reasonable speeds, I still express my highest admiration to all the people who prepared ASLR (or what’s that randomization on DLL loading called), multiple enhancements in the Kernel (here I’d like to advertise Mark Russinovich’s  presentations  on Spotlight if there’s anybody who haven’t seen that), WPF and all the WXOXFs (I mean WCF, WF and whatever else). It’s a great deal of job made for improving usability and security of the OS.

    Still there are IT guys and big important companies that are concerned in manageability of product. I have no idea of how has that been improved or not so I cannot even make assumptions. However I had a little experience with small school domain based on Windows 2000 Server and later migration to Windows Server 2003 (BTW How can I get the address of the guy who decided about that change in naming?) and I was very positively surprised by an enormous, IMO, leap that was made between this two releases. Making it work on not so brand new computers was a challenge (I’ll remorsefully abstain from talking about my futile attempts of acquainting Windows domain with Linux which served that institution’s web page) but a very educating one.

    Furthermore the problems of compatibility and performance persist. But I’d like very much that you made a very secret applet, hidden from the eyes of the small, which would allow the more advanced users to configure their system accordingly to their needs. Even if it meant whipping out Aero and similar concepts. In this place I express more admiration for your patience when reading all these ‘do that’, ‘don’t to this’-like comments. For mine I’m very sorry, but I’m more lame than a developer and the desire is stronger than common sense.

    To end my tirade I’d like to express my support for your team and wish you more luck than the previous team has had. Now when Vista’s dying in agony (at least to some of the press I read) and Seven ‘s bar to jump over is placed quite high it may be of much assistance, this unpredictable luck. And do know  your posts are like sweet cookies, for us lamas, the most enjoyable kind of dish.

    I hope that comments in this blog remains close the merit of constructive discussion that maybe will help you with some implementation doubts you may have. I believe closer the user you are, the better result you’ll get. And though Romans used to say ‘de gustas non est disputandum’ I’d like to see this place a location of exchanging ideas that may follow to the product at least 50% of users are happy of.

    I also hope you can and will open the doors to Windows 7 (or let’s say open the window in Windows7 a little bit more). Some lame guys like me would appreciate some teasing screens from time to time as well;)

    --Chris

    PS And I beg you, please oh please delegate one esthetically bright person to revisit old icons. As you’ve probably already noticed, there are users that just love how their system looks like;)

    PPS May I ask if you could at some time give some hint of your position on implementing ‘open source’ ideas? E.g. OGG, FLAC in music. I mean why you can/can’t will/won’t think of that kind of interoperability between platforms?

  • 64 Bit

    Rock Stable Core

    Drivers that work on the release disk

    That would be a major release

  • Oo, just saw this in the very first comment, and thought I'd add my $0.02:

    "I'm developing on and for Windows since 10 years but lately I'm getting more and more annoyed by MS products. Just an example, I'm switching quite often between documents in Visual Studio with Ctrl+Tab, but VS2008 added the "feature" to show a preview of the documents which really slowed things down and is annoying. I have no understanding for such useless gimmicks. Can I turn it off? Don't think so. Want to sell me/us licenses? Stop annoying me."

    What on Earth is Visual Studio doing reinventing this in the first place? Doesn't such tabbing functionality belong in the OS? Why doesn't the OS expose *usable* API's for this? Why doesn't it expose API's that are good enough for Microsoft's own products to use them? Why is it that Visual Studio and Office pretty much reinvent *everything*? I doubt it's because they're idiots. Perhaps they just want to achieve some kind of consistent presentation. Why doesn't the OS give them that in the first place?

    I read on one of the VS blogs recently that they're working on better multi-monitor support for VS10. Great. Wonderful. But why isn't this the responsibility of the OS? Once again we're going to see a dozen independent implementations of the same feature, just like the infamous Office Ribbon.

    About windows stealing focus, as mentioned in quite a few comments above, that too is one of my most hated "features" of Windows.

    Please, let 7 act like an operating system, rather than a shiny toy.

    The OS is responsible for presenting windows, tabs, tabbing order and giving focus to windows. It's responsible for doing that *well*.

    A toy is responsible for entertaining, and nothing else.

    It's time Windows started living up to this responsibility of being an operating system, because it matters. It matters far more than all the transparency and animations in Aero. I don't care how shiny the 'ok' button on a dialog is if it pops up while I'm typing and I accidentally press it because I typed a space.

    I don't care how gorgeous windows look, if they're able to render themselves on top of the full-screen game I'm running.

    And I don't care if you do the most advance realtime raytracing when rendering the system tray baloon tips. They shouldn't pop up and interrupt me in the first place.

    Repeat after me, Windows is an operating system, not a toy. Its goal is to work for me, not entertain me.

  • Here I´d like to share some suggestions for the new Windows 7:

    1) Release versions:

      - Windows 7 Home Edition

      - Windows 7 Business

      - Windows 7 Home Edition 32 Bit

      - Windows 7 Business 32 Bit

      As you see, I think you should emphasize more on the development and use of a complete 64 bit OS, as most of the newer processors support it. Remove the 64 bit suffix at the end of the OS brand, as it should already be the standard. (64 bit is getting older: It´s been already 5 years since AMD released their 64 bit processors if I´m not wrong, and when "7" gets released it will be almost 7 years!) Make some kind of pressure, so that hardware manufacturers are obliged to develop 64 bit compatible drivers for their own stuff. Older applications should run on a virtual machine, so no one would complain about compatibility issues. Remember: Restricting progress on the new operating system, due to compatibility issues would be a very wrong decision.

  • 2) GUI:

      Now I begin with the interface, as it is the first thing you see on an OS. Taking as example Mac OSX wouldn´t be in my opinion bad at all if it´s about interface aspects. What I´m saying is not copying 1:1 features of another OS, like what some guy claimed two years ago at the Macworld Vista was doing. The first rule to follow is don´t try to be something you´re not (you are Windows, not Mac OS, it´s that simple). But: There are several aspects and features which are good under Mac OSX, and which could even be better if ported to Windows. Remember: As I said before, it´s not wrong to take other OS´s as an example, it´s wronger if you just ignore them all.

       Now to the key features I´d like to see on "7":

       a) Try to find something more useful than Windows Flip 3D, because it´s not much more helpful than the old windows switcher (Alt+Tab). You see, that´s the kind of eye-candy we don´t need at all. A good alternative would be something like "Exposé" (I hope you know what I mean, hit F9 under Mac and see what happens ;), which immediately resizes all open windows and sorts them nicely on your screen. Click on one of these highlighted windows and you bring them to front. Until now I´ve not seen any better tool than that for managing your windows, and I don´t really know if there´s still something to improve (maybe you have some more creative ideas!).

       b) The "Show desktop" feature could use some transition effects (I know, like F11 under Mac)

  • If we don't switch to a different Microsoft OS, we will be switching to something. *hint

  • hrrm... you didn't post my novel? :(

  • Hi Steven, again,

    Thank you for this blog as is it entertaining and informative.

    I am sadly skeptical however as to the impact all the posters have. As far as I know, and I do admit I don't know a lot about your processes, I thought that there was a group within Microsoft that ran user studies and determine from *there* what was getting in the feature list for Windows 7.

    Hence my question is really what concrete action is your group mandated to take concerning the feature requests everybody post in this blog?

    I mean, you say its a discussion. Hence its a two way street. You post, we post, you reply, we reply, etc. This is entertaining and informative. I am happy with just that.

    In the end, does this blog has any impact on the feature list of Windows 7? Are you mandated to report to the user study group or whatever it is called what the people here say and want, and is it taken into consideration?

    I would presume not. For many good reasons. The first being its not how its done.

    Hence, I am seing this blog not as a feature request entry tool, as most people seem to believe it is, but more as a line of communication with the Windows 7 team, who essentially, is mandated to implement features decided mostly by others.

    Please tell us who gets to decide what feature goes in, how, and who writes them!

    I hope you can enlightened us on this issue, as I believe that it may create disapointment and even resentment in many posters (who write long feature request lists and even websites!) who seem to think this blog is a feature request entry tool where actually it may be nothing like that. You tell us :)

    Thanks again for this blog, as it is a step in the right direction I believe, and thanks for your time.

    Antoine

  • I understand that backwards compatibility is a major bugbear and O/S Bloat but is a necessary one, but with the advances in technology and virtualisation (soft grid, Virtual PC, VMware) surely all api calls to pre NT could be removed, and to speed up windows greatly, the application compatibility layer for pre vista could be a removable component.

    By the time Windows 7 hits RTM, I would have thought that most driver manufacturers would have caught up with x64, and that user’s hardware will have been refreshed to be x64 compatible (well, over 80% anyway) thus, X64 should be put ahead of the x86 version. Also, giving developers more incentive to make programs and drivers x64 compatible now will greatly increase the reception that windows has in the future.

    I would love to see Windows more modular, and especially think the business version should be. In my opinion the best way to achieve this is to allow IT Pros to rip it apart and rebuild it how they want (just like Windows XP Embedded).

    Last but not least, I really want native support for ISO’s in the file system, even if they look like read only folders.

    Regards,

    Robin Jones

Page 3 of 8 (108 items) 12345»