From Idea to Feature: A view from Design


Larry is very appreciative of the reception and comments his post received. Thank you!  It is worth noting that we’ve surpassed over 2000 comments and I’ve received and equal amount of email. I am trying to reply as often as I can! 


We’re 10 days from the PDC and so we might take a short break from the blog while we practice our demos of Windows 7…we’ll keep an eye on comments for sure and maybe a post or two on the way.  🙂


Let’s move “up” in the dev process and look at how we come up with what is in a release and how we think about taking a feature from an idea to feature. 


As we’ve posted on various engineering challenges we’ve often distilled the discussion down to a few decisions, often between two options (make a feature optional or not, add a window management feature one of two ways, etc.) Yet this doesn’t quite get to the challenge of where does the product definition begin and how do we take an idea and turn it into a feature. Most choices in engineering Windows are not between two choices, but the myriad of considerations, variables, and possibilities we have before we even get to just a couple of options. This post looks a bit at the path from an idea to a feature.


A common thread we’ve seen in the feedback is to make “everything customizable and everything optional” (not a direct quote of course). Of course, by virtue of providing a platform we aim to offer the utmost in extensibility and customization by writing to the APIs we provide. There is an engineering reality that customization and extensibility have their cost—performance, complexity, and forward compatibility come to mind. One way to consider this is that if a feature has two “modes” (often enable the new feature or enable the old feature) in one release, then in a follow-up release if the feature is changed it potentially has four modes (old+old, old+new, new+old, new+new), and then down the road 8 modes, and so on. The complexity of providing a stable and consistent platform comes with the cost that we aren’t always able to “hook” everything and do have to make practical choices about how a feature should work, in an effort to plan for the future. Designing a feature is also about making choices, tough choices. At the same time we also want to provide a great experience at the core operating system functions of launching programs, managing windows, working with files, and using a variety of peripherals–to name just a few things Windows does. This experience should be one that meets the needs of the broadest set of people across different skill levels and different uses of PCs, and also providing mechanisms to personalize with user interface and to customize with code. Every release we plan is a blending of fixing things that just don’t work like we all had hoped and developing new solutions to both old and new problems, a blending of features and extensibility, and a blending of better support for existing hardware and support for new hardware.


This post is jointly written by Samuel Moreau the manager of the user experience design team for the Windows Experience, Brad Weed, Director of User Experience Design and Research for Windows and Windows Live, and Julie Larson-Green, the VP of Program Management for the Windows Experience. With the number of comments that describe a specific feature idea, we thought it would be good to give you an overview of how we approach the overall design process and how ideas such as the ones you mention flow into our process. Also for those of you attending the PDC, Sam will be leading a session on the design principles of Windows 7. –Steven


Designing Windows – from idea to feature


In general, we follow a reasonably well-understood approach to product design, but that doesn’t make it easy or “automatic”. Often this is referred to as a “design funnel” where ideas go from concept to prototype to implementation and then refinement.  By reading the various design ideas in the comments of Chaitanya’s post on “Starting, Launching and Switching”, you can see how difficult it can be to arrive at a refined feature design. In those comments you can find equally valid, yet somewhat opposite points of view. Additionally, you can also find comments that I would paraphrase as saying “do it all”. It is the design process that allows us to work through the problem to get from idea to feature in the context of an overall product that is Windows.


From a product design perspective, the challenge of building Windows is the breadth of unique usage of just a single product. In a sense, one of the magic elements of software is that it is “soft” and so you can provide all the functionality to all customers with little incremental cost and little difference in “raw materials” (many comments have consistently suggested we have everything available along with options to choose components in use and we have talked about minimizing the cost when components and features are not used even if they are available). And at the same time, there is a broad benefit to developers when they can know a priori that a given PC has a common set of functions and can take advantage of specific APIs that are known to be there and known to behave a specific way–the platform. This benefit of course accrues to individuals too as you can walk up to any PC and not only have a familiar user experience, but if you want to do your own work, use a specific device, or run a certain program on the PC you can also do that. This breadth of functionality is a key part of the value of a Windows PC. Yet it also poses a pretty good design challenge. Learning, understanding, and acting on the broad set of inputs into designing Windows is an incredibly fun and challenging part of building Windows.


As Larry pointed out the design and feature selection happens takes place in his part of the organization (not way up here!). There’s another discussion we will have in a future post about arriving at the themes of the overall release and how we develop the overall approach to a release so that the features fit together and form a coherent whole and we address customer needs in an end-to-end fashion.


We have a group of product designers that are responsible for the overall interaction design of Windows, the sequence and visualization of Windows. Program Managers across the team work with product designers as they write the specifications. Along with designers we have UX Researchers who own the testing and validation of the designs as we’ve talked about before. The key thing is that we apply a full range of skills to develop a feature while making sure that ownership is clear and end-to-end design is clear. The one thing we are not is a product where there is “one person” in charge of everything. Some might find that to be a source of potential problems and others might say that a product that serves so many people with such a breadth of features could not be represented by a single point of view (whether that is development, testing, design, marketing, etc.). We work to make sure engineers are in charge of engineering, that the product has a clear definition that we are all working towards implementing and that product definition represents the goals across all the disciplines it takes to deliver Windows to customers around the world.  And most importantly, with Windows 7 we are making renewed effort at “end to end” design.


Let’s look at the major phases of product design in Engineering Windows. What we’ll talk about is of course generalized and doesn’t apply to each specific incident. One thing we always say internally is that we’re a learning organization—so no process is perfect or done and we are always looking to make it better as we move through each and every iteration of building Windows.


Throughout this post when we say “we” what this really means is the individuals of each discipline (dev, test, pm, design) working together—there’s no big feature or design committee.


Pick the question or get an idea


We get an idea from somewhere of something to do—it could be big (build UX to support a new input method such as touch), wild (change the entire UI paradigm to use 3D), or an improvement / refinement of an existing feature (multi-monitor support), as some examples. There is no shortage of creative ideas, because frankly, that is the easy part. Ideas flow in from all corners of the ecosystem, ourselves included. We’ve talked a lot about comments and feedback from this blog and that is certainly one form of input. Product reviews, enterprise customers, customer support lines, PC makers, hardware and software developers, blogs, newsgroups, MVPs, and many others have similar input streams into the team.


The key is that working on Windows is really a constant stream of inputs. We start with a framework for the release that says what goals and scenarios we wish to make easier, better, faster. And with that program management builds up candidate ideas—that is ideas that will make their way through features. The job of getting a feature “baked” enough falls to program management and they do this work by working across the product and working with design, development, and testing (as Larry described).


With regard to where ideas come from, what we like to say is that the job of program management is not to have all the great ideas but to make sure all the great ideas are ultimately picked. The best program managers make sure the best ideas get done, no matter where they come from.


Gather information and data


Given any idea, the first step is to understand what data we have “surrounding” the idea. Sometimes the idea itself comes to us in a data-centric manner (customer support incidents) or other times it is anecdotal (a blog).


The first place we look is to see what data do we have based on real world usage that would support the development of a hypothesis, refute or support the conventional wisdom, or just shed some light on the problem.  The point is that the feature starts its journey by adding more perspectives to the input.


Essentially, we need an objective view that illuminates the hypothesis. We gather this data from multiple sources including end users, customers, partners, and in various forms such as instrumentation, research, usability studies, competitive products, direct customer feedback, and product support.


As many (including us) have pointed out, telemetry data has limitations. First, it can never tell you what a person might have been trying to do—it only tells you what they did. Through usability, research, and observation, we are able to get more at the intent.  For example, the way we talked about high dpi and how the telemetry showed one thing but the intent was different (and the impact of those choices was unintended). The best way to see this is to remember that a person using a PC is not interesting in “learning to use a PC” but is trying to get their own work done (or their own playtime). And when faced with a “problem” the only solutions available are the buttons and menu commands right there—the full solution set is the existing software. Our job is to get to the root of the problem and then either expand the solution set or just make the problem go away altogether.


