Delivering an Extensible CRM Solution Using Agile Development

Technical Case Study

Published: January 2013

The following content may no longer reflect Microsoft's current position or infrastructure. This content should be viewed as reference documentation only, to inform IT business decisions within your own company or organization.

Microsoft Information Technology (MSIT) worked with the Microsoft Sales, Marketing and Services Group (SMSG) to rapidly develop and deliver Small and Medium Business for Dynamics CRM (SMB‑CRM), a new management application for sales leads. SMB‑CRM was available to all U.S. sales users within six weeks. The application, which is used internally at Microsoft, collects and manages incoming leads from SMB accounts, and routes the leads to telesales call centers. The leads pertain to Microsoft cloud offerings‒products and services that use applications and services that are accessed over the internet.




Products & Technologies

Microsoft SMSG needed a solution for lead management in the area of SMB cloud product and services sales, and they needed it to be available as quickly as possible.

MSIT used agile development methodology to develop a Microsoft Dynamics CRM application with minimal customization that routes SMB leads to various US and global call centers, and from there to a central sales CRM application. The solution was available in the US within six weeks, and globally within six more weeks.

  • Rapid delivery of SMB-focused CRM for cloud product customers
  • Automated workflows, communication templates, role-based user experience and field level security
  • Successful proof of concept for rapid development of CRM solutions
  • Microsoft Dynamics CRM 2011
  • Microsoft SQL Server 2008 R2

This document describes SMB‑CRM, a new management application for sales leads. MSIT quickly developed and implemented this application using Microsoft Dynamics® CRM and agile development practices, a software development method based on iterative and incremental releases using a cross-functional team. The document includes the following areas:

  • An overview of the lead management workflow at Microsoft.
  • A description of the business challenges that led to developing SMB CRM.
  • A description of the solution design and development approach.
  • A description of agile development techniques that were applied for this project.
  • A summary of the project's results and lessons learned.


Like most large companies, Microsoft uses a customer life cycle management model when marketing its software to customers. There are many components and variations to this model, but the model generally follows the flow from generating demand to closing a sale for each customer. Each potential sale is considered a lead, and after a lead has been through triage (closer consideration) by sales personnel, and assisted triage (follow-up with the customer by a tele sales call center), the lead can become an opportunity—a likely sale.

Figure 1. Example of a partial customer life cycle management model used by SMSG

Figure 1. Example of a partial customer life cycle management model used by SMSG

The early stage of lead triage is called lead qualification, where various checks are performed to determine whether the lead is viable and should be pursued.

As part of its sales process, SMSG uses multiple methods for managing leads. Larger business customers often have a Microsoft sales representative who maintains their relationship and manages leads personally, based on the customer's expressed needs. Smaller businesses, however, whose business with Microsoft is managed by the SMB division within SMSG, lack this relationship with a dedicated sales representative. Therefore, to manage those leads, SMB relies on other methods. Specifically, when an SMB customer indicates their interest in a product, the lead is routed to a tele sales call center as part of SMSG's customized CRM implementation, SMB‑CRM. If the customer has an Enterprise Agreement (EA) in place with Microsoft, the customer is identified as a managed account and routed automatically to the SMSG direct sales tool, Global Sales Experience (GSX).

Figure 2. SMB lead workflow

Figure 2. SMB lead workflow

The way SMB uses CRM software to route leads differs by sales territory. In the United States, which has only one call center, the CRM solution manages leads all the way to the point where they are closed as sales. Outside the United States, SMB uses five call centers, and the CRM solution delivers the lead to GSX as soon as it becomes an opportunity.

SMB Business Challenges with Cloud Offerings

In addition to CRM requirements by sales territory and the need to replace personal sales representation with a callback process, SMSG faces unique challenges when marketing and selling cloud products and services to SMB customers. Historically, the go-to-market strategies for SMB had focused on selling on-premise software, and had not been optimized for cloud offerings. This led to the risk of Microsoft lagging behind its market competition for cloud technologies, both in business innovation and time-to-market for cloud offerings. The historic sales model also lacked key capabilities that SMSG needed in order to succeed: integration with digital marketing solutions, and diverse sales models for direct, syndicated, and prepaid distribution. Further, the IT infrastructure for an SMB go-to-market strategy for cloud offerings did not adequately support SMSG's billing, provisioning, business analytics, and business intelligence (BI) requirements.

