Cloud and the offshore model

In my last post regarding Cloud computing I promised that i will be writing more on the Cloud. I work for a company with an offshore office so I would like to look at cloud computing from the this perspective. What effect would cloud computing have on companies that have offshore model and how do such companies need to change to adapt to Cloud environment.

Cloud computing is nothing new for resources who have worked in the offshore model. In one of my recent engagement as CRM project manager we worked by setting up VMs for my developers. One night one of my developers called me to check why they were not able to connect to one of the machines. I explained that the machines they connected to were not physically present in the office because they were in remote data center. It is something that we have been doing for years to enable our offshore teams to work from remote locations. Offshore resources work by connecting to remote machines.  These remote machines for them are somewhere in the “CLOUD”. When the offshore model was in its infancy and the VMs were not available we would setup separate machines but subsequently with VMs it became easier as hardware cost also reduced for this model. So the business model was simple “services at reduced cost”. Of course this only covers one aspect of Cloud computing and the more compelling selling pitch of increased computational power was never addressed by the early pioneers of the offshore model. I think it was mostly because most of the businesses would not buy the idea of having their mission critical data in offshore locations. Time has changed and who knows maybe a Cloud offering at reduced cost with data centers in Ireland, China or Pakistan would be a good business plan. Anyways so although companies with offshore model need to reorient themselves to take advantage of cloud computational power yet they have loads of experience working on remote machines and are familiar with the problems Cloud environment has to offer.

Offshore developers have a lot to offer as they have worked with remote machines, VPN setups, integration between offshore and on campus applications, Firewalls, security issues and workarounds, authentication on remote servers and Data migrations. I was recently in a conference where one of the presenters described the authentication and impersonation requirements for an application to talk to another application on windows azure platform. Although the methodology described was new but the problem was an old one. So as far as technical know how is concerned Cloud is something that offshore model would embrace.

As far as the business side is concerned I already mentioned in my last blog that the cost on services need to be reduced. One way of doing that could be by developing IP and the other is of course to reduce cost on resources and increase IRR. Offshore model inherently offers great IRR per resource but offshore teams don’t necessarily do a great job building products and reusable services. So when i look at cloud i feel it’s a new opportunity for companies that outsource work load as with Cloud the outsourcing model would be more acceptable. However it’s also a matter of companies, with offshore business models, stepping up and making a case of partnering with other businesses so that they could sell their expertise. In order to do this they need to train their resources to take advantage of Cloud infrastructure and build applications that leverage the computational power available. 

Overall i feel its exciting times to be in the IT business and more so for companies with offshore model. In fact I feel that with Cloud every business model is an offshore model.

Data Migration from Legacy apps to CRM Dynamics 4.0

CRM Data Migration

Data migration is one of the most complicated aspects of a Microsoft Dynamics CRM implementation; however it is also the most critical.  If the data quality in a CRM system is poor, users will not rely on the system as their one stop for accurate customer data.

The data migration and import features let you upload data from varios customer relationship management systems and data sources into Microsoft Dynamics CRM. You can import data into standard and customized attributes of most entity types, including custom entities. During migration, you can upload related data of different types, such as notes and attachments. Data import lets you import new data or update existing data in Microsoft Dynamics CRM.

Microsoft Dynamics CRM includes the following tools for importing and migrating data:

  • Import Data Wizard, which is a Web application that is used for importing data records from multiple comma-separated values (CSV) files or from multiple XML Spreadsheet files.
  • Data Migration Manager, which is a stand-alone tool that is used for migrating data from multiple comma-separated values (CSV) files.

 Data migration can occur in two ways: Initial (one-time) or Ongoing (selective & scheduled).

 Initial Data Migration

During an initial data migration, the focus is on extracting data from your legacy systems, cleansing the data and importing it into your new Microsoft Dynamics CRM system.  This process can be time consuming as often the system values or fields have changed in the new system. Once the data has been cleansed and imported into Microsoft Dynamics CRM the task is complete.

Repetitive or Ongoing Data Migration

Many systems have needs for ongoing data migration. This can be caused by using some support applications to gather business related data and import that data into CRM to help sales team or can be caused by having specific departments continue to use legacy systems. 

Ways to import external data into Microsoft Dynamics CRM are the following: 

  1. Data Migration Manager (DMM)
  2. CRM Web Client Import / Import Wizard
  3. Custom utility using SDK for Microsoft Dynamics CRM
Data Migration manager (DMM)


Though there are many details to track when migrating data, the basic process is straightforward.

Data Migration Manager is a tool you can use to convert information from another customer relationship management (CRM) system or from a database to Microsoft Dynamics CRM. It can only be used by someone with the Microsoft Dynamics CRM Online System Administrator security role.

