Measure Twice Cut Once

by breeve 10. November 2009 16:40

Ever wonder what is going on behind the scenes when you install a Microsoft product and it asks: "Do you want to help make Microsoft products better?" I don’t check that option but apparently a lot of people do.

That checkbox allows Microsoft to gather user statistics on how you use the software. Everything from where you click to what features you use to what keys you press. The data is sent back to Microsoft in a user anonymous way and digested by the giant.

The data helps Microsoft learn how customers use the software.  In the brilliant presentation “The Story of the Ribbon” given during Microsoft’s MIX conference, we get a glimpse into how the data is used. During one part of the presentation, a slide displays all the features in Microsoft Word—collected by 3 billion user sessions—and ranked according to use. What they found is most people use only a small fraction of the features. In fact, a lot of features have been used only once and some not at all.

The most used features are what you might expect like copy, past, save, undo, bold, underline, and font size. What is shocking is how fast the feature use falls after those. Ever heard of the feature: “Change shape to lightning bolt”. This was clicked only once, undoubtedly, by some poor soul lost in the maze of menus.

Who is to blame for all these unused features ideas? The answer is not entirely clear as there seems to be some finger pointing. Program Managers typically have the role of proposing new features and in a field of work where a career gets a boost from a well thought out feature, the stakes are high. Unfortunately, most of the feature ideas are little more than gut instinct and turn out to be lemons.

Software engineers, whether they admit it or not, are not innocent bystanders. The thing with engineers is they are smart and they know it. They like to dream up scenarios in their heads all day about how a user is typing into Microsoft Word, somewhere in the world, and has an image that they want to copy into their document exactly 100 times and how frustrating that must be. So they purpose a copy image 100 times feature to their boss. Meeting after meeting ensues until everyone becomes convinced this is a huge usability issue. The feature is implemented and the software engineer gets a great deal of satisfaction knowing the nagging issue is put to rest.

Letting futile features slip into a product can lead to the real possibility of losing touch with customers’ needs. Adding to the fire, once a feature is implemented, the battle internally over the features usefulness is over. We just assume the feature is being used and adding value. So more features are added and added—engineers say recursively—until the program becomes so bloated with features that users don’t know how to use the program anymore and the engineers can’t make simple changes without breaking all the existing features so everyone is complaining and eventually the engineers want to rewrite the product from scratch because then it would be simpler like it was before all those features were added.

The ugly reality is almost all programs follow this lifecycle pattern. What makes the “Story of the Ribbon” presentation so fascinating is that Microsoft noticed this pattern with the Office products and took a step back to look at what features were actually being used by real live paying customers. This of course led to the famous ribbon interface by making heavily used features more prevalent and most importantly removing hardly used ones.



Powered by BlogEngine.NET
Theme by Mads Kristensen

About Me

I am a Principal Engineer with 16 years experience developing and releasing software products. I started developing in C/C++ then moved into .NET and C#. Currently working in Python/Flask and Docker. Have tech lead multiple projects. I have developed products in Windows Forms, ASP.NET/MVC, Silverlight, WPF, and Python. I currently reside in Austin, Texas.

Own Projects

Pickaxe - An easy to use web page scraper. If you know a little SQL and how basic CSS selectors work, no web scraping product will be easier to use.


FligthQuery - Query FlightAware FlightXml API with SQL


Created ASP.NET MVC forum originally targeting home owner associations but now in use by an investor group.

Currently Reading