Gap analysis explores the differences between your software requirements and the as-is features of an off-the-shelf product such as Microsoft Dynamics 365. It is one of the most useful techniques in a customer relationship management implementation.

Determining software requirements is a challenging process, and requires guidance and facilitation to help end user identify their needs and priorities.  If you start virtually with a blank sheet of paper, as is typical in custom software development, it is hard to know where to begin.  Users can easily go astray in coming up with software requirements.

Gap analysis starts with a working system, and focuses on the changes that are necessary to make the system meet the functional and performance goals of users.  For instance, here are some gaps that we explore in implementing a sales force management solution with Microsoft Dynamics 365:

  1. Look at the account form.  Analyze each field and determine whether you track this information.  Are there missing fields?  For each missing field, determine its attributes such as field type and whether it is required.   
  2. Review the opportunities view.  How many views do you need?  Are any of the off-the-shelf views unnecessary?  Is the order of the fields optimal for your users?  What is the best sort order for the records in the view. 
  3. Check for fields to hide and missing fields in the opportunity form.  Would users benefit from having more than one form, such as a quick overview which shows only a few fields. 
  4. How many business processes do you have for an opportunity?  Do you use different processes for different types of opportunities?  For each business process, describe the steps and which data elements are related to the workflow.
  5. Do you need notifications for changes to the data?  Who should be alerted when a new opportunity is created, or when an opportunity is closed as a win or a loss?
The process of gap analysis provides hands-on experience with the system to all users who participate, and is a precursor to formal training.  It helps users see quick, tangible improvement to their system and understand the implications of changes to the data model, business processes, views, forms and other objects that make up a software solution.