Blog

  • Dynamics CRM 2011 and the world of (cloud) apps

    On July 12th it was announced in the Microsoft Worldwide Partner Conference (WPC 2010) that there will be no CRM 5.0, instead we will have a product called Microsoft Dynamics CRM 2011. Not a huge surprise, considering the other Dynamics products like AX and NAV had already moved to this naming convetion followed by the Office family for quite some time now (actually 15 years, if we exclude the odd Office XP release in the middle).

    So much for the branding. Underneath it all we will have the “CRM5” engine evolving from CRM 4.0, with quite a few important improvements on how the application can be utilized as a platform for developing your own custom applications, a.k.a. the XRM mantra that Microsoft has been heavily promoting and showcasing between the product version releases. While this side of the coin will surely play an important part in gradually turning Dynamics CRM into part of the core enterprise infrastructure like SharePoint has become, the first thing most new users will see from the application will still be the Outlook client and traditional customer data management functionality. Which is why there have been some big investments from the Redmond boys on developing that side of the CRM product, as you can see from the picture below.

    Instead of merely wrapping the web client page into an Outlook frame, the new rich client interface introduces whole new components that attempt to follow the faimilar Outlook UI experience. Tabs will help in keeping the number of pop-up windows under control while the preview pane we’ve learned to take for granted in processing our email inboxes is now also available in the scope of CRM entity forms. Since Dynamics CRM 2011 now comes with the ribbon interface like most other MS products, the CRM functionality now blends into the Outlook toolbar and gets presented in all its context sensitive glory. (more…)

  • Greetings from Microsoft Convergence 2010 in Atlanta – Part 2

    In Part 1 I shared some thoughts and observations on what role cloud computing was playing at Convergence 2010 Atlanta. I also promised to get back on the other hot topic, which should not be a surprise to anyone. No, it’s not XRM. But if we’d follow a similar naming convention, I guess it could be called SocialX, meaning “social anything”.

    If the cloud computing movement is about the shift in technology, then the social web revolution is all about the people and their new forms of behaviour. Sure, it’s powered by some tech innovations from Web 2.0, but it would be a stretch to claim that the source code behind services like Facebook or Foursquare contains the magic ingredients that have caused the eruption of the social media volcano. To prove my point, just take a look at the following slide:

    This “social customer stack” is taken from the Deriving Value from Social Networks session by Nikhil Hasija and Paul Greenberg. It was the best 60 minutes spent during Convergence 2010, hands down (even better than The Return at Tabernackle or The Geeks Band at Hard Rock Café). One particularly great thing about it was that there were absolutely no sceenshots of Microsoft applications, like in all other Convergence presentations. No attempts to push products like the Social Media Accelerator or anything else MS branded. Everything was built around the core message: what has changed since the invention of traditional CRM and why the customer is now in charge.

    (more…)

  • Greetings from Microsoft Convergence 2010 in Atlanta – Part 1

    This year’s main event for Microsoft Dynamics product line is now over and done with. It was the second time I attended Microsoft Convergence, and the first one on US soil. Here are some of my miscellaneous notes and thoughts on the event.

    First of all, getting to Convergence 2010 in Atlanta this year was not easy, as I’m sure many fellow Europeans noticed. No, the problem was not in acquiring tickets or hotel accomodation, it was in the physical act of getting to Atlanta through the volcanic ash cloud that paralyzed the airspace in most of Europe the week before Convergence was set to start. I was in Kuala Lumpur at the time of the eruption and had to re-route myself directly from Malaysia to United States, without visiting my home base in Helsinki. The one week trip in South-East Asia turned out to be a three week trip around the world, which was a bit of a rough ride, but I’m glad to have made it to all the meetings I had planned, attended Convergence for the whole duration of the event and returning safely back home (with a huge pile of laundry in my luggage).

    (more…)

  • Dynamics CRM Online: what does it look like?

    Dynamics CRM Online: what does it look like?

    Like I mentioned in my previous post, cloud-based services are quickly becoming the default mode that people expect a CRM application to be delivered to them. Microsoft is clearly focusing their efforts on responding to this change of environment, but so far the availability of Dynamics CRM Online has been strictly limited to North America. The international launch of the service has been promised to take place in the second half of 2010 (probably together with CRM 5.0 roll-out). Until then, there seems to be little for us Europeans to do, apart from reading CRM Online blog entries from the US colleagues.

    I was lucky to recently get access to a CRM Online development environment, provide to us by CoreMotives as a part of our evaluation use of their Marketing Suite. Here are some of my initial impressions on the differences and similarities between Dynamics CRM Online and the good ol’ on-premises Dynamics CRM.

    Outlook client setup

    Since my work laptop’s Outlook is connected to a production CRM instance, I decided to try the CRM Online with my home PC. The installation file download took a while, but soon we were on our way.

    I decided to skip the SQL Server installation to speed things up and settle for the online-only version. After all the patches had been applied, I was greeted with a login window for the Outlook client.

    From here onwards everything seemed to work just like in the familiar on-premises CRM world. Perhaps even a bit too closely, as the first prompt that greeted me when accessing CRM Online was a notice about scheduled maintenance downtime later on the same day.

    Oh well, I guess the cloud needs some regualr reboots, just like any Windows machine.

    CRM Online user inteface

    Like with the Outlook client installation, most things look very familiar inside the CRM Online UI. The home page does however present some new features to us.

    CRM Online contains a feature called Get Started Panes, which provide contextual information at the top of the main CRM window entity screens. By default these contain categorized instructions on common tasks a user might want to perform when working with e.g. accounts or opportunities.
    (more…)

  • Driving towards the cloud through the CRM mist

    Driving towards the cloud through the CRM mist

    This week I attended the fifth annual CRM user days by Mepco Oy. This time the line-up included also international guests from Microsoft US and UK, namely Kim Smith and Patrick Pando. Not surprisingly, their presentations included a hefty dose of the MS Software-plus-Service mantra, presented from the Dynamics CRM perspective. The slides had a few interesting points that I thought were worth blogging about.

    Both Kim and Patrick stated that the pull from the customers’ side on Microsoft offering an online version of Dynamics CRM has been tremendous. Given that CRM has been designed as a pure web application since day one, it’s no wonder that especially smaller companies today would be questioning what exactly they need their own server for, since so much of the competition is using a purely hosted strategy in delivering their flavor of customer relationship management apps.

    Although it may seem like Microsoft has been somewhat conservative in their efforts to roll out their CRM Online offering, this may rather be an indicator of how serious they actually are about ensuring that their cloud experience lives up to the hype. The following quote from Brad Wilson highlights the strategic importance of CRM Online to Microsoft:

    “In three years, 100% of our CRM business will start with an Online experience.”

    To me that prediction makes perfect sense. Gone are the days when you could sell business software armed with a website full of marketing bullets and some on-site sales presentations with selected screen shots of how the application looks like, “if you buy” or “if you commit to a PoC”. Today the rules of the game are quite simple: give me a demo account and a URL to log in. What, your application requires me to install something? Hmm, well maybe I’ll try it sometime later then.

    If you can present your application through a browser, getting your foot through the door can be so much easier. This seems to be precisely what Microsoft is planning to use CRM for. Patric’s presentation included a cycle that presented the typical order in which they expect the customers to adopt cloud based services. Microsoft considers Dynamics CRM to be the most likely entry point for companies to try hosted replacements for their existing business applications. Once the customer data is in the cloud, presence (OCS) and document collaboration (SharePoint) are quick to follow into the palette. After that, having your own Exchange will start to feel outdated etc. etc.

    Will this gateway theory work in reality and bring new business to Microsoft? If anything, it does at least sound like a plan where the phases are in the correct order. There would appear to be fairly little functional benefits in moving existing monolithic services like Exchange into the cloud, but going there with a customizable and extensible platform such as Dynamics CRM offers a whole lot more opportunities. As long as CRM Online manages to build an attractive ecosystem around the core product and pull in services that demonstrate the benefits of building integration in the cloud, as opposed to behind the firewalls, it has a great chance for stealing the momentum in business application development.

    Will Microsoft make more money out of SaaS than it’s traditional licensing model? That may not be the right question to ask. In order to keep on makin’ money like they have, MS must first find a way to fight the new competition, just like it fought off Lotus & WordPerfect back in the days when the battle was on the C-drive. If Dynamics CRM gains more mind share as a result of this brand new warfare, so be it.

    Patric ended his presentation with the following bullets on the key considerations companies should focus on when planning their investment in the cloud:

    1. Know where and how cloud services fit into your company’s IT architecture. (strategic or tactical)
    2. Prepare your company for the changes associated with cloud services. Prevent anarchy, just because you can sign up to anything doesn’t mean you should sign up to everything. Remember: integration still is key.
    3. Attend to your identity management system. User access, security, and integration.
    4. Choose the right apps. Most companies will move into the cloud gradually, so it’s a matter of deciding where to get started.
    5. Select the right cloud service provider.

    While many of the points may sound somewhat obvious, they are all too easy to forget at the high peak of the hype cycle that cloud computing has been riding on. Yes, the cloud will change almost everything, except the mistakes that we will repeat all over again.

  • Looking ahead at Microsoft Dynamics CRM 5: screenshots from PDC

    Back from a long time of inactivity, I decided to resurrect this blog with some content taken from the recent PDC09 sessions. Just like last year, presenting the feature set of the upcoming CRM version wasn’t really the main point in PDC (that’s what Convergence is for), but when someone gives a developer demo using the new platform, there’s always going to be interesting snippets of information also for us non-developers. So, last night I watched the three CRM/xRM related session recordings and took some notes and screenshots from them (which explains the low image quality, sorry about that).

    On the technical side, CRM 5 will be running natively on .NET Framework 4.0, which means it will be riding on the wave of the latest .NET version released, unlike CRM 3.0 or 4.0. In the presentations there were talks about WCF (Windows Communication Foundation), .NET RIA Services, system types and all kinds of developer lingo that goes way above my head. There’s a great summary article here by Marco Amoedo.

    Now, let’s move on to the CRM application itself.

    Basic UI

    CRM5_GetStartedWithAccounts_small

    We’ve all seen the upcoming ribbon UI in CRM5 already, so that wasn’t big news. Looking at the start page ribbon content, there’s a button called “Add connection”, which hopefully is about the creation of ad-hoc relationships between any entities, but none of that was shown in the session. Another interesting thing was the “Get started with accounts” instructions pane. That might be just a feature of CRM Online, which was used for the demo, but I sure would welcome a better way to provide customized instruction links to users right within the CRM UI.

    CRM5_Cases_small

    More of the same here under the Service menu. The out-of-the-box views don’t seem to have evolved, but it would be interesting to see what’s behind that Views tab on the top. The order of the Quick Find box and the views dropdown menu was somehow messed in this early version of CRM5.

    (more…)

  • The price of customization

    Although this excellent article by Vjekoslav Babic is written from the ERP and MS Dynamics NAV perspective, the same list holds true for the CRM side as well:

    Top 7 reasons why to avoid (much) customization

    • Regressions can be tricky to hunt down and fix
    • Go-live schedule can be delayed if the customizations are not properly though out in advance
    • Official support does not cover custom code, how do you then identify if problems in your system are covered or not?
    • Upgrade to the next version will become more difficult and expensive
    • Know-how only exists within your organization, so proper documentation becomes a critical factor for risk management
    • Vendor lock-in is almost inevitable, which in practice means rewriting the code if the co-operation with your vendor is no longer working
    • Help for the users needs to be developed and maintained in-house, since user guides and courseware can’t possibly cover your custom processes

    The relative ease of developing custom solutions on top of applications like Microsoft Dynamics CRM can easily lead you to dangerous path. Just because you can quickly implement it, does not mean that it will be cheap in the long run. Unless you are able to identify these hidden costs of customization in advance, you may find yourself singing up for something that will ultimately cost you more than the potential benefit to be derived from the custom solution.

    So, just because you can, does not mean you should.

  • Attribute maps and importing customizations

    After performing the basic installation of MS CRM, you will have a system that contains the default entities with all their fields, forms and so on. The next step will be to modify the entity customizations to suit the business needs of the organization. Typically there will be a development and/or test environment where the customizations are first performed, before being imported into the production server. This should be an easy operation through the Import Customizations menu, but sometimes you may end up with a nasty error like this:

    “This attribute map is invalid. The selected attributes should be of the same type. The length of the target attribute should be equal to or greater than the length of the source attribute and the formats should match. The target attribute should not be used in another mapping.”

    This can happen when the source customization has some default attributes mapped in a different way than what they are by default. As pointed out by Will Willson in this blog post, CRM only adds new mappings between entity attributes during the import. It will not delete any existing mappings, so you may end with the source entity having two mappings pointing to the same field in the target attribute.

    If you have a hunch on what entity and which attribute might be causing the problem, the quick solution is to go and remove the existing mapping prior to importing the new customizations. If you’ve got no idea on where the conflict is, you can try enabling CRM Platform Trace, reproducing the error, then opening the resulting trace file that begins with “w3wp-MSCRMServices” and searching for the tag “FAILURE”.

    (This issue is described in the confidential Microsoft KB article 921977, available through Customer Source.)

  • The haunted house of callouts

    One of the integrations implemented for our CRM environment includes a feature that writes entries to a dedicated Error Log entity. This can be a convenient way to provide the end users access to error notifications, when the process itself is asynchronous and does not provide a way to prompt the user.

    During the development project of this integration, frequent updates were made to this callout dll file and I received new versions to be deployed from the developers almost on a daily basis. After one particular update, we were surprised to notice that the callout was still writing an error messge into the custom entity, which was not supposed to be there. In fact, the whole message string no longer existed in the dll file. Where did his ghost messages appear from?

    It turned out that merely stopping and starting IIS does not guarantee that the previous version of a callout would not remain in the cache. If there are any workflows associated with the entities that the callout references, these can keep the old version of the dll loaded up in memory, thus creating the “haunting” effect described.

    As a lesson learned, whenever I need to update a callout dll file, I now go through the following steps:

    • Stop the CRM Workflow Service (net stop mscrmworkflowservice)
    • Stop IIS (iisreset /stop)
    • Replace the callout dll
    • Start IIS (iisreset /start)
    • Start the CRM Workflow Service (net start mscrmworkflowservice)
  • Enterprise Scalability and Performance with Microsoft Dynamics CRM 4.0

    As promised in my earlier post, here are some notes I wrote down during Convergence 2008 EMEA. In my opinion, the best session was “Enterprise Scalability and Performance with Microsoft Dynamics CRM 4.0” held by Amir Jafri. Not so much because of the original agenda and slides, but mostly thanks to all the questions and comments from the audience. Here goes:

    Database

    • SQL Server is where performance tuning gives the most “bang for the buck”
    • Creating custom indexes is supported and encouraged
    • Custom search attributes for entity Quick Find view do not automatically get indexes
    • Database index should be moved to a different disk system
    • Old customization versions are stored in the database
      • Performing many customization changes will slow the system down over time
      • Data is not and cannot be utilized in the UI, so what’s the purpose?
      • There are workarounds for cleaning the old data
    • Performance comparison of out-of-the-box setups between v3.0 and v4.0 on identical hardware show 50% reduction in CPU utilization and disk queue length
    • SQL Server 2008 will provide performance improvements for CRM out of the box

    IIS

    • Disabling authentication from static content has been done in v4.0, heavily recommended for also v3.0
    • 401 error page size has been reduced, should be done manually for v3.0
    • v4.0 uses content compression to reduce the amount of data transferred
      • Compression can create an overhead on the client when rendering content
    • Image Strips(?) are used in v4.0 to reduce round trips
    • CRM default home page (my activities) round trips have been reduced by 50% between v3.0 and v4.0

    Workflow

    • Common client for Windows Workflow Foundation is being developed
      • May ship with CRM v.Next
    • Workflows are still a heavy operation even in v4.0
    • Workflow performance measurement is almost impossible, due to the unlimited number of variations how workflows can be built
    • Workflow queue database table is not automatically purged of old data or indexed, should be done manually
      • Table size can grow to become so big that maintenance cannot be run, hotfix is available

    Performance general notes

    • Tests done using Cisco WAAS application accelerator in WAN environment have proved to improve performance by up to 50%
    • Official toolkits for measuring the performance of an existing CRM implementation do not exist
      • Performance measurement toolkit can be used only with test data, prior to live environment deployment
    • New MOM (a.k.a. Systems Center) pack for CRM v4.0 will include CRM specific performance analysis tools
    • Outlook client improvements in v4.0:
      • Reduced memory footprint, but still quite resource intensive, also due to new requirements from Vista and Office 2007
      • CRM client start-up should no longer slow down the email data transfer upon Outlook start-up, client loads in the background