Eating our own dog food


My name is Kenneth Stoner, I am a Software Design Engineer working for the Microsoft CRM Test Team. I have been testing software for Microsoft since 1999. When I am not testing software, I enjoy learning how to ride my 18 hand Belgian Palomino named Korey. I live east of the Redmond Campus, in the foothills of the Cascade Mountains.

In my experience, one of the most important things that I do to ensure that MSCRM works well is to use it as often as I can. This might seem to be problematic since I am not usually in a position where I need to contact customers, make sales calls, interact with marketing, or pretty much anything else that MSCRM makes so easy. The answer to this dilemma is pretty cool, really; the Microsoft CRM Team uses it’s own product to help it manage our production schedules, resource allocation and quality control processes. We call it “eating our own dog food”, after the famous quote from the makers of “Dog Chow”.

The thing that makes this possible is that MSCRM has been built from the ground up to be as extensible as possible. Under the covers, MSCRM is really an application platform that is highly customizable. What this means is that it is capable of modeling a very large variety of business processes, not just the traditional processes involved with Customer Relationship Management.

For instance, our product planners use MSCRM to keep track of their feature specifications and product delivery schedules. The development team uses MSCRM to allocate and manage the resources that will be needed in order to accomplish each feature. The test team uses MSCRM in order to plan and keep track of the testing that will be performed on each feature. These tasks are accomplished by the judicious use of MSCRM Custom Entities which describe the various documents and processes our team uses.

Software testers, like me, use two custom entities in particular: The “Testable Unit” and the “Test Suite”. In a nutshell, a testable unit is a small group of work items that can be delivered and tested by itself. A test suite consists of a group of test cases that document the test cases that are planned for a particular area. When I need to see when a particular piece of code will become available to me for testing, all I need to do is open that TU in “dog food” (the name of our team’s MSCRM server) and check it out since the developers for each TU are responsible for updating their TU’s whenever their status changes.

Once a TU has been handed off to me for testing, I am likewise responsible for ensure that I update the status of my test suites accordingly. One of the ways I accomplish this is by simply logging the results of the test-cases run in our teams Test Case Management system. The results for each test case are automatically aggregated and uploaded to the teams MSCRM database every couple of hours, so the status of each test suite remains fairly fresh and accurate without much work on my part. This ability to automatically import data from other sources besides MSCRM is a very nice and makes a lot of my daily reporting tasks a breeze to accomplish.

I would like to point out that what our team has accomplished with MSCRM is not magic or rocket science. The ability to customize MSCRM to other business processes besides Customer Relationship Management is available to almost any customer that is willing to try. For instance, I can envision an IT department using CRM to manage and administer it’s Help Desk ticketing system, and a Customer Service team could use MSCRM to help it manage it’s customer return orders. It could be used for Facilities management and capital inventory tracking or even document control and process management functions such as those commonly used by companies certified by ISO-9000 and other standards bodies.

The moral of this story is that if you are thinking about buying a custom software package to accomplish some of these other non-CRM type business processes, you might consider whether or not you can leverage your existing investment in Microsoft CRM maximize your ROI and simplify your IT infrastructure and maintenance.

If you would like to know more about customizing Microsoft CRM, check out our online Microsoft Dynamics CRM 3.0 software developer kit (SDK).

Kenneth Stoner

Skip to main content