The Data Migration Manager (DMM) is a new version of the Data Migration Framework (DMF) in Microsoft CRM. The tool and the data migration process have been improved and simplified. For example:

  1. It is now possible to remove the migrated data.
  2. You can create custom entities without any previous mapping

There are four distinct stages:

  • Export source data – Export your data to comma-separated values (CSV) files, with data for each type of record in a separate file.
  • Install Data Migration Manager – Most of the features that are available in the Data Migration Manager are now available in the Import Data Wizard in Microsoft Dynamics CRM. However, it can be downloaded from the Microsoft site via the following link:
  • Create and migrate test data – Prepare a small number of test records, and use the Data Migration Manager to map and migrate the data.

During this step you’ll identify any changes you need to make to your source data and to Microsoft Dynamics CRM so that the data migrates correctly. You’ll need to use both the built-in wizard and the guidelines in the Help to identify potential issues you need to address.

After the test migration is successful, you can delete all data migrated by your test migration.

  • Migrate all data – Once your test data migrates successfully, and you’ve made any corrections you identified to your data map and to your data, you’re ready to migrate your entire data set.

The following diagram illustrates the process of migrating data.

CRM Data Migration

CRM Web Client Import

The native Microsoft Dynamics CRM Web Client Import receives data from a CSV or text file, allows field and pick-list value mapping.  The Microsoft Dynamics CRM import only works for Leads, Accounts, Contacts and Campaign Responses. It does not include the option for importing relationship mappings, notes, activities or email attachments in version 4.0.

Most of the features that are available in the Data Migration Manager are now available in the Import Data Wizard in Microsoft Dynamics CRM.

To ensure a successful import, you need to prepare your source data so that it can be mapped to Microsoft Dynamics CRM. For each default entity that can have data imported to it, the following attributes are listed:

  • Required: Source files should have one column for each required field in the Microsoft Dynamics CRM record type. All records must have data in each of these columns.
  • Relationship: If you want to connect one record to a record in another record type, you must have a column in your source file for the data that creates the relationship. If there is no data in a relationship column, the record will not be connected.
  • Calculated: Data in calculated fields is not imported. Instead, when the data used for the calculation is imported, Microsoft Dynamics CRM does the calculation and populates the field. You should identify any columns in your source data that map to calculated fields, so that you can select Ignore when mapping the column.
Custom Migration Utility

A custom migration utility provide the best results as it enables imports from multiple sources and not limited to Excel files, SQL Databases or CSVs.  Additionally they allow you to import relationship mappings, notes, activities and email attachments.  Import can be completed once or scheduled for regular imports.

Cloud – What the hype is all about

So you must have heard about the Cloud by now. You must have heard about it as a new happening phenomenon that is going to change the IT world. I would agree that it is going to have a significant impact on the existing business models in the IT industry. However it would only change our lives for good if we adapt to it quickly. Those who fear change and resist it at times tend to lose their edge because they fail to adapt to the ever changing world.

There are so many examples of companies from 8Os that do not exist anymore. Those that exist and have thrived changed as the world and specially the consumer was changing. Studies by Gartner and Forrester suggest the same about Cloud. These studies are available for review incase some of you want to get some stats on the Cloud future. The way i look at it is alot simpler than the complex studies conducted by these research organizations. As far as i am concerned its the consumer expectation that governs how the businesses run. IT consumers have started to question their IT spendings and they are tired of spending more on IT than on operations. At the end of the day the goal of every business is to make profit and continuous cost of IT infrastructure and services is something that never flies with CFOs. Does it mean that businesses are not going to spend on IT? Answer is obviously NO. Its just that businesses would consider other options. It does not mean that IT service providers are going to go out of business it just implies that they need to change to meet consumer expectations of spending less on IT and more on operations.

Lets pause for a second and look back to see how other industries evolved over time. Power industry went through the same evolution cycle. Factories used to own their power grids that supplied electricity for their needs. Subsequently power generation was centralized and now you have subscription based electricity model where you pay every month just for as much as you use. Similarly the mobile manufacturers changed their business model to subscription based model as it was not economical to sell their cell phones directly considering the manufacturing cost. IT industry is no different and the time has come to change. Businesses want to pay for the platform, infrastructure and services only when they use these services. According to one estimate we only use around 30% of the computational power we have although we spend alot on purchasing and maintaining the harware resources. There is enough evidence to suggest that Cloud is the future and i believe that we should prepare ourselves for this change.

