One of the things I like most about Microsoft's approach to software engineering is the company's focus on making data-driven decisions.

For an example, take a look at the Office 2007 Ribbon. Love it or hate it, the Ribbon came about because we told Microsoft that's what we wanted through the Customer Experience Improvement Program. CEIP lets you choose to send usage data to Microsoft so the developers can get anonymous information about how their programs are being used. In the case of Office, CEIP data indicated exactly which commands were most often used, which were least used, and what order people tended to prefer for sequences of multiple commands. The Office team used the CEIP data to design the Ribbon, moving frequently used commands and sequences right out front where it would be easier to find them.

CEIP isn't the same as Windows Error Reporting (WER), which was formerly known as Dr. Watson. WER's job is to report to Microsoft any errors in Windows components, drivers, and third-party applications so they can be analyzed for trends. CEIP, by contrast, gathers usage and configuration information at regular intervals, not just when there's a problem. There's a good blog entry, "Connecting with Customers via Windows Error Reporting (Watson) and CEIP," that describes the differences between WER and CEIP in more detail.

Microsoft Exchange Server can gather CEIP data, and the Exchange component teams are making a big push to get more CEIP data in their hands so they can get more insight into how people are using Exchange. The goal: Use the CEIP data to improve customer experience and drive planning for the next version of Exchange by gathering data in several high-impact areas. Microsoft's David Espinoza gave me some examples of the data items CEIP could potentially gather:

  • How many users have turned on SMS notification?
  • How many NDRs are generated, and for what reasons?
  • How much latency exists between the time a user sends an SMS message and the time the phone picks it up from the Outbox?
  • What are the most frequently observed cmdlet errors?
  • What Exchange server roles are the most often installed in virtualized (VMware, Hyper-V) environments?

As you can see, none of these issues are particularly sensitive (or even that interesting) for a particular site. However, in the aggregate, data items such as these give Microsoft a great deal of insight into what features customers are using, how well they're working, and where they could be improved. One of the lesser-known changes coming our way in Exchange 2010 SP1 is an expanded set of data collected for CEIP. To help get the most from this change, Microsoft is asking everyone currently running Exchange 2007 or Exchange 2010 to turn on CEIP, so I thought I'd help spread the word.

CEIP does come with some unfortunate baggage; many people understandably fear that software companies such as Microsoft will spy on them at the slightest opportunity. Witness all the FUD surrounding discussions of Windows activation, or the “Windows phone home” process, and you’ll see what I mean. For that reason, Microsoft leaves CEIP off by default. You can choose to enable it when installing Exchange, but it’s often left off by administrators who don’t understand what its purpose is.

The simplest way to enable CEIP is through the Exchange Management Console (EMC): Select the Microsoft Exchange On-Premises node, then pick the Customer Feedback Options item. As you can see in the figure below, this method lets you select which servers you want to collect CEIP data from.

Enabling CEIP through Exchange Management Console (EMC)
Enabling CEIP through Exchange Management Console (EMC)


You can accomplish the same thing using Exchange Management Shell (EMS) by using the following command:

Set-OrganizationConfig -CustomerFeedbackEnabled:$true

However, after doing so you must also use

Set-ExchangeServer -CustomerFeedbackEnabled:$true

to cause individual servers to collect and send in CEIP data. Otherwise, you'll have enabled CEIP but no data will actually be gathered.

CEIP data is extremely valuable in helping Microsoft plan and execute future versions of Exchange, so I encourage you to enable it on all your servers.