Sunday, December 28, 2008

Dynamics is better than Salesforce because...

This post definitely expresses my opinions on this matter, not those of my employer, or any of their associates, or their tennis partners or any of their tennis partner's live-in lovers' mates.
Hope that's legally binding; Right...


I've been doing some SFDC development since mid October, and thought I'd scribble down a few thoughts on why I prefer the MS offering.
In no particular order, these are the main reasons why MS is a better product.

- Workflow.
~ Out the box. MS allows you to compile a list of rules (event-based or time-based) and associate actions as you wish. SFDC allows you to evaluate criteria, and associate a single action if they resolve to True.
~ Child Workflows. You just can't run workflows from workflows in salesforce. I've tried. And unless I'm missing something, you just can't get one to go at all unless a user changes something via the UI, which means you can't set Triggers or field updates to start workflows either. In MS it's easy, you just mark a WF as 'child', then in some other WF you create an action 'run child workflow'
~ Complexity. SFDC has a limited number of actions: You can update a field, send an email or create a task, etc... but MS is built on WF, so if you need to do something a bit more, like invoke The Wine Company's web service to place an order for your top 10 customers at Christmas, no problems! If you can write it in .NET, CRM can handle it and integrate it within the platform.

- UX. The 'look and feel' of Dynamics CRM is much nicer. Again, this is completely a personal opinion, and I understand that the Salesforce GUI is due an overhaul in the near future. MS has some nice touches, like the 'form assistant', and the auto-complete when you exit a lookup field.

- Flexibility of hosting. Sure you can run CRM with a SaaS model. Alternately you can host it on your own server(s) as a local or Intenet Facing Deployment. Salesforce is SaaS only, and I for one find that a little prohibitive, especially if the internet is down (most likely because the client's proxy servers are having a little rest, again).


Having said all that, here's where Salesforce is nicer than MS:

- Record Types. Multiple layouts (forms) per object (entity), with individualised validation rules, e.g. an address for a lead. If lead-type is 'US' then 'State' is required, otherwise the 'State' field is removed from the form. This is achievable in MS using status flags and javascript, but is easier and cleaner in SFDC with record types.

- Apex. Yes, the coding experience is hateful, having come from an IDE like Visual Studio; Yes, the language is still very immature compared to Java or .NET, but it does give you more than (and it's not *quite* as hateful as) just using javascript in CRM. You can also use javascript in Apex pages, too of course.
 

Overall, I'm enjoying my placement because the people are nice and the work is well-paced (not trying to hit unrealistic deadlines... yet) but I'm looking forward to returning to an MS-based environment at some point in 2009...