CRM 2011 Technical Debt – A real example

Gayan Perera, 14 March 2013

CRM 2011 Technical Debt A real example A few days ago I was listening to a talk on DotNetRocks.com by Gary Short where he talks about “Technical Debt”.

Timing couldn’t be better; couple of weeks ago we started a large Dynamics CRM 4 to CRM 2011 upgrade.

The original project was done by another vendor and the debt incurred is pretty high! Let’s just say the upgrade cost would cover full payment on a nice house…

As Gary explains, technical debt is similar to the debt we know; you get the benefits now but pay back later. This works when you understand what you’re doing and have a good handle on things.

Unfortunately on this project the debt was not understood and not made clear to the business, the business requirements were set out to be achieved in a certain frame, the developers took shortcuts (“Technical Debt”) which now must be paid back with interest!

Here are some interesting finds…

Unsupported customizations

Stay away from unsupported customizations (http://msdn.microsoft.com/en-us/library/bb928224.aspx). Developers who are new to CRM has some sort of SQL background, just because it’s easy to write SQL against the CRM database doesn’t mean you should!

Comment your code!

Javascript – Yes it’s powerful but doesn’t mean you should write 3000+ lines of code when it can be done in 50 lines of C# and a plugin!

Plugins / Workflows

• Use meaningful names for your plugins, eg: RollupResults instead of TestPostCreate.
• Check the Depth.
• Use attribute filtering to avoid unnecessary firing of plugins.
• Workflows are there to implement business processes, don’t use them as hidden triggers to trigger plugins.
• Make it easy to spin up new instances, there’s nothing worse than reading a 50 page document on how to install the ISV extensions…