Starting in Microsoft fiscal calendar 2012 (FY12), business groups at Microsoft became accountable for using digital marketing tools to increase marketing and demand generation for their products (see Figure 1). Within SMSG, the SMB segment then took responsibility for converting leads into sales by connecting SMB customers to tele sales call centers, Microsoft partners, and ongoing customer life cycle management practices.

In the case of cloud product marketing, because of the rapid rate of change in the current cloud-based technology market, SMB's rate of success would rely heavily on having an efficient and more precise way of managing incoming leads from the business groups, and it needed a technology to help them with this as quickly as possible. SMB approached MSIT with a request to develop a technology strategy that met the following goals:

  • Deliver marketing and sales workflow to enable critical stages of customer life cycle management for SMB cloud product marketing: demand generation, triage, assisted triage, ongoing CRM, and BI.
  • Centralize and standardize assisted triage and CRM processes for SMB cloud offering leads.
  • Support the successful launch of important upcoming SMB marketing campaigns (Microsoft Dynamics CRM Online, Windows InTune™, and Microsoft® Office 365).
  • Improve and optimize the go-to-market strategy for SMB cloud product marketing overall.

The new solution needed to offer SMB and its customers a high quality engagement experience where customers were connected in a timely way to the right resources that directly supported their purchase decisions. This experience, if implemented quickly and properly, would drive better rates of conversion from leads to sales for SMB cloud products, improve SMSG retention of its customers, and promote future sales to those customers over time.


SMB‑CRM is a customized implementation of Microsoft Dynamics CRM that also provides an integration framework to support related systems in the lead management workflow, including databases for Enterprise Planning (EP), which is the marketing campaign system of record; Global Marketing Operations (GMO); and Honoring Customer Permissions (HCP), which contains contact preferences. In SMB‑CRM, leads are retrieved three times per day from the MSIT Worldwide Lead Management (WWLM) data store, processed by SMB‑CRM's Microsoft Dynamics CRM instance where the leads are routed to call centers according to business logic and sales territory–specific workflow (see Figure 3).

Figure 3. SMB‑CRM high-level data flow architecture

Figure 3. SMB‑CRM high-level data flow architecture

Working from the diverse requirements for US and global sales territories, MSIT delivered SMB‑CRM in two initial phases:

  • Phase 1 (weeks 1 through 6): Provided support for US sales business users
    • WWLM integration
    • Lead qualification criteria and process implementation
    • Lead routing to a single tele sales call center
    • Opportunity management (tracking the customer to time of sale) within SMB CRM
  • Phase 2 (weeks 7 through 12): Provided support for global sales business users
    • Lead routing to multiple tele sales call centers
    • Opportunity management via GSX integration
    • Multi-language support (twenty languages localized)

Both of the first two phases were delivered in the first twelve weeks of the project. Additional phases were delivered in similar six-week phases. To meet these short time frames, SMB‑CRM was implemented using the tenets of agile development. Details about this process are described in the Implementation section of this document.

Partial Customization

Microsoft Dynamics CRM offers built-in functionality for managing CRM entities and workflow. It also offers usability and administrative features to facilitate management of these entities and easy reporting of data. The SMB‑CRM development team used a hybrid approach to designing the custom solution required by SMB, using mostly built-in functionality that could be configured for SMB's needs, and then performing custom development in the remaining areas of the solution.