What about unarticulated needs?  The data plus intent shows the “known world” and “known solution space”, but one role we have is to be forward thinking and consider needs or desires that are not clearly articulated by those who do not have the full time job to consider all the potential solution spaces. The solution space could potentially be much broader than readily apparent from the existing and running product—it might involve a rearchitecture, new hardware, or an invention of a new user interface.


A great example of this was mentioned in one of the comments on the taskbar post. The comment (paraphrasing) indicated that the order of icons on the taskbar matters so sometimes he/she would simply close all the open programs and then restart them just so the programs were in the preferred order on the taskbar. Here the data would look like an odd sequence of launch/exit/launch/exit/launch/lauch. And only through other means would we learn why someone would be doing that, and for the most part if you just walked up without any context and said “how can we make Windows easier” it isn’t likely this would bubble up to the top of the list of “requests”. Thus we see a number of neat things in this one example—we see how the data would not show the intent, the “request” would not be at the top of any list, and the solution might take any number of forms, and yet if solved correctly could be a pretty useful feature. Above all, in hindsight this is one of those “problems” that seems extraordinarily obvious to solve (and I am sure many of you are saying—“you should have just asked me!”) So we also learn the lesson that no matter what data and information we gather or what design we’re talking about, someone always noticed or suggested it :-).


Hypothesize


The next step is where we propose a clear hypothesis – “people would benefit from rearranging icons on the taskbar because positional memory across different sessions will reduce the time to switch applications and provide a stronger sense of control and mastery of Windows”.


What is our hypothesis (in a scientific sort of way) as to what opportunity exists or what problem we would solve, and what the solution would look like, or why does the problem exist?  Part of designing the feature is to think through the problem—why does it exist—and then propose the benefit that would come from solving the problem. It is important that we have a view of the benefit in the context of the proposed solution. It is always easy to motivate a change because it feels better or because something is broken so a new thing has to be better, but it is very important that we have a strong motivation for why something will benefit customers.


Another key part about the hypothesis is to understand the conventional wisdom around this area, especially as it relates to the target customer segment (end-user, enthusiast, PC maker, etc.) The conventional wisdom covers both the understanding of how/why a feature is a specific way today and also if there is a community view of how something should be solved. There are many historic examples where the conventional wisdom was very strong and that was something that had to be considered in the design or something that had to be considered knowing the design was not going to take this into account—a famous example is the role of keyboard shortcuts in menus that the “DOS” world felt would be required (because not every PC had a mouse) but on the Mac were “unnecessary” because there was always a mouse. Conventional wisdom in the DOS world was that a mouse was optional.


Experiment


For any hypothesis, there are numerous design alternatives. It is at this stage where we cast a broad net to explore various options. We sketch, write scenarios, story board, do wireframes and generate prototypes in varying fidelity. Along the way we are working to identify not just the “best answer” but to tease out the heart and soul of the problem and use the divergent perspectives to feed into the next step of validation.


This is a really fun part of the design process. If you walk our hallways you might see all sorts of alternatives in posters on the walls, or you might catch a program manager or designer with a variety of functional prototypes (PowerPoint is a great UI design tool for scenarios and click-thrus that balance time to create with fidelity, and Visio is pretty cool for this as well) or our designers often mock up very realistic prototypes we can thoroughly test in the lab.


Interpret and Validate


With a pile of options in front of us we then take the next step of interpreting our own opinions, usability test data and external (to the team) feedback. This is the area where we end up in conversations that, as an example, could go something like this… “Option ‘A’ is better at elevating the discovery of a new feature, but option ‘B’ has a stronger sense of integration into the overall user experience”.


As we all know, at the micro level you can often find a perfect solution to a specific problem. But when you consider the macro level you start to see the pros and cons of any given solution. It is why we have to be very careful not to fall into the trap of a “tests”. The trap here is that it is not often possible to test a feature within the full context of usage, but only within the context of a specific set of scenarios. You can’t test how a feature relates to all potential scenarios or usages while also getting rich feedback on intent. This is why designing tests and interpreting the results is such a key part of the overall UX effort led by our researchers.


A mathematic way of looking at this is the “local min” versus a “global min”. A local min is one you find if you happen to start optimizing at the wrong spot on the curve. A good example of this in software is when faced with a usability challenge you develop a new control or new UI widget. It seems perfectly rational and often will test very well, especially if the task asked of the subject is to wiggle the widget appropriately. However, what we’re after is a global optimization where one can see that the potential costs (in code, quality, and usability) of another widget by erase any potential benefits gained by introducing a new widget. Much has been written about the role of decision theory as it relates to choosing between options, but our challenge with design is the preponderance of qualitative elements.


Choosing


Ultimately we must pick a design and that choice is informed by the full spectrum of data, qualitative and quantitative.


Given a choice for a design and an understanding of how to implement it and the cost, there is still one more choice—should we do the feature at all. It sounds strange that we would go through all this work and then still maybe not build a specific feature. But like a movie director that shoots a scene that ends up on the cutting room floor, sometimes the design didn’t pan out as we had hoped, sometimes we were not able to develop an implementation plan within reason, or sometimes there were other ideas that just seemed better. And this is all before we get to the implementation, which as Larry pointed out has challenges as well.


We have two tools we use to assist us in prioritizing features and designs. First is the product plan—the plan says at a high level what we “require” the product to achieve in terms of scenarios, business goals, schedule, and so on. Most of the time features don’t make it all the way through prototyping and testing because they just aren’t going to be consistent with the overall goals of the release. These goals are important otherwise a product doesn’t “hang together” and runs the risk of feeling like a “bunch of features”. These high level goals inform us quite a bit in terms of what code we touch and what scenarios we consider for a release.


And second we have the “principles of design” for the release. These principles represent the language or vocabulary we use. These represent the core values—we often think of the design principles as anthropomorphizing the product—“if Windows were a person then it would be…”. This is the topic of Sam’s talk at the PDC.


As mentioned in the introduction, it isn’t possible to do everything twice. We do have to decide. This could be a whole series of posts—customization, compatibility modes, and so on. We definitely hear folks on these topics and always do tons of work to enable both “tweaking” and “staying put” and at the same time we need to balance these goals with the goals of providing a robust and performant platform and also moving the OS forward. Some of us were involved in Office 2007 and there is a fun case study done by Harvard Business School [note fee associated with retrieving the full text] about the decision to (or not to) provide a “compatibility mode” for Office 2007. This was a choice that was difficult at the time and a few folks have even mentioned it in some comments.


Implement and Integrate


Finally, we build and iterate to refine the chosen solution. Inevitably there are new discoveries in the implementation phase and we adjust accordingly. As we integrate the solution into its place in Windows, that discovery continues. The beta period is a good example of how we continue to expand and learn from usage and feedback. In a Windows beta we are particularly interested in compatibility and real-world performance as those are two aspects of the design that are difficult to validate without the breadth of usage we can get if we do a great beta.


It is important to keep in mind that we follow intensely all the feedback we receive from all forms—reviews, blogs, and of course all the telemetry about how the product is used (realizing that the beta is a select group of people).


One of the things we hope to do with the blog, as you might have seen on the IE 8 Blog, is to discuss the evolution of the product in real-time. We’re getting close to this transition and are looking forward to talking more about the design choices we made!


— Sam, Brad, and Julie

