“With Great Power Comes Great Responsibility”
Microsoft Dynamics CRM is, in my view, the best application for managing customers and customer relationships. What makes it so powerful is that it can be easily customised and developed to meet the unique needs of every business. As a software developer it is the extensibility of Microsoft Dynamics CRM that really sets it apart from others and this is the main reason why Bridgeall selected Dynamics to work with.
However…. all that power, customisation, extensibility and all round flexibleness does introduce a few potential headaches. In this blog post we’ll set out the top 5 most common issues we’ve seen with Microsoft Dynamics CRM and explain how Bridgeall has addressed and solved these problems.
1. Inconsistent approach to solving similar issues
The flexibility of Dynamics CRM often means there is more than one way to solve any problems. We’ve seen some of our customers have two or three different implementations of essentially the same functionality. This is normally caused by developers having differing opinions or discovering new ways of doing things. From a maintainability point of view this leads to increased costs and lead time, and a single change to functionality can result in multiple changes to code and customisations.
Bridgeall’s extensive experience in IT software development plays a key role here, as we have developed rigorous processes to ensure we address all CRM developments in a consistent manner. Our internal standards and close team working result in consistent solutions being developed for all issues of a similar nature. If this is something you would like to achieve internally, then you need to think about putting standards and practises in place to ensure consistency. Bridgeall use code reviews, internal factory acceptance testing, having technical architects responsible for delivery of solutions, and our ISO9001 processes to ensure we are delivering consistency across an application or CRM installation.
2. Management of Solutions both internal and external
Solutions are Microsoft Dynamics CRM’s way of managing customisations, allowing export of those customisations in Managed or Unmanaged Solutions. It’s an invaluable feature if you want multiple environments for development, user acceptance testing and production.
There are a lot of blogs, forums posts and articles online about how to manage these solutions, both solutions you’ve developed yourself and solutions you’re importing from other locations. The official Microsoft articles suggest the layering of solutions and the managed vs unmanaged debate is very straightforward and as long as you follow set rules you’ll be ok.
When you actually start to use Dynamics CRM in anger, it turns out not to be so simple. The analogy of managed solutions like DLLs only go so far, and quickly introduces problems if you try to treat them as such.
Bridgeall adhere to clear guidelines on the use of managed vs unmanaged solutions and how external solutions should be managed. Our approach has simplified the management of these solutions for our clients and now they can get the most out of CRM solutions with minimal work. We’ve actually built an internal application that can take the customisations out of a Dynamics CRM instance, store them in Team Foundation Server (a code repository) and then create managed or unmanaged solutions from there. This has simplified our process for moving customisations between environments, and allows for the complete tracking of changes made during development.
3. Testing – Automated and Manual
Manual testing of Dynamics CRM is pretty straightforward, and if that is sufficient for your needs then excellent. Manual tests are laborious to run every time there is a change and don’t lend themselves to doing proper regression testing of your entire Dynamics CRM application (and quite frankly they are boring to maintain and run and not something anyone wants to be landed with!!).
Bridgeall has found automated testing is a far better approach. Tests can be recorded once and then played back as many times as required. If a bug is discovered, while fixing it we’ll create an automated test to specifically test that bug, meaning every time the suite of tests are run, as long as that test is passing, we know we haven’t re-introduced that bug.
Bridgeall’s background in IT software development has helped us in this area as well. We use external testing tools to test all our custom developed applications, no matter what the interface, so it was logical for us to look at automated testing in CRM as well.
4. User Management – Ensure users have the correct access
One of the most common support issues we see is users being denied access to something they feel they should have access to. Unfortunately there is no easy fix for this one. The only solution we have found is regular analysis of the types of users your business has, and creation of the roles around those types of users. It’s not rocket science but just something that needs done.
5. Maintenance and Performance
Microsoft Dynamics CRM has high minimum requirements there is no denying that, and it is not the type of application that you can just install and then forget about. Microsoft have actually produced a 56 page white paper with tips on optimisation and maintenance of Dynamics CRM 2011.
Microsoft Dynamics CRM Cloud would potentially help with these maintenance issues. With the cloud version, Microsoft takes care of the maintenance headaches for you, and also means you don’t need to buy the hardware.
If the cloud isn’t an option the alternative is to work with a company like Bridgeall who have the experience of working with Dynamics CRM to take this particular issue out of your hands. Bridgeall can take responsibility for all of these regular tasks and maintenance jobs to ensure your Microsoft Dynamics CRM instances are running as efficiently as possible.
So that’s our top 5 headaches our customers have seen with Microsoft Dynamics CRM. We’ve solved these for our customers and I hope this blog post will help you solve some of them too. If not get in touch.