The following built-in Microsoft Dynamics CRM features were used for meeting SMB‑CRM's requirements:

  • Queues - The solution uses this feature to route leads from the call center to each call center's queue where tele sales representatives monitor their call center queue for new leads to work on.
  • Teams - This feature is used to assign newly loaded leads to call centers. A call center team initially assigns leads; tele sales representatives are added to the call center team so they can view the leads and assign the leads to themselves.
  • Role-based entity forms - This feature is used to support a different user experience for tele sales representatives who work in the various call centers.
  • Workflows - This feature is used to automate several system level processes.
  • Email templates - This feature is used to store localized email communication for partners and end customers.
  • System Entities - The solution uses modified versions of Lead, Account, Contact, Opportunity and several other system entities to support the SMB sales motion.
  • Security Roles - This feature is used to provide the tele sales representative visibility and capability requirements within the system.
  • Reports - The solution generates custom system-level reports using the Dynamics CRM Reporting feature.
  • Dashboards - This feature is used to create a landing page for tele sales representatives and tele sales managers. The dashboards include an aggregated view of the system for tele sales representatives and managers to evaluate their performance and workload.
  • Charts - This feature is used to illustrate performance, workload and conversion rates. Charts are mainly used on the dashboards.
  • System Views - This feature is used to create several custom system-level views to help eliminate the need for additional clicks when looking for and grouping data.
  • Field Level Security - This feature is used to enable and disable particular fields on forms based on a user's security role and team membership.
  • Data Import - This feature is used to bulk-load taxonomy data before the integration framework was developed.

The following custom components were developed:

  • Custom entities - For the solution, MSIT created custom entities to support dynamic business rules, such as the Country to Call Center routing matrix.
  • Custom Microsoft SQL Server® Reporting Services (SSRS) reports - MSIT created SQL Server 2008 SSRS reports to support reporting requirements that were not capable within the Microsoft Dynamics CRM built-in reporting feature.
  • Custom SQL Server Integration Services (SSIS) packages - MSIT created SQL Server 2008 SSIS Packages to support the integration framework.
  • HTML, JavaScript web resources - MSIT created HTML components to reduce clicks for complex business processes.
  • Ribbon buttons - MSIT created role-based custom ribbon buttons to initiate custom HTML components.
  • Plug-ins - MSIT created plug-ins to support the solution's integration framework.
  • SQL objects (scripts, jobs, and stored procedures) - MSIT created SQL Server 2008 objects to support an integration¬ staging database.
  • Windows Services - MSIT created several Windows® operating system services to support the integration framework.


SMB‑CRM was implemented using Scrum. Scrum is an agile software development methodology that focuses on iterative development in short cycles, with an intense focus on daily issue resolution and the coordination of focused development resources. Using Scrum, members of a cross-functional team participated in 2-week sprints (compressed development cycles) to accomplish the carefully selected sprint backlog (work list) of requirements that they knew they could implement in that amount of time. Brief, informal daily engineering meetings provided visibility to project managers and product owners into the progress of the previous 24 hours, the plan for the next 24 hours, and any blocking issues the engineering team was facing. To address blocking issues, project managers and product owners engaged appropriate resources so that engineering could proceed on schedule.

Managing a Scrum project required the regular use of tools and project controls that are specialized for agile development. For the SMB‑CRM project, these included the following:

  • Business requirements prioritization and ranking lists
  • Detailed sprint planning based on user stories
  • Brief daily meetings where all team members reported their progress, blocking issues, and work plans for the day
  • Microsoft Visual Studio tools for tracking progress on each requirement and task
  • Release plan, operations and support model, and training readiness
  • Program-level and project-level communication plans, budget tracking, and status reports
  • User acceptance testing (UAT) triage and go/no go tollgate (decision point)

Using Scrum with the SMB‑CRM project enabled MSIT to achieve a high degree of efficiency via the work-sharing principles and knowledge-sharing principles that are inherent in agile development philosophy. For example, between sprints, the MSIT developers rotated their area of focus: if for one sprint Developer A worked on Lead Routing while Developer B worked on GSX integration, then during the next sprint they would switch feature areas with each other. In this way, all developers on the team stayed current with the solution design as a whole, and if any developer left the project, another developer could readily pick up the work. This same rotation practice was also applied during the testing cycles of the SMB‑CRM project. In a similar way, the duty of running the brief daily meetings rotated among all project managers and leads, making it easy for a Scrum leader to leave the project if needed and another leader to take his or her place.

By the end of twelve weeks, the core requirements of the project were satisfied, and SMB was using the new tool both in US and worldwide (see Table 1). Following the release of Phase 2, development continued in six-week increments, as new requirements were gathered, prioritized, developed and implemented using the same Scrum process.