Comments (67)

  1. Cooking says:

    This blog has been created to share useful information. Thanks and greetings!

  2. locolorenzo says:

    I have been using a Windows 7 alpha for a while

    and I am impresswd with a lot of it’s features.

    The Software kernel mode protection that is built in is very impressive, I hope that you can further improve this to help to defeat reverse engineering of Microsoft Products.

    I would also like to see a downgrade of minimum requirements to pre-Vista standards. From this side memory leaks are non-existant and I have found software compatibility greatly improved over Vista.

    This is a Great OS and like the UNIX like shell, its going to be real intresting testing further builds & look forward to the final retail release.

    Lorne L. Reap

  3. bobharvey says:

    I am very dissapointed with this blog.  I think that the disparity between what is being achieved and what I originally expected is vast.  I suspect it started too late.

    I thought that this was a genuine attempt to change the windows development process and produce a product that would not suffer from the clumsiness and bad manners of the Vista versions, but it hs turned into an exercise at self-justification.

    I get the impression that what is happening here is a harvesting of criticims, and an early attempt to defuse them or to try out reasonable justifications.

    It is clear that what we are going to get with 7 is what we were going to get all along, Vista with knobs on.  It is also clear from, at least the initial few sets of comments, that is exactly what people did not want.

    It seems clear that ideas like dropping the registry or developing the OS independently of the application bundle have simply no chance of being adopted.  Nor is there any intention to provide a virtual XP box with the final version to allow simplified legacy support.

    I am very disappointed by the tone of most of the recent postings, which have  been far from collaborative and have had a whiff of defensiveness about them.

  4. bobharvey says:

    I followed the link to the ‘fun’ reference at Harvard and discovered I would have to pay $6.25 to read it.

    That’s a  bit annoying, really, and rather bad manners.

  5. steven_sinofsky says:

    @bobharvey — I assure you that Microsoft receives no compensation.  It is a published work that charges much like a book (and used that way in a classroom).  There isn’t a freely available version of this publication. I am sorry if that was not an appropriate citation.  I should have made this clear in the link and will do so in a revision.

    I appreciate your note regarding your view of the posts.  

    One thing I would mention is that we have not yet discussed in detail the features or details of the release.  As we talked about in the first post, this first purpose of the blog was to discuss the "how" of engineering Windows 7.

    One thing that we have all seen is that it is tough to say "exactly what people want" as we’ve seen many sides of many issues.  Many suggestions have been made, both in response to the specific posts and in an unsolicited form.  

    On just one of your specific feature suggestions, depending on your definition of "application bundle" we spoke about this in the blog and this has also been something we have said would be the case as has been reported widely.

    We will keep trying to meet your expectations on the tone.

    –Steven

  6. domenico says:

    @locolorenzo

    where you have taken the M1? Official or P2P ?

    You realize that your requests are on a m1 code ?

  7. domenico says:

    From the competition Microsoft should learn one thing  , this

    http://channel9.msdn.com/forums/Coffeehouse/432784-Strip-Tease-Tech/

    AKA : Marketing and Hype

  8. quux says:

    I enjoyed this post. There are a lot of people who have a much fuzzier idea of how features are conceived, developed, and implemented. I had not realized (before reading this) how much that fuzziness contributes to the many ‘MS should do X’ things people out there are saying.

    I was one of those people with a too-fuzzy idea of how you do it. I probably still am. But I appreciate the insight and I hope for more like this.

    Thanks!

  9. Miek says:

    I will appreciate a post from a MS expert on VM’s as many comments were made on the idea of virtual boxes for backward compatibility etc. I cant even start imagining all the problems. My take on it:

    Currently 100% of windows programs is , well 100% windows programs, so 100% will need to be launched in virtual machine. So a brand new OS will just be a XP/Vista launcher. Millions of hours of software engineering working on the current API. Only brand new programs will be done for a brand new OS. Most companies don’t have capital to redo software for fun, and if they do, it will take more than a few weeks. My PC have such a launcher, called a BIOS.

    A virtual machine in a server room, booting once in a blue moon running a few specific pre-defined services is fine I suppose, but constantly as I work and open different programs etc? No thanks.

    And then, I can already "hear" the complaints about disk footprint and memory usage and slow program start-up and MS engineers so ans so stupid…

    I kind of understand that one day virtual BOX for backward compatibility will be a good solution, but not with today’s average of the shelf grandma-PC with maybe 2 or 4 Gig ram?

  10. Asesh says:

    One thing that really amazes me is why there’s no Windows Vista or Server 2008 logo when either OS is booting. I have both Vista and Server 2008 installed and some times I get confused which OS is booting. There should be a logo of the OS just like in XP when booting. There’s no way we can say which OS is booting by just looking at the boot screen!! And the common controls of Vista comes no where close to Mac OS X. And remove that ugly Vista basic theme and replace it with Aero like theme which we get to see when installing Vista. It’s much better than that ugly Vista basic theme

  11. anonymuos says:

    While it is difficult to make everything customizable and everything optional, it is certainly easy to preserve existing UI and features and build incrementally upon those to create a new release that is a superset of the earlier one. In that respect, Vista went a different way and tried to reinvent the wheel; it is not a superset of Windows XP which itself was a superset of all previous Windows versions. Vista changed the baseline eXPerience that we all enjoyed in Windows XP. It removed common properties by default, opting instead to place new, unfamiliar territories before the Windows user. Huge changes resulted in an experience similar to that of moving to an entirely new OS. And I believe very strongly this is the main reason why Vista has not been overwhelmingly received.

  12. Magumi says:

    @bobharvey Do you really think that a single user’s reply to a blog could make any difference to W7? (Especially when there is nothing wrong with registry :-)) What were you expecting? I do agree, though, that a blog like this one should have appeared much earlier. If this blog showed up as soon as it became obvious that Vista was going to become a marketing failure, some of the damage could have been averted.

    To respond to the current post – there is one aspect of customization that would not come at an increased cost – to drop all the bundled applications from Wordpad to Windows DVD Maker and let the user install them or used them through web interface, when needed.

    And please stop using the word "Windows" in the title of every bundled application. It’s like writing the word "coffee" in front of every item on Starbuck’s menu.

  13. Magumi says:

    One more thing – I sorely miss the ability to customize the ribbon in Office 2007 applications. Why do I have to buy a separate application to be able to do something that was integral to every previous Office suite?

  14. Jalf says:

    "Especially when there is nothing wrong with registry"

    There is plenty wrong with the registry, in the same way that there’s something wrong with just writing into a random file in the C: root. What’s more, plenty of people at MS are aware of it, but it’s not easy to fix, if you want to preserve backwards compatibility. 🙂

    Just a few problems with the registry:

    It lumps user-, system- and application settings together in one big mix. What do I do if I want to back up my settings for a single application? What if I want to grab all my user settings, and apply them to another OS? I can’t. Even Microsoft’s Windows update installation is just a big complex script hardcoded to read specific values from the registry, and applying them to the new system.

    Then there’s the problem that programs can (and do) poke around at each other’s settings. And the fact that it’s impossible to maintain There’s no sane way to figure out what changes a specific application has made to the registry, or whether it cleaned up after you uninstalled it.

    The registry is one of the largest remaining WTF’s in Windows. Of course, it’s also virtually impossible to remove, because almost every existing application depends on it. But pretending that there’s "nothing wrong with it" is just silly.

  15. boss_kevin_boss@hotmail.com says:

    @Jalf

    The registry is not very good we now, but i think a registry based on a SQL Database will make a clean registry very easy. If an App will be Remove in the "Add or Remove Software" of Windows, just drop the Table with the App Informations and its good…no old registry keys, no registry cleanup tools needed.

  16. simmans says:

    I see registry a little like a security against illegal copy but I know there is wrong in some aspect. But in every solution there is problems. Separate the registry system from OS make it more visible, then security failure, but easier to manage.

    I think "correct me if I’m wrong" Microsoft white programs not only for user but to make sure software developpers feel secure about writing software that nobody can hack. I there is too much security lack in the OS, nobody will write soft for it because it’s too dangerous.

    There must be a balance between developper security and user freedom. I will never want develop software on an OS knowing everyone can hack it, and I’m not the only one that think like this.

  17. simmans says:

    One more thing, thank you talking about some aspect I talked about in my doc. I can regconize some of my lines.

  18. marcinw says:

    > Do you really think that a single

    > user’s reply to a blog could make any

    > difference to W7? (Especially when there is

    > nothing wrong with registry :-)) What were

    > you expecting?

    all users can say: our voices will not change anything.

    and what will they see in some moment ? that even "hello world" application will cost a lot, will be very big and will not work as expected…

    generally, when there is more critic, it will be more difficult to say for company – hey, this system is big success…

    shared Registry is big problem in Windows. Install MS Office – thousands of entries, add few apps – many other. try to uninstall them and many entries will be still there. is it OK ? I don’t think so…

    solution is very easy – when applications are using API for saving, reading, changing Registry, their keys should go into separate physical files (and this is good, because for example IE will not have access to WMP settings). very easy to implement. only some parts of Registry will be shared (for example info about devices or extensions handling). when application X will want to see settings from application Y, will need special user permission.

    the same, when application tries to save something to system directory, it should go into virtual directory for example in Program Files. no more writing to real system directory or winsxs.

    both solutions are kind of virtualization. already implemented (see sandboxie for example), don’t need a lot of memory. How many current apps will work with it ? 90% ?

    In my opinion, it could make, that people will see – hey, this system gives much better security. no need of advertising it. and please don’t say, that it’s difficult or something. WIndows 7 need to add such solutions. People don’t want to see another super hiper mega prefetcher or system restore. They need real security. we were byuing new application versions during migration from win3.11 to 95, the same with migration from 9x to NT, we can make it again. But give us such good reasons 🙂

  19. marcinw says:

    > I will appreciate a post from a MS expert on

    > VM’s as many comments were made on the idea of

    > virtual boxes for backward compatibility etc.

    > I cant even start imagining all the problems

    there are many virtualization types. I agree, that in some even running Notepad will need 200 MB of RAM. But in some not – when Microsoft will implement for example something like in Sanboxie, you will even probably not notify, that application is somehow virtualized 🙂

  20. simmans says:

    @marcinw

    If "keys should go into separate physical files", that’s mean these keys are easier to find, then easier to implant to another system or else causing hacking. But your base idea is good, the only thing left is to keep the original registry system for security use, but again, there is less keys, then less search, then security lack.

    Then what? Or all registry are separated on different files to be easier to find, or keep the same registry system for more security, or mix the two systems to have a base security system.

    And with Linux that ignore all Windows security, everything in Windows is visible.

  21. woodycodeblue says:

    Thanks for the post on the design process.  It certainly is a lot of work and consideration that goes into determining what gets implemented, and how.

    Out of curiosity, are there any numbers on where the various features come from?  IE, percentages on features that are the result of user telemetry and auto-reported data, features that were first inspired by direct user input, those that were a useability issue for people on the team, and those that were just some idea out of nowhere.  Data like that, while not of particular import, would be fun and neat to see.

  22. marcinw says:

    @simmans,

    100% of users need less mess in Windows system – more separating applications from each other and system core. And similar solutions (like proposed by me or other) must be finally implemented. This is critical. Without it Win7 will be only another NT based system, nothing more (and people like me will rather search alternative for it).

    For 10% of users, who want to protect Registry files (or other, which will replace it) against reading them from Linux for example – they can use already existing solutions like encrypting partitions. Microsoft already discovered this wheel.

  23. simmans says:

    Partition level of encrypting registry data, I like it. The only restrict is stoping to use NTFS file system.

    What about HTFS? I just see it in Vista RCs. I must go see what new there is with it.

  24. locolorenzo says:

    Some ideas for the Design and Engineering teams that should be implemented in the production loop of the Windows 7 Operating System.

    First of all I am happy with the install speed of Windows 7, fast expansion of installed features is important for the End User, my first install of Vista took three hours where as my experience with this Alpha version of Windows 7 took only 35 minutes from the insertion of the DVD too First Boot, I am using a Dell Inspiron 8000 with 799mhz processor/512megs memory, I am running all the components with what I consider to be impressive performance.

    One feature that should be taken into consideration is what features the End User wants to install from the onset of installation.

    Also when dealing with Internet connectivity there could be an IPV6 type of connectivity wizard to initialize a wireless connection during the setup phase for those of us that have opted out of wired networks.

    Also in the case of catastrophic failure, a recovery facility that allows the production of a recovery DVD/CD that the End User could produce at first boot, also in the instance of corruption or failure of systems files an easily accessed shell to replace corrupted files before the logon screen it should be a GUI  and intuitive and also internet connective to pull user files from an online storage facility that Bit-Locker was intended for …most people do not know about selective replacement of corrupt files by using another computer to modify the disk content. But at this point I feel that the recovery counsel is too convoluted for the average user.

    I know it is also easy to back-engineer systems files and key features to work in other environments! It is evident that key features should have stronger pointers to the Kernel to defeat back-engineering. I found that this has been implemented in Windows 7 to a stronger degree that previously used but I have made several easily done hacks to make the features work else where.

    The performance loop at first boot is self defeating; let people choose if they want slower performance and more eye candy, this Kernel can handle it even in my old beast of a computer… I have implemented Glass on this card with XP Pro and also Red hat 9/Fedora Core 7.

    Now off on a tangent, you must implement better port emulation for New Computers. I use CCD Cameras for imaging and some still use serial/parallel ports to hook-in to the system. New Computers are cheap, Scientific equipment is a little different but needs for support from Windows as an OS.

    Driver installs for old stuff can be accomplished through a wizard that takes drivers and bundles them in the new driver installation facility.

    Thanks for letting Developers not working for MS some feedback in this process.

    Lorne L. Reap

    lornereap@hotmail.com

    p.s.

    @Domenico

    Not really the forum for this,be polite to all in the developement loop.

    Lorne

  25. Mayur Prayag says:

    First of all,as the vista’s successor name announced,again everyone’s hopes from Microsoft increased.

    The Popularity of windows operating system(Win7) can be seen through by just typing "Windows 7" in Google Search!!!

    This is proof that why people(including all)are discussing about Windows 7 all over the web.I am watching every blog(about win7) very closely.Each is discussing some pros & cons points.Many have labelled that microsoft popularity is decreasing. Unfortunately 90% of the blogs are comparing Windows 7 to Vista.

    Here I will try to point of some summary of these Blogs:

    Features lack in Vista:

    ->Lack of microsoft’s ambitious project WinFs.

    ->absence of Minwin.

    ->Xp’s security flaws occured during Vista’a early stages.

    ->Failed to please Geeks.

    ->Marketing Stratergy.

    ->Virtualisation.

    ->Cutting Many features those r promised in final release.

    ->compatibility problems.

    ->Hardware requirement.

    ->No special software is written for Vista!!!!

    ->Of course Xp’s tough competition!!!!!!

                       Though we all knew these problems.

    Expectations from Windows 7 are to be said:

    ->WinFs must be included.

    ->MinWin kernel.

    ->Please to geeks.

    ->Top notch performance ,security ,features.

    ->Different Marketing Stratergy.

    ->Eye candy UI

    ->Customization.

    ->Better UAC ,multi-moniter taskbar support.

    ->Welcome to photo gallery,email r cutting.

    ->Better compatibility etc.

        There r a lot of expectations from Win7.

    Most are telling that Windows 7 is Make or Break for Microsoft.Some may think Win7 is saviuor for Microsoft.Though above all points knew to Microsoft,

    I again point out that.

    What should be remaining is that just give a reason to people to upgrade from XP to Windows 7.We all are

    hoping Win7 will definitely please us.

    This is a great chance for Steven(and microsoft) to show their critics that still Microsoft has wind in it’s wrest.

    We are all with u & try to fulfill folks’s expectations .Please Steven show your amazing work through Windows 7 to all of us.

    Thank You.

    – Mayur Prayag

  26. steven_sinofsky says:

    @Mayur Prayag  — well that’s a tall order!  All I can say for sure that the team is amazing and everyone is working super hard.  Next week at the PDC is the first look at the Windows 7 project and we’re all excited to reach this milestone.

    One week to go!

    –Steven

  27. mariosalice says:

    Digital signing is a new feature in Vista.

    Even opentype fonts have digital signatures.

    Are you going to restrict end users from using any unsigned programs and fonts in the future, even if they created them?

    Where could such decisions come from?

  28. Magumi says:

    Well, the comment about registry was meant tongue-in-cheek, as the smiley attests. 🙂

  29. Xplorer says:

    I read this blog, and I think that core problem with Win design lay in section of borders and titles. Well, I saw problem as like the creative team work to hard to make something that will be WOW, but as a result we have some solutions that almost isn’t right (for example, aero interface is nice, but what is it for?). First of all, Win have borders that are too big. For me, 1pt is enough (or, exteme version will be without borders, with rounded corners of each window). Second, title bar is useless. What I mean? Did you have any experience with new Photoshop CS4? They take advantage use of this space and make it more meaningfully. In this line, you can find all functions, and it’s OK for use: you have more active space to use in window. Second idea is about how active windows will show on desktop. Of course, tha main idea is that active window be in a centar of action, with inactive windows still on there, but more like in 3D ambience. When I open, for example, Computer, this window will show up in a middle of my desktop. When I open some other window, previous window will go back, become smaller (not too small), with smooth animation (transition), and in the middle of desktop you can find your new opened window. Thus, Flip 3D will be more useful: rotation between all open windows will be like carousel, in front of you insted in some “second dimension”. Ofcourse, when you look at your desktop, you will see most of all open windows or just part of them, which will be defined with number off all open windows at the time. All windows that are minimized, wouldn’t be in this preview, so, Flip 3D will have specific rolle as usual. This organisation isn’t too important. Redesign titile bar and borders, and it will be much more better and more functional.

  30. Prixsel says:

    I hope and we all hope we get better coded Windows , light weight and fast performance OS with no stupid freeze ups and low on intelligence on different scenarios of new program install , uninstall and compatibility.

    Process explorer should be made into task manager so it would have more settings and options like restart application, see vendor and stuff… and get a look at what are running on system startup. Some kind on boottime defragment should be made for optimization and pagefile correct placement.

    Programs should not make files into system folders and documents and settings because during uninstall they are hard do keep on track of the junk files left after uninstall of your apps. Vista had lack of driver updating as well because it doesn’t offer you latest ATI or NVIDIA or REALTEK HD Audio drivers whats really bad for people who don’t know the reasons for bad game performance. Server computer should get warnings when their PCs need some kind of update or computers  in schools will stay outdated. UI and themes should have option for customization and  forced verify before install.

    Hope Vistas core doesn’t have much boundaries of new way of software’s and computer behavior for Windows 7 development.

    English isn’t my native language and I hope these suggestions get acknowledged and considered and we could get friendly windows environment for everyone.

    Will be waiting do get hands on WIn7 do try what you have cooking so far 😛

  31. csmikle says:

    Steven,

    Are these comments moderated? I ask because I read this post when it first went up and there were no comments on it, and I signed in and commented. When I didn’t see my comment show up, I tried again. After that, I just assumed you weren’t accepting comments or something.

    For what it’s worth let me just mention a couple of things I’d tried to say:

    Customization introduces too much complication for developers and users alike for many features, but I believe the Start Menu is an exception. Some nice options are already there (link vs flyout menus, folders like Control Panel, etc) but I think it’s been a big mistake that we’re limited to Documents and Music and so on for what folders can be shown here. I think it is important to allow us to put different user folders, maybe mapped drives, maybe search folders. I love how extensible the taskbar already is and I know you’re doing great work there for 7, but look for other little places like the Start Menu where it is not clear why our options are so fixed.

  32. Laith says:

    A week and we see what is behind W7 and it is where the public start talking about W7 and blogging about it ;).

  33. roboto says:

    Hi,

    first thing to say: I enjoy reading this blog. So thanks for it!

    Although I’m using Vista for over a Year now, and I’m very pleased with it, there are some things I’d like to see in Win7.

    The first thing is from a developers view: Windows has got a lot of powerfull APIs, but as a .Net Developer a lot of them are not easy to use: there are no managed APIs for them. I hope, as the .Net Framework evolves, it will include more and more APIs, so the need of doing dll imports will slowly fade away.

    As a developer, I think the .Net Framework is important for Windows as a platform.

    Another thing is that I’d like to see Windows using more WPF. When I see videos of some Longhorn Builds, I get "knocked of my socks" by the effects. Some of them are really great, for example in the explorer. It would be great if some of them return in Windows 7.

    But there’s always a balance to make between "eye candy" and performance. I wonder wether the animations / wpf-based explorer was cut off because of performance issues.

    Performance improvements should be a big issue for ALL new Windows Versions. I don’t think Windows itself is using too much performance, it’s more about offering better performance for applications (by better scheduling, and so on).

  34. d_e says:

    Yet another great post! Thank you very much!

    I’m sure it must be tiring to read all those nonsense "put Vista in a virtual box", "let’s get rid of the registry" or "we need MinWin" (both comments show a serious lack of understanding of Windows, MinWin and what those features would mean in practice). I hope my comments are more valuable.

    If you really want to hear comments on how to improve Windows: Make it easier for everyone to comment. Add a "Show us how to improve Windows"-application that let’s everyone record video screen captures, comment and submit them. You could rate users (to get rid of the noise), categorize requests, …. The "Was this Information helpful?" questions in Office message boxes are another way to achieve something similar.

    I once heard that there was a MS-internal widget that shows a random rant that was sent to billg@microsoft.com. Is that true?

    All I hope for personally is that Win7 looks more polished (no flickering when resizing, fade-in that always fades in after login, no flickering when moving gadgets on the sidebar, …) and runs faster (less IO).

  35. briantist says:

    I really, really can’t understand why the registry can’t be fixed by using an SQL database, it could be a MS-SQLite.

    In the first instance you could just use a couple of tables to implement the "tree" structure, and another table for the key/value pairs.  A bit of normalization, easy.

    Just add in a few more tables to note the exe that created the key, and purging the tables would be simple, and it gives the place to implement a "read only" and flag.a

    Using a SQL dB, if properly done could allow a remote DB to be used on a managed network (corporate, educational or cafe).

    Also, when using in a client-server environment, a redo log could speed up profile access if no SQL database is at hand.

    Another useful feature of a server based SQL registry is it could, in theory at least, be shared over machines:

    you could be logged in in multiple places and your stuff would be shared instantly.

  36. marcinw says:

    > I’m sure it must be tiring to read all those

    > nonsense "put Vista in a virtual box", "let’s

    > get rid of the registry" or "we need MinWin"

    > (both comments show a serious lack of

    > understanding of Windows, MinWin and what

    > those features would mean in practice).

    > I hope my comments are more valuable.

    well, it’s possible to leave situation like is & having compatibility with 100% of apps. Market found weaknesses of Windows architecture in Vista, will do it again. there will be many USD required for advertisements.

    it’s also possible to implement somehow these "nonsences" and things like total uninstalling applications & making them more secure will be possible… (World and MS) programmers will have possibility to forget about these problems (at least partially) and will have time for implementing new features…

    this is situation like with win311 or win9x -> it wasn’t to do some new features in old architecture, there were required changes.

  37. asymtote says:

    This UI stuff is fascinating, I particularly appreciate the depth you are going to. I wonder if you’ll be moving down the stack and covering any kernel-mode topics in the future?

  38. manicmarc says:

    Sounds like a complex process you go through to decide new features, which I guess when you consider the number of users you will have an effect on – that’s a good thing. If only our governments planned stuff like that 🙂

  39. Don Reba says:

    > shared Registry is big problem in Windows. Install MS Office – thousands of entries, add few apps – many other. try to uninstall them and many entries will be still there. is it OK ? I don’t think so…

    It is indeed ok. User settings are data and should not be removed on uninstallation. Why would you think otherwise?

    > only some parts of Registry will be shared (for example info about devices or extensions handling). when application X will want to see settings from application Y, will need special user permission.

    What you are basically asking for is per-application permissions. This a common mistake caused by misunderstanding the Windows security model.

    > the same, when application tries to save something to system directory, it should go into virtual directory for example in Program Files. no more writing to real system directory or winsxs.

    What do you define as an application? Many applications, installers an important example, spawn multiple processes. One process creates a file, another reads it, does not find it, crashes.

    > both solutions are kind of virtualization. already implemented (see sandboxie for example), don’t need a lot of memory. How many current apps will work with it ? 90% ?

    Breaking 10% of applications is, of course, completely unacceptable.

  40. alamfour says:

    Great work guys. Looking forward to Win7. By the sound of things Win7 will be the greatest OS to come our of redmond to date.

    Congrats again

  41. hami1car says:

    I realize this isn’t the same kind of design, but I must say PLEASE PLEASE change the look of the Vista Basic scheme for Win7.

    I realize it was basically designed to punish people that get the low-cost version of Vista, but I see it way too often while running Vista Business. Not to mention that tons of screenshots used in reviews have it as well (due to reviewers running Vista in virtualization), so it’s hurting you from a marketing standpoint as well.

    The Vista/XP theme used by the Windows Live apps on XP, as well as Google Chrome on XP, is MUCH better looking. PLEASE switch over to this or something better looking for "Seven Basic" or whatever.

    It’s much better for everyone.

    Thanks!

  42. Nidonocu says:

    An interesting (if quite wordy!) post.

    I’m curious to see if these ‘principles of design’ were inspired by J. Harris’ Office UI team and their ‘Design Tenets’ that produced Office 2007’s Ribbon.

    Office 2007 was possibly one of the best Microsoft products released to date and being able to duplicate that success would definitely do Windows good.

    Will be tuning in to the PDC webcasts to find out!

  43. steven_sinofsky says:

    @Nidonocu — I’m sure Jensen appreciate the notice 🙂  For every project we always start with a set of principles (or more than one).  It just depends on the project as to whether they are design focused, architecture focused, or some combination.  For example way way back when we were making the Microsoft Foundation Classes 1.0 we had key design/architecture principles: (1) If there is a Windows API then use it, (2) Do not duplicate Windows state, (3) We ship our source code, and (4) We’re building a C++ class library not a C++ compiler test suite [so don’t use every nifty new C++ language feature for kicks].  Well something like that—it has been a *long* time.

    So when we did Office 2007 we had principles as well 🙂

    @briantist and folks asking about the registry…We understand the challenges people see with the registry.  I don’t think I can do the whole topic justice in a comment though.  However, Raymond has touched on this many times in his blog and there is one thread in particular that I find helpful to look at when discussing the topic of registry v. text files v. database.  There’s lots of good content and comments and responses and so on… see http://blogs.msdn.com/oldnewthing/archive/2007/11/26/6523907.aspx.

    –Steven

  44. steven_sinofsky says:

    @d_e — Windows Vista had some of this type of feedback mechanism in the beta and today we pay close attention to telemetry we have spoken about and also to all the questions asked through the help system.  You often will see new articles written because of the volume of questions we receive on a topic.

    Stay tuned for the expansion of the tools we will have for beta testers to provide feedback on Windows 7.

    –Steven

  45. haijak says:

    3700 Words?! This is nuts guys. I also have to agree with bobharvey. Did anybody think of a post that describes an actual example of some feature. So that people know exactly what’s going on.

    I would suggest there be a Windows Dev blog. Not tied to any specific release. Just an ongoing blog about whatever the devs think people should know, or want to get direct "focus group" type feedback on. For more than a year after Vista’s release Microsoft refused to talk about what was next. That should never happen again. This blog should always be a place to go to see what is 6+ months down the line.

    All this "Welcome to the windows development process" while interesting from a conceptual level, is nothing really meaningful, or usefully transparent.

  46. WindowsFanboy says:

    I would really like to see a post about the different product editions of Windows.

    Here’s my idea for Windows 7 product editions:

    1. Scrap the Home Basic edition.

    2. Remaining product editions: Windows 7 Home Edition (sort of like Vista Home Premium), Windows 7 Small Business, Windows 7 Enterprise, Windows 7 Ultimate.

    3. Change the way features are distributed between editions. Previous Versions and Complete PC Backup are NOT business features only. They should be in ALL Windows 7 versions.

    I’ll have more thoughts when you make a post on this.

    Thanks and keep up the great work!

  47. Asesh says:

    Yup I agree with WindowsFanboy, just remove that Home Basic edition 🙂

  48. marcinw says:

    @Don Reba,

    I know, what is currently implemented in Windows (yes, I’m not only newbie user) – what are policies and solutions. And what I can see:

    majority of software leaves some entries in Registry after uninstalling. System contains more and more useless info, it’s going slower and slower. All applications can have access to settings from other one (yes, yes, I know, that it’s possible to limit it, but normally it’s not done). Let’s think, who is happy from it:

    1. antyvirus software creators

    2. virus & trojans creators

    3. creators of Registry cleaners

    Many antyvirus packages are asking user, if he agree for saving some data into this or other key. Normal users click "yes" without understading.

    In the same time main role of Registry (central database settings for all apps) is not visible anymore. See FireFox and other…

    Now let’s say, that something like proposed will be implement. Some parts of logical Registry will be still shared, but many will be separated. It will be easier to uninstall applications, system will not be slower after months from installation, etc. etc.

    Now let’s say, that you have d:install.exe. There is checked MD5 for it and there is created new virtual directory for it. install.exe and code from the same physical directory and physical directories below (for example from d:directory) are writing files to new virtual directory (not to real program files and windows directory). when install.exe is "installing" something, it’s put into virtual directory. when there are shortcuts created, they’re put after converting in real system. when you run later files from this virtual directory (for example from shortcut), they have access to virtual directory, not to real program files and windows directory. in other words:

    when you run install.exe

    there is created

    c:new program filesdirectory 1

    with

    c:new program filesdirectory 1program files

    c:new program filesdirectory 1windows

    when you run something for example from

    c:new program filesdirectory 1program files

    it can’t read files from

    c:new program filesdirectory 2

    Simple, effective, already available in 3rd party products. Big shame, that company with so many programmers can’t reimplement it (simply copy it, nothing more).

    I understand, that we’re going into politics. Microsoft needs success fast and nobody will agree with critic about solutions, which will be sold soon.

    But please think about it. Windows is changing from version to version and breaking some Registry cleaners or similar software will be small price for giving more real security.

    When system will have few clearly separated parts like:

    1. core

    2. runtime for various apps (MS-DOS, win32, .net, etc.)

    3. applications (using virtual directories like proposed earlier) like IE, WMP, etc.

    it will be easier to control, upgrade and extend it.

  49. domenico says:

    3 version PLS.

    1) WIndows 7 Clouds

    2) Windows 7 Ultimate   ( All PC+Multitouch+Umpc)

    3) Windows 7 for OLD PC and UMPC (no touch)

  50. marcinw says:

    few more words:

    when you run something for example from

    c:new program filesdirectory 1program files

    it thinks, that it’s run from real c:program files and thinks, that

    c:new program filesdirectory 1windows

    is system directory.

  51. Fredledingue says:

    Allthought it didn’t talk about concrete things like previous posts, I enjoyed reading these last two ones. What I read was much what I imagined and what I expected from Microsoft.

    To those who complain that this blog doesn’t address the real problems (of Vista), I’m sure that the w7 team has already undertaken fixing on these issues a long time ago.

    Things like "too many useless services/processes", "too much resources used/required", "noisy hard drive", "poor performance/efficiency", "mammouth hard drive footprint" etc

    These issues were too obvious to be ignored and to be not set as a TOP PRIORITY in the developement of w7. But there are things that eveybody knows for a year and nothing indicates that Steven and his colleagues doesn’t know about them yet.

    I personaly takes for granted that these issues will be fixed in w7. (If not nobody would understand why there is a new version at all.)

    Registry:: I don’t think that the registry is a bad idea, but it has been very badly used and mistreated for a very long time. Since its beginning it was full of bloat and that only worsened by the years. Microsoft started this bad habit followed by all the famous software vendors.

    It would be stupid to eliinate it but it should be used differently.

    Registry should be used only for settings which can be changed. It should keep only the settings which are identifiable and comprehensible by an advanced user. All invariable stuffs should be kept in hard coded libraries or separate datas files. It shouldn’t be used by softwares to store datas. It should be a config interface not a data base.

    Like with the Program File folder there should be one location where an application would be allowed to add and modify things. Applications should never be able to modify IE settings for example (except with admin/UAC aproval). Every newly installed program would be allocated one folder in Program Files and one registry key with a limited number of subkey. That discipline would already simplify a lot of things.

    There are too many softwares in circulation to allow everybody to write anything anywhere in the registry or on the HDD.

  52. d_e says:

    There are several misconceptions reoccuring over and over again:

    1. MinWin is just a stripped-down version of Windows. This became possible because MS modularized Windows. That means MinWin = regular windows kernel with less stuff around it (GUI, …). It’s not a new system. It’s the same kernel that powers Vista and Server 2008. Basically it’s Vista without bells and whistles.

    2. A "bloated" registry doesn’t slow down the system. If you don’t believe me just create random values all over the registry and benchmark your system again. The german computer magazine c’t did this some time ago with XP, 100’000 additional keys & values and there was no measurable performance impact. And since 2000 Windows does no longer map the whole registry into RAM – that means you don’t loose valuable resources on unnecessary keys.

    3. It’s not possible to create a perfectly secure system in practice. You’d need intelligent users as well, because they’re part of the sytem. And AFAIK MS doesn’t ship intelligent users with their operating systems. Like everyone else.

    4. Is not possible to uninstall an application perfectly when not every single application play by the rules. This has to do with dependencies between applications. I can think of several scenarios where any "solution" I can come up with fails. If you can’t have a look at the problems people have with package managers or when trying to uninstall OSX applications.

    5. Backwards compatibility doesn’t hurt performance (that much). A processor cycle here and there, but that’s it basically. The only reason why Microsoft would want to move Windows compatibility to a VM could be easier development and testing. But that’d be a huge undertaking – far more work than just adding some hacks for old misbehaving applications. And, above all, it’s just not necessary: Ever had a look at .NET? This is a great way to transition away from the (sometimes clumsy) Win API to something new & shiny.

  53. Vistaline says:

    /yet another post that’s entirely off-topic

    >>I would suggest there be a Windows Dev blog.

    For what purpose? Canibalizing Vista sales?

    >>Here’s my idea for Windows 7 product editions:

    Having two simply named and clearly defined versions, Home and Professional, was just fine back in the day. I’m not sure what possessed the people at Microsoft to ship the rediculous numbers of SKUs they did. That said, Microsoft probably doesn’t care for anyone else’s ideas in this department and I know I’m tired of hearing suggestions for editions. Let it die people, they probably got the message.

    >>Intresting, *link to softpedia article about W7 UI*

    There’s no reason to believe anything until it’s officially confirmed. If you’re the skeptical type, there’s no reason to believe the official confirmation until you’ve had hands on time with W7. Depending on where you go W7 is supposed to include a VM for appcompat and WinFS… and let’s not get into that. Honestly the word WinFS should never be spoken again. Ever.

    >>It is indeed ok. User settings are data and should not be removed on uninstallation.

    >>Why would you think otherwise?

    Some users might try reinstalling a program to undo a setting change they did (*gasp* I hid the menu bar in Word! :P) or just /maybe/ because they no longer want the application. I just hate the thought of applications leaving their junk on my computer. Ideally after uninstallation a program would leave no trace of itself on a user’s computer, not a single file, folder, or key. Uninstallation is just terrible on Windows with all the stuff that’s left behind. the other day I uninstalled a program that left 200MB of stuff in it’s directory. 200MB. Not even in user files, just 200MB of junk. It’s no wonder people say Windows bloats up over time, their just accumulating junk. This isn’t Microsoft’s fault though, you can’t necessarily blame them for what other companies do. TEMP folders may add to this but I don’t know what Vista’s policy on purging them is as I can’t help myself but run through those daily… sad, I know.

    >>I personaly takes for granted that these issues will be fixed in w7.

    >>(If not nobody would understand why there is a new version at all.)

    What’s to stop them from releasing without a good reason for a vast majority of end-users to upgrade? XP and Vista both ran into this issue and I fully expect W7 to run into it as well. It’ll launch and Microsoft will parade it around as the fastest, most secure, reliable, and easiest to use version of Windows yet, like always . It’s not entirely Microsoft’s fault, but XP, as well as Vista to an extent, is good enough to do most of what people want to do: browse the web and listen to music. That and Microsoft hasn’t included anything with new versions worth getting excited about in XP and Vista for end-users. Luckily for Microsoft, most people will just buy whatever is pre-installed on their PC.

    A small note: Despite what seems like Microsoft’s best efforts (performance AND usability regressions?) I’ve been using Vista for ten months and quite like it. Well, it’s been a long post with nothing positive to say… sorry.

    /even more offtopic:

    I moved my HDD SATA cord up one port yesterday and it seems Vista is creating duplicated thumbnails for the thumbnail cache, which grew 50% during use essentially overnight. Just thought I’d put it out there.

  54. Don Reba says:

    marcinw,

    > majority of software leaves some entries in Registry after uninstalling. System contains more and more useless info, it’s going slower and slower.

    There is no reason why the number of records in the registry should noticeably affect performance. In NTFS, B+ tree indices scale very well for large numbers of files.

    > All applications can have access to settings from other one (yes, yes, I know, that it’s possible to limit it, but normally it’s not done).

    Every application you run has full access to everything you have access to, whether the registry is used or not. Attempts to deny this create such monsters as UAC, which is probably accountable for the majority of problems with Vista.

    Vistaline,

    > Ideally after uninstallation a program would leave no trace of itself on a user’s computer, not a single file, folder, or key.

    You seem to suggest Word should delete all your documents if you uninstall it. User settings are like documents in several ways. For one, a person might carry his configuration files on a flash drive to use on different computers. For another, the person uninstalling the program is likely to not have access to other users’ settings.

  55. mariosalice says:

    Talking about the way Microsoft deals with features there are a few annoying things that are either difficult to catch or intentionally applied.

    For example, the way we see folders is strange and inconsistent.

    The directory tree in the registry either starts from desktop or from a drive or …

    This way there are more than one entries for the same folder, as in the Shell bagsMRU key (it only holds 400 entries).

    This reflects on the way we see folders and sniffing doesn’t do a good job either.

    To make things worse, the save pop up window changes from program to program and this changes the way we see folders, or corrupts it.

    One feature I miss form Vista is to restore corrupted system repository files. System restore, sfc /scannow or the Vista DVD can’t restore certain files.

    Another annoying feature is the way some programs force their presence even if we don’t want them. For example, it is hard to disable the defender and it’s updates in case we have another antivirus.

    Then the Snipping tool goes along with the tablet PC functionality and so on.

    Finally it’s a matter of trust.

  56. snaven says:

    There is a this that I really miss about Vista. In XP, only the window that you are working with is lighten up, not all the other winows in the background. In Vista it`s hard to see whitch window you are working with. Also WMP are covering the whole window (exept for a 1mm) and when I am going to exit it, I hit the window in the background.

  57. marcinw says:

    @Don Reba, d_e and Fredledingue,

    I don’t blame Microsoft for all problems with WIndows platform. But I know, that good system should not allow for wrong application behaviors. Separating applications and their Registries (like proposed) will resolve thousands of current problems and it will not make system more difficult for users.

    Let me remind issue of SMB too. Many people were complaining about performance issues (in some cases it was used 2 – 3% of bandwidth !), everything was OK for Microsoft. We have not too popular Vista and voila ! There is new SMB version, which works up to 45 times faster.

    I don’t know details of tests showing, that adding 100 MB don’t decrease performance. But for me as programmer it’s impossible, that such operation done on keys often searched will not change performance – it’s physically impossible.

    I know, that more and more programs are using own Registry replacements. Second: another Registry role (saving settings and info about currently installed applications) is not actual too. Why do stay with it "like is" ?

    And once again: removing application should remove it and of course not documents created with it (like some of you suggested). Nobody was speaking about different behaviour…

  58. marcinw says:

    @Don Reba, d_e and Fredledingue,

    I don’t blame Microsoft for all problems with WIndows platform. But I know, that good system should not allow for wrong application behaviors. Separating applications and their Registries (like proposed) will resolve thousands of current problems and it will not make system more difficult for users.

    Let me remind issue of SMB too. Many people were complaining about performance issues (in some cases there was used 2 – 3% of bandwidth !), everything was OK for Microsoft. We have not too popular Vista and voila ! There is new SMB version, which works up to 45 times faster.

    I don’t know details of tests showing, that adding 100 MB doesn’t decrease performance. But for me as programmer it’s impossible, that such operation done on keys often searched will not change performance – it’s physically impossible.

    I know, that more and more programs are using own Registry replacements. Second: another Registry role (saving settings and info about currently installed applications) is not actual too. Why do stay with it "like is" ?

    And once again: removing application should remove it and of course not documents created with it (like some of you suggested). Nobody was speaking about different behavior…

  59. Mick.Lang says:

    The real process…

    Pick the question or get an idea

    Gather information and data

    Hypothesize

    Experiment

    Interpret and Validate

    Choose

    Send it off to 2nd/3rd world country to be implemented

    Test

    Interpret and Validate

    !!?*?*!!

    Experiment

    Chop features

    Re-Implement

    Apply Marketing Spin

    A software development process is only as good as its weakest link.  Design doesn’t matter when it gets ignored or is misunderstood by those implementing it.  

    Sadly the quality of the products released by Microsoft peaked in about 2003.  I’d suggest looking back to how you structured things before then and compare that to what you’re doing now.

  60. Eghost says:

    When Microsoft decided to add Julie Larson-Green and many others from office 2007 to the Windows 7 development team.  Microsoft had made up it mind where it was going with the UI.  In the beta’s of office 2007 quite a few users asked for a compatibility mode, and they were just ignored. Same as the complaints in the betas of Vista, IE 7 and even now in the Beta of IE 8 a good deal of people are complaining about the lack of a compatibility mode and they are still being ignored.  Most people have just given up, over the last several years Microsoft has just refused to acknowledge any comments negative about the UI. Basically Microsoft has a real problem when people don’t like the new UI features or those who want a compatibility mode.  Most of my statements have been blocked by the moderator, I don’t curse or use vulgar language, but I do express my animosity towards the forced UI changes. There should be a compatibility mode, not just in Windows 7 but also in Office 2007, and IE 8 will there be, more than likely not, Microsoft has made up it’s mind, if you had not. Most of the Office 2007 entourage would not have been brought aboard. I’ve read just as many poor reviews and complaints about the new UI as I have read favorable ones for Office 2007. what is the ending outcome of all this, Microsoft still continues to ignore the issues, ignoring the issues dose not make them go away, but Microsoft dose not have to acknowledge them, It’s just a wall that we have lived with since the beta’s of Vista, and it’s getting higher every day…

  61. wtroost says:

    Worst post so far.  I made it till this sentence:

    "The key thing is that we apply a full range of skills to develop a feature while making sure that ownership is clear and end-to-end design is clear."

    Sounds like material for Scott Adams’ new book.

  62. noviembreestudio says:

    We are a design studio, working in product, graphic, interior design, etc. We only want to say shut up. Let the people write, make it interesting, don´t show your cards. Apple is not editing a blog, they don´t need it, others do.  The has the key, don´t shell why, shell because. Don´t shell windows, shell wrapping.

    Make it with passion, but in silence.

    good luck

  63. chriswong says:

    I just wanna say that nixing the Windows Sidebar is a bad idea.  We still need a place to dock gadgets regardless of whether or not we set the Sidebar to display on top of other windows.  I haven’t seen the betas of Windows 7 yet, but it just seems kind of silly to have random gadgets sprawled out on the desktop.  If you’re going to really nix the Sidebar, at least give us an option to arrange them like regular desktop icons…

  64. JKJK says:

    Please!

    Another windows verison with a non-minimizable soundmixer?

  65. cirurgia plastica says:

    first thing to say: I enjoy reading this blog. So thanks for it!

    Although I’m using Vista for over a Year now, and I’m very pleased with it, there are some things I’d like to see in Win7.

    The first thing is from a developers view: Windows has got a lot of powerfull APIs, but as a .Net Developer a lot of them are not easy to use: there are no managed APIs for them. I hope, as the .Net Framework evolves, it will include more and more APIs, so the need of doing dll imports will slowly fade away.

    As a developer, I think the .Net Framework is important for Windows as a platform.

    Another thing is that I’d like to see Windows using more WPF. When I see videos of some Longhorn Builds, I get "knocked of my socks" by the effects. Some of them are really great, for example in the explorer. It would be great if some of them return in Windows 7.

    But there’s always a balance to make between "eye candy" and performance. I wonder wether the animations / wpf-based explorer was cut off because of performance issues.

    Performance improvements should be a big issue for ALL new Windows Versions. I don’t think Windows itself is using too much performance, it’s more about offering better performance for applications (by better scheduling, and so on).

  66. Rabeeh Abla says:

    With the increase of RAM size, one can get a system that supports big number RAM with 25 GB, 80 GB and more…

    Do we need to have a page file with a system having 25 GB of RAM or more ? How can we eliminate page file IO reads and writes ?

    The question is, why not put the whole virtual memory (page file) in RAM when the system starts, and eliminate all IO, the virtual memory will be updated in memory.

    And dump or synchronize with the page file at times the system is idle, or when the system is shutting down…

    Such option should be available to configure in windows…

    If the system RAM is full, the system should then shift to use virtual memory from hard disk..