In the 14 years I’ve worked in the IT industry I’ve been involved in the design and development of numerous business applications and software products spanning multiple industry sectors. The majority of the projects I’ve worked on over that period have been custom solutions delivered via the Microsoft technology stack. Working across a variety of industries and problem domains has been a source of continuing challenge and there have been many valuable lessons learned along the way. Of those lessons, two are of particular relevance to the topic of accelerated development: on every project you have to solve new problems and on every project you have to solve the same problems!
Ask any solutions architect or software developer the following questions about the applications they’ve delivered over the years:
How many apps had features that created users and teams?
How many had role-based security?
How many needed a custom back-end database?
How many required data access code to map business objects to database tables?
How many had data entry forms that had to update business objects or a database?
The answer in most cases will be “All of them”!
Recent years have seen important advances in the frameworks and technologies available to developers that expedite the production of the common boilerplate code required to produce a working app. ORM frameworks such as NHibernate and Entity Framework massively reduce the amount of code needed to integrate with back-end databases. The MVC (Model View Controller) pattern provides an elegant way of coding data entry forms to interact with business objects. Microsoft’s ASP.NET membership features offer a common framework that supports role-based security.
All good news if you’re a developer – any technology that reduces the effort required to produce the same standard features repeatedly is a huge plus point. Great news too for you the customer – you aren’t paying a premium for standard functionality so more of your costs can go towards the features that offer the most benefit to your organisation.
So a cost reduction for developing standard features is good news all round. But what if those standard features didn’t need to be developed at all? What if users, teams and role-based security were already built-in to your application? What if the back-end database was taken care of? What if you could easily create custom business entities and design data capture forms and all the framework code for managing those entities and their data was already in place? If a platform existed that could achieve all that then the vast majority of your budget really could target those features that deliver the maximum ROI for your business and pay for all those features that fall into the “nice to have” category but which time and budget rarely ever allow.
Dynamics CRM is that platform. All the features we’ve been talking about come out-of-the-box along with many, many more. If a feature doesn’t exist, Dynamics CRM has powerful customization capabilities that allow new features to be added without the need to write custom code. On top of that, the integration with Outlook and SharePoint is so tight that you can create unified applications that have Dynamics CRM at their centre but which leverage all the benefits that SharePoint, Outlook and the wider Microsoft product suite already offer. And again, the majority of those application features will usually come out of the box or can be delivered rapidly at low-cost using the Dynamics CRM customisation framework.
Let’s take a real world example to demonstrate the accelerated delivery that’s possible with Dynamics CRM. Bridgeall’s customer base is expanding and we now cover 1st, 2nd and 3rd line support for a number of key clients and their wider user community. We identified the need a for a new best in class service desk application that allows us to manage the interaction with our customers as we service their requests but which also integrates with the various internal tools and processes we use to guarantee we deliver quality and certainty in both software and services.
A key driver was the on boarding of a major new customer in April 2013 and the need to have a working solution tested and in place before then. One option was to buy off the shelf but knowing the rapid delivery capabilities of Dynamics CRM, a second option was to develop a solution in house.
Which option did we decide to go for? The custom Dynamics CRM solution!
Why? Firstly, we were able to explore what we could achieve with Dynamics and prototype proof of concepts rapidly enough to make an informed decision. Then, within the compressed 4-week time frame we had for delivery we were able, in line with our normal agile development philosophy, to prototype, develop and test a custom solution that:
How many lines of code did we write? None!
So far, version 1.0 is an integration of the existing capabilities of Outlook, Dynamics CRM, SharePoint and Team Foundation Server, enhanced by a set of Bridgeall customisations, tailored workflows and automated processes. In version 2.0 we’re aiming for tighter integration with SharePoint and TFS so some custom .NET plug-ins will probably come into play. But what we’ve achieved for version 1.0 is a fantastic example of how Dynamics CRM can accelerate development, bypass the overhead of producing standard functionality that offers minimal business benefit and put the focus firmly on those features that deliver maximum ROI.