Table 1. SMB‑CRM Vital Statistics for Phases 1 and 2


Phase 1

Phase 2

Start Date



Functionality Delivered

Lead Assignment

Lead Qualification

Partner Attach

Opportunity Conversion

Lead Assignment

Lead Qualification

Partner Attach

Opportunity Management


US call center

4 additional call centers

Impacted Users

Primary (10 total):
Tele sales agents and managers

Business Decision Makers
CRM Support - Cloud Offerings

Primary (45 total):
Tele sales agents and coordinators

SMB Leads and managers
Partner Account Managers
CRM support - Cloud Offerings

Training Date

End users:

2 September

End users:
8 September

Go-Live Date




SMB‑CRM is expected to help Microsoft achieve its goal of having cloud products and services account for 50 percent ($3 billion US) of SMB sales growth over the next three years. In addition, SMB‑CRM provides a reusable model for agile development of additional CRM solutions elsewhere for Microsoft and its partners. Microsoft Dynamics CRM played a key role in achieving these benefits, including its extensible architecture, configurable user experiences, and ease of integration with external systems.

SMB‑CRM provided the following benefits to SMB:

  • Rapid delivery of SMB-focused CRM for cloud product customers
  • Transition from a quarterly release model to the iterative delivery of seven feature releases in one year
  • Customized CRM dashboard for viewing leads, contacts, accounts, and opportunities
  • Automated workflows, product-specific communication templates, customized sales cycle role-based permissions
  • Diverse user experiences per sales territory requirements (supports different data workflows for US and global offices)

Meanwhile, MSIT also derived the following benefits:

  • Improved organizational effectiveness via agile development techniques
  • Rapid time-to-field of a CRM solution via semi-customized implementation
  • Successful blueprint for future rapid response MSIT projects
  • CRM adoption growth and confidence across the company

Lessons Learned

Because SMB‑CRM was one of the first applications of Scrum methodology to an enterprise CRM project, its participants were careful to document their experience with the project for future learning and for offering advice to others. Table 2 describes lessons learned by the SMB‑CRM team.

Table 2. SMB‑CRM Lessons Learned


Path Taken

Advice to Others

Short timeframe with fluid requirements

Used agile (Scrum) methodology

Co-located resources in a single location

Identify a Scrum master for your project

Reserve a Scrum room for the duration of your project

Schedule a  regular "scrum of scrums" meeting with integrated programs

Requirements and business priorities changed during development sprints

Implemented a release plan to communicate key business deliverables milestone and sign-off milestone

Presented user experience reviews/prototypes at the end of each sprint for validation

Designate one product owner for each release, to reduce confusion

Require that business process flows are created and approved prior to writing user stories

IT Life cycle (ITLC) templates do not fit with agile methodology

Utilized the software development life cycle RACI workbook, but identified several required deliverables that do not align with agile methodology.

Work with the ITLC team on modifying the templates for agile methodology.

Setting arbitrary delivery dates vs. identifying key scope items to be delivered and setting the appropriate timeline

Delayed the worldwide release to complete necessary feature implementation and testing

Created a release plan that mixed schedule-driven incremental releases with scope-driven large releases

Gain agreement on a constraint model at the beginning of the project

Clearly articulate criteria for each type of release

Coordinating Scrum schedule with external teams

Scheduled regular "scrum of scrums" meetings

Set expectations with all teams involved ahead of sprint execution

Short ramp-up time and adjustment time for new resources

Assigned a mentor to each new resource on the team

Made rapid adjustments when the mentor assignments were not a good fit

Take charge of the interview and screening process for new team candidates

Ensure all new resources follow the working agreement

For More Information

For more information about Microsoft products or services, call the Microsoft Sales Information Center at (800) 426-9400. In Canada, call the Microsoft Canada Order Centre at (800) 933-4750. Outside the 50 United States and Canada, please contact your local Microsoft subsidiary. To access information via the World Wide Web, go to:


© 2012 Microsoft Corporation. All rights reserved.

This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY. Microsoft, Dynamics CRM, SQL Server, Windows, and Windows Server are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. The names of actual companies and products mentioned herein may be the trademarks of their respective owners.