Lets elaborate a little on what exactly do i mean when i say that we need to change to adapt to Cloud computing. It’s not that we only need to start training ourselves on Cloud platforms and start building applications for cloud but its also about understanding this change from the business perspective. It means that once our applications our up and running the returns our not going to be very high initially and its only the continuity with our customers that would reap us reward in the long term. It means that the cost for services has to be reduced to be profitable in IT. It means that the quality of applications we develop must improve to leverage the computational power of the Cloud. It means that IT companies must change the way they manage their clients so that they ensure client satisfaction over longer period of time. It means that IT companies need to streamline their processes to increase IRR per employee. It means the IT resources need to manage their time more efficiently. It is quite clear that the change is manifold and It would take sometime to devise methodologies for different business models that would work best with Cloud. However we need to start now to have an edge over our competitors. Every resource, irrespective of the role in industry need to start thinking  from the perspective of Cloud because it indeed offers lots of opportunities.  

In the end i just want to state that Cloud computing is nothing new atleaast for some of us (more on this in my next blog). It does not mean that we need to stop focusing on the on-premises  model. Its just that Cloud computing offers opportunities and only those that would recognize this would benefit from it.

CRM 2011 Beta – Installation

I have been trying to setup my first CRM 2011 Beta On-Premises server and i have have resolved some glitches so thought about sharing that with the community.


1. Windows server 2008 R2

2. Make sure that you have active directory setup on your machine. If not then here is a very good series of articles that explains how to do that.

3. SQL Server 2008 along with reporting server is required for CRM 2011

4. IIS needs to be configured. Ensure that Url for reporting server is accessible

Installing CRM:

Based on the your machine please make sure that you get the right copy of CRM. Amd64 for 64-bit O.S.  Once you have these things covered its time to go ahead with your installation. CRM  2011 On-Premises setup would guide you through the following steps. There should not be any issue doing this and most probably you will have your CRM up and running fairly quickly.

Outlook Client for CRM 2011:

As you look to install the outlook client which most of you would because it ceratinly is amongst the selling pitch for CRM 2011. Make sure that you have Microsoft Outlook 64 bit running for this to work. If not uninstall MIcrosoft Office and install the 64 bit version. If you have problems uninstalling please refer to this link.

 Outlook client installation should be the same as your outlook meaning it should be x64 for x64 outlook. Once that is ensured I think you would be fine with rest of the installation. However i faced lots of issues with it and most of them are solved here.

If you have outlook client for office 2010 configured and running then you are one lucky guy and befor you check it out you need to celebrate because its no small feat and YES i am not joking. If you are stuck here and you cant find any help even after looking at microsoft forums you have to try this.

1. Create a new profile as C. Bates mentioned in his post on the forum. It helps to solve problems in relationship to ids linked up with your profile.

2. Make sure you uninstall Windows Live 2011 if that is installed. I had it with my Windows 7 and it gave me all sort of problems. After that do install an earlier version and make sure that IDCRLVersion in registry is 6.x.x.

3. Unistall microsoft client for outlook and setpup outlook for your account profile.

4. Make sure you clean up regitry entries.

5. Install client again and then try to configure your CRM 2011 client. Now it should work fine.

6. If you have problems again maybe you just need to create a clean profile and install again but this should normally make it work.

7. Logs and Trace files are available so review them for errors in case you have any.

I hope this helps.

CRM 2011 integration with Sharepoint Foundation 2010

I just attended a session on the new features in CRM and on its integraiton with Share Point. I will post the link for that session here so that readers could get to know a little more detail that was covered in this session. Until i share that link here is the review of hyped up integration between sharepoint and CRM . Firstly to start with just want everyone to know that security propogation is still not there with the integration so if you are looking for that feature with new integration then i am sorry to disappoint you. Anyways it is still a smooth integration and allows for document collaboraiton in relation to any entity in the CRM. Integration with Sharepoint can be two way which means that one can add a document entity to CRM that would enable all sharepoint related features like checking in documents, checkout, versioning and search features with in CRM. On the other hand one could also enable the integration so that entities from CRM start showing up on the Sharepoint. I will cover the Sharepoint to CRM integration first.

Document Management in CRM: CRM can be integrated with sharepoint easily with this new tool called as CRM list component. This tool needs to be downloaded seperated and installed to the Sharepoint foundation site and enabled. Once that is done CRM can be configured using the Setting menu to enable the entities for the sharepoing collaboration. In addition one needs to specify the Url for the site that is configured for integraiton (where the component was installed). Once this is done the integration is complete and on addition of documents in CRM a new library is created in Sharepoint. Existing libraries can also be added to the entities. Each entity with documents would have a library associaiton with the address in format “siteaddress/Acocunts/Account Name/Entity Name/ account/”. This is pretty much it as far as this integration is concerned. Integration is pretty neat however there are a few minor glitches that are still there and i will cover them in the next article in which i would also gove step by step approach of CRM 2011 integraiton with Share Point 2010.

CRM Entities in Sharepoint: Business connectivity service allows showing up the CRM data in Sharepoint. This is a simple but powerful service that allows for all the modifications with the Sharepoint. However as you would imagine one would have to create custom web pages to show the data in Sharepoint. An important thing to note is the CRM is based on .NET 4.0 and Sharepoint 2010 on .NET 3.5 so one would be better of exposing end points and then using the data from there. The best thing about this integraiton is that one can use it as internet facing CRM without having to buy the licenses.

Some of the drawbacks for the the whole integration are that in CRM with document mgmt the documents associated with leads would not transfer to acocunt and opportunities. In case the opportunity is revised a new library would be created each time. The documents are added but the regarding field is empty because it is created by concatenating certain fields which are not necessarily mandatory. Anyways apart from these small issues:) it looks great. It was a very nice session by Kuba Skalbania that enabled me to share this information with you. I will be doing this later this week to give you some more insight into that. Till then please let me know if you have some questions so that i could explore those once i try this out.

CRM 2011 Beta – Recurrence

I have been playing around with CRM 2011 Beta and I like it so far. Today I was really excited about the recurrence feature in the new CRM which is something that was missing in CRM 4.0. I was looking at recurrence in terms of a module that would allow for scheduling of different entities. Although this is what recurrence is but it is limited to appointments. So in case you were getting super excited please settle down as you will still have to write some custom code for jobs such as “sending greeting mails to customers based on an event”.

The new recurrence feature allows for scheduling activities. So once an appointment is set for recurrence thenafter the spcified interval a new activity will be created. This is kind of nice as this allows for the management of details in each activity as recurring activities are actually separate activities. This is what made me wonder that this recurrence is more of a scheduler that schedules entities but unfortunately it is limited to activities in this release. Nevertheless I feel it’s a very nice new addition in the new CRM. In the next blog I will show how to create recurring appointment.

Managing M-M relationships

Dynamics CRM 4.0 has capability of creating custom entities and creating relationships with either system or custom entity. However in case of custom entities and M-M relationship there is often a requirement for additional parameters to qualify that relationship. For example Entity 1 has M-M relationship with Entity 2 and the relationship has further classification attributes such as Attribute 1 and Attribute 2. CRM 4.o does not allow creatin of additional attributes once the M-M relationship is created.
Following is the Business requirement:

The above figure explains the business problem in general. To understand the intricacies of the problem imagine that our company deals with sports associations and sportsmen in those associations. Our sales team needs a system to maintain the information about these entities. Out of the box account entity in CRM 4.0 does not suffice to fulfill our requirements for the management of these two entities so we make custom web pages to maintain these custom entities. These custom entities have a drop-down for the selection of category (sportsman, sports association). Now for the sports associations we want to store the information regarding the states and counties they serve in US. We call these states and counties as “Coverage Areas”. So there is a relationship, M-M between our product/Entity Sports Association and “Coverage Area”.

CRM allows creating entities and relationship between those entities as well. However a simple many-to-many relationship would not serve the purpose as ideally on the entity form there should be a sandwich control and sales representatives should be able to quickly select the coverage areas. Moreover even if M-M relationship is created it would not be scalable so other attributes cannot be added to this relationship (This is how CRM 4.0 works). There are two solutions here in our case. However each should give results explained in image below. Sports association form should have the following section that allows for quick selection of coverage areas (state, counties).

Solution 1:

One solution is to make a custom web page for this entity. In that custom web page one can populate the left side of sandwich control with the all the states and counties. This would mean that there would be two more entities in system namely state and county. States entity would have all the states and county entity would have all the counties. Then for the states and counties associated with Sports Association there should be some way to store that. One could be to store in a hidden field in concatenated form and the other could be to create yet another entity for this. However as important thing to note is that as it’s a custom web form that is used for the custom entity so the solution would be dreadful in terms of performance. Javascript will be employed to fetch these entities and on “Save” button first of all pick up the selected values from the sandwich control and populate hidden field and then save. However this is one solution that can be opted for.

Solution 2:

This is the solution that I would recommend. In this case we don’t need a custom web page. One can use out of the box text areas for sandwich control pane and CRM buttons (blogs for creating custom buttons are available on net). Then we need to create the relationships and also to configure them so they are scalable. So we again create an entity that creates all the states and counties and another additional entity to store relationship between counties and associations.

In my next blog I will give the details on how we implemented solution 2.