Over the last couple of years I’ve been working on massive scale XRM projects. A few million man hours and a good few hundred million dollars down the track, I found myself with a bunch of interesting concepts that I would like to share with the rest of the world.
What will you find in my blog
The focus of this blog would be around using best practices to build Dynamics CRM solutions from a architecture\developer perspective.
Given that I am a developer-turned-architect, I might be leaning towards blogging about coding and/or customisation. I’ll do my best to balance my posts to satisfy everyone.
You’ll also find end-user/power-user tips on how to use Dynamics CRM to its full potential.
The blog will be organised into streams. Each stream will deal with a specific topic. Posts will be tagged with the stream name in case readers would like to read an entire series. Some of the stream that I have in mind are detailed below:
The installation stream will be dealing with the deployment of dynamics CRM as a product. It covers the prerequisites, the basic installation steps (including prerequisites), and also advanced installation automation techniques. The idea is to compare the techniques to the industry’s maturity model and try to reached the highest target possible.
Packaging and Deployments
A successfully CRM implementation will constantly be updated and enhanced. “Code drops” will happen often, and will be repeated on many environments. The package and deployment stream will describe the different techniques to automated the packaging and the deployment of new enhancements. The aim is to implement a CRM continuous deployment (CD) to all environments.
Case studies have shown that CRM has an impressive capacity to server millions of requests per second. Nevertheless, If not implemented correctly, CRM can run like a dog. In most cases performance issues can be avoided. This stream will be targeted at identify performance issues, and find solutions to resolve them.
Any serious project goes through a few different types of testing. Whether we are talking about pre-deployment or post-deployment defect detection efficiency (DDE) there are several modern techniques that can help with defect eradication. Automated unit testing, regression testing, UI testing, stress testing, etc. are all techniques that can help with catching bugs.
Building a large scale enterprise application is not easy task. Luckily the science of building computer systems has been around for a few decades. Learning from previous projects and applying those architectural patterns to modern XRM applications is a fantastic idea if we do not want to reinvent the wheel. One size does not fit all; each project will have its set of requirements based on the scale. Architecture design patterns will definitely have an impact on how the platform performs in general but each pattern will come with its own price tag.
Most of the Dynamics CRM tutorials describe how to implement a very simplistic set of customisation. As your code becomes more complex, code structure becomes important to keep on top of maintainability and scalability. The code structure stream covers some of the best practices on how to structure your projects for large scale, long lasting projects.
It’s 2015 and people still use C# as a procedural language. This stream is probably one of the major drives to starting this blog. Every time I review a dynamics CRM set of customisation, I am always surprised with the poor code quality. The stream will deal with a list of design patterns that drastically improve your code quality, with scenarios illustrating where to apply them.
The productivity stream is targeted at end-users who would like to improve their day to day productivity when using Dynamics CRM. CRM has a good set of hidden gems that would make your day to day work a breeze. The section would also include some cheat sheets to print and hang on your cubical wall.
Oldies but Goodies
Along the lines of the productivity steam, the oldies but goodies will cover some of those features that are have been introduced a while back that lost their “hype” but are still awesome nevertheless. Having started with CRM 3.0 I’ll dig back into memory lane to
The beautify of CRM is in its extensibility. We have a wonderful enthusiastic community out there that is keen to help and they have by creating open source tools to help with CRM implementations. I’ll cover some of those awesome tools in this stream along with some examples on how to use them..
Many (but not enough) books have been written for Dynamics CRM. I am lucky to have a Safari Books Online account, and try to read as many CRM books as I can. Most of the books that I came across are of a high calibre. I’ll be reviewing some of them in this blog to give people interested in reading those books a head start of what the books are about and who is the target audience.
The blog will cover a wide range of topics, some of them or tare too small to fit into their own stream.
What will you not find in my blog
Many people around the world regurgitate information they find on the net or in demos about the awesome features that CRM applications provide. I’ll limit those posts to a minimum; I’ll leave it to others to share this information.
Who is the target audience
Anyone who is interest in XRM implementations, or even would like to learn about enterprise application best practices in general can find this blog interesting. Developers, Testers, Architects, Business Analysts, Project Managers, Power-users, etc. The content might be over the top for end-users, however, stakeholders and sponsors that are in the process of implementing a CRM/XRM application for their organisation will find some interesting topics about industry standards, maturity models, best practices, that can help with their project.