CRM Implementation through Agile Technology

Following the traditional norms of a Waterfall model when there are multiple projects lying in the queue, creates bottlenecks for team members at almost every position at some point in time in every organization. It, generally, creates large (or larger) backlogs which managers are unable to keep up with, beyond a certain range.
Practically, when business requirements for any project keep evolving (read changing), during and after the requirement gathering and development phases, holding onto one particular process with the hope of a happy ending to a project doesn’t generally, bring much fruition for a team or company/project. Most projects face incremental requirements irrespective of how much ever perfection might have been achieved in the requirement analysis phase.
We have been implementing CRM systems for some time now, including Dynamics CRM.
A global requirement of the users of a CRM application has been dynamism which demands easy and quick deployment of new functionalities to existing systems. This can be achieved either by deploying unstable new functionalities thus diminishing the credibility of the application and the company catering to it (too big a risk for us) OR being equipped to absorb such demands and deliver them in the least possible time frame with the best possible quality, thus picking on Agile Technologies.
Apart from standalone CRM systems, a common demand amongst many industries has often been a tool which integrates CRM with a system already in use. Examples could be the integration of CRM with accounting systems (like Visma) or resource management system. Generally, such projects bring along issues pertaining to data correctness, performance, and usability which the user mostly cannot foresee during placing an order or requirement gathering phase; again, causing a need for a flexible methodology.
Multiple projects have been implemented by us where iterative development was a requirement due to progressive solution evolvements. Under such circumstances, although it was tough for us to follow any defined software model we also realized that not following any process could lead to harmful consequences like poor quality and service and inefficient resource usage. Therefore, adding tailored-flexibility to traditional processes through XP Agile practices could ensure improved system quality and responsiveness. Amongst the defining characteristics of XP, the ones which we have extensively used are frequent releases in short cycles, simplicity and clarity in code, and frequent communication with a client.
The point here is that while turning to Agile Technologies like Scrum, DSDM and XP etc can be beneficial to an organization as they release it from following one single methodology under every circumstance, an agile technology definitely does not refer to what is known as ‘cowboy coding’. Rather, they are modified processes (and not ‘No Processes’) which one can choose to profitably follow only on meeting certain conditional parameters like resources available and the number of projects etc.

AAPT India Website Developed in SharePoint is Live Now

IOTAP has been developing a SharePoint based website for AAPT India. The website acts as an information source about AAPT and the range of services they offer.  Development was completed last week and the site went live.

Testing Enhancement for Existing Feature, New Requirements & Resolved Issues

I have been asked this question a long back by one of my internet friend that he needs to test 3 different things in the next release i.e
·         Enhancement for already existing feature
·         New requirements
·         Resolved issues.
So how should I proceed to test & what should be the order to test everything?
This is a good question & I think in the current agile word of software development it happens.
I would suggest that in this situation, there should be a risk assessment considering the time frame you have, for the next release & then take decisions that what to do a test first.
Ideal order in my view for the above scenario will be, to test the new requirements first followed by testing the enhancements for an already existing feature in project/module & then finally doing regression test to verify the resolved issues & stability of the application.
The order that is taken above will depend on the risks and time frame available.
I hope this would help in taking the decision in the scenario explained above.
Happy Testing,
Javed Nehal

Improve Performance of SharePoint Internet Sites

Faster loading websites are the need of the day as even a minor delay in the website response could cause frustration on the visitors part. Faster websites lead to happy users which in turn lead to increased business. A study by Google reveals that visitors spend less time on websites that are slow.

With our experience in building internet websites with Sharepoint, we have acquired knowledge of several techniques that will greatly improve the website performance. Some of the techniques are listed below

1. Setup compression at web server level

2. Setup caching at web server level

3. Remove Core.js and other scripts that are used internally Sharepoint but required for anonymous users

4. Remove unwanted styles and markups from Sharepoint master page

5. Remove unwanted images

6. Minify Javascript files and style sheets

7. Use CSS sprites

8. Remove unwanted web parts

After applying the performance enhancement techniques the speed of Sharepoint internet websites has increased drastically. If you want IOTAP to help you with improving your Sharepoint website performance drop in an email to [email protected] Portal Developed in SharePoint Went Live

IOTAP has been developing a Sharepoint based economic portal called ti Corridors. This portal focuses on providing a comprehensive analysis of the existing and projected economic activity between two nations. Our development was completed last week and the site went live. Check out the site from

Getting Rid of The Server Returned a Non-Specific Error in SharePoint Designer

Every SharePoint developer who has worked with extensively with data view web part in SharePoint Designer would have encountered the below misleading error at least once

“The server returned a non-specific error when trying to get data from the data source. Check the format and content of your query and try again. If the problem persists, contact the server administrator.”

There are several solutions out there in the web for this error like the ones listed below but none of them are sure shot fixes

After having tried out several solutions with no luck we tried to copy the data source from a newly created data view and replace the data source in the erroneous data view. Gotcha this worked.  Below are the steps we did,

1. Create a new page in SharePoint designer.

2. Add a data view web part to the new page and set the data source as the same list or library that the erroneous data view uses.

3. Switch to the code view.

3. Open the page with the erroneous data view in code view mode.

4. Copy the data source element from the data view in new page

5. Replace the data source element of the erroneous data view with the copied data source element

Productizing Add-ons and Solutions for Dynamics CRM.

We at IOTAP have worked with numerous Software Solution Providers and ISVs. Our work involves the development of software solution ideas developed by clients and productizing them.

We’ve used this plethora of knowledge to deploy and create installation files for add-ons and solutions created in Dynamics CRM and Sharepoint.

In a recent assignment, our team was repeatedly asked to help in building and deploying a CRM solution that would help our clients to sell using the internet. The problems in doing so are apparent,

1. Once the product is downloaded people could reverse engineer and build the same functionality with some modifications to exploit the copyright patent laws.

2. Once a product is sold, the buyers need to be informed periodically when there is a version upgrade or a enhancement has been released by the vendor.

We looked at and evaluated many different approaches to overcome the problems mentioned above, and finally were able to build a strong solution to help our clients sell with some sort of assurance. We used a combination of two technologies mentioned in detail below

ClickOnce ( ClickOnce is a Microsoft technology that lets you easily deploy your Windows application, whether it’s a Windows Form or Windows Presentation Foundation (WPF) application, via a web page. Applications deployed in this manner are sometimes called smart clients. This application is installed within a sandbox on the client machine and has fewer rights than a normally installed application. One limitation is that the application has no access to local files. It is not installed in the Program Files folder but in the private folder of the user that installs the application. The advantage of ClickOnce deployment is that whenever a new version of the application is available on the Web site, the user can decide whether or not to install the upgrade. This approach can be easily incorporated it into your CI process and make the new version available after every check-in.

Obfuscated ( Obfuscated code is a source or machine code that has been made difficult to understand. Programmers may deliberately obfuscate code to conceal its purpose or its logic to prevent tampering, deter reverse engineering or as a puzzle or recreational challenge for readers. It is a form of security through obscurity. Programs are known as obfuscators transform readable code into obfuscated code using various techniques that might induce anti-debugging, anti-decompilation, and anti-disassembly mechanism. Code obfuscation is different in essence from hardware obfuscation, where the description and/or structure of a circuit are modified to hide its functionality.

We were one of the first to use both these technologies to achieve the desired functionality for clients, just another piece of innovation in the quest to help our clients in productizing solutions. To understand more about this please send us an email at [email protected].

Invalid Argument Error – CRM 4.0

There are a couple of scenarios, which could generate the above error
When you create a new record or open an existing record in Microsoft Dynamics CRM 4.0

When you create a new record that contains a date of January 1 in Microsoft Dynamics CRM 4.0, you receive the following error
Invalid Argument
Error code: 0x80040203

This problem also occurs if you open an existing record that contains a date of January 1 after you update from Microsoft Dynamics CRM 3.0 to Microsoft Dynamics CRM 4.0.
The error message might resembles like the one below
Crm Exception: Message: GetDaylightChanges actual year: 2005,
MinValue.Year: 2006, MaxValue.Year: 9999, ErrorCode: -2147220989,
InnerException: System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
Parameter name: GetDaylightChanges actual year: 2005,
MinValue.Year: 2006, MaxValue.Year: 9999
View the Resolution at

When you import customizations in Microsoft Dynamics CRM 4.0
Here one might come across an error like “Failure: bulkoperation: Invalid Argument”
This problem occurs if you import customizations from a server that has been upgraded to Microsoft Dynamics CRM 4.0 from Microsoft Dynamics CRM 3.0.
View the Resolution at

Apart from the above, you might also come across an error like “Failure:: Invalid Argument”
This usually occurs when you try to import a customization file which was exported from a CRM server, which had some unpublished customizations

The Suggested approach would be to search for the relationship name in the customization XML file and find the 2 related entities involved in the relationship. Publish these 2 entities OR  all the entities (preferable) on the source CRM Server and Export them again. That should fix the issue.

If the issue remains consider editing the customization XML file directly. Search for the relationship name in the customization XML file. You will come across a node like the one below in this errorous relationship node.

You will notice that the ‘displaynames’ node is empty. You can try replacing this node with the one below

Make sure you use the appropriate language code based on your CRM deployment.
Try importing this file.

CRM Integration With Intelligent Email Marketing Tools

The problem that the marketing team was facing was one of not understanding the potency of their campaigns which were being launched using data in Dynamics CRM. The marketing team was fluent in creating a campaign with a strong message and using the Microsoft Dynamics CRM marketing module to launch large campaigns but the team lacked information about prospective clients – was the email content making a strong enough business case for the target audience at prospective clients.

We evaluated many email marketing solutions which could be integrated with Microsoft CRM,

1. Vertical Response  (Vertical Response)

2. Eloqua (Eloqua)

3. Acxiom  (Impact X)

4. Emailvision (Campaign Commander)

5. ExactTarget (Exact Target)

Although all of these companies have strong products and services, based on the customer requirements and discussions with decision makers at the client organization we used Vertical Response to increase the functionality of the marketing Module in the Dynamics CRM.   The consultative approach from IOTAP helped identify that the organization was looking for some insights into what the target audience was doing with the emails. The integration with the third party provider – Vertical Response was based on time and optimum utilization of financial resources for the client organizations using Dynamics CRM which helped in developing analytics related to campaign analytics.

The ability to launch a Vertical Response Campaign from within Dynamics CRM User Interface helped the marketing team track the results of the campaign and tweak campaigns for better results.

1. A new campaign is created based on the option selected in the Microsoft Dynamics CRM User Interface.

2. A marketing list is created based on the records selected in the CRM grid.

3. This list generated is attached to the appropriate campaign in  CRM.

4. A campaign activity of type ‘Email’ is created, however, the emails are not actually sent from CRM but the Vertical Response interface.

5. Five days after the launch of the campaign a workflow is triggered to track the responses received using the functionality available in the Vertical Response.

6. A campaign response activity is created in Dynamics CRM for every response received in Vertical Response.

The integration was completed in three weeks and with an additional week spent in developing familiarity with the Vertical Response product, the customer was able to go live with this solution in just 4 weeks. The IOTAP team has worked on numerous integrations and has developed a proprietary integration tool which helps in integrating Microsoft Dynamics CRM with other critical applications like accounting/financial systems and ERP Software. We have found many clients use integrations to increase the richness of data as well as the functionality available in Microsoft Dynamics CRM application to increase productivity and contributions. To read more about one-way integration with applications and overcoming pitfalls please visit


For more information on this please send us an email at [email protected].

Could Not Connect to MICROSOFT##SSEE (SharePoint Windows Internal Database)

If you get the following error message in SQL Management studio while accessing your SharePoint windows internal database, follow-up the solution steps

An error occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that
under the default settings, SQL Server does not allow remote connections.

Solution steps:

1. open the SQL server configuration manager and right click the “ protocols for Microsoft##SSEE” under SQL Server Network Configuration, Select properties then Change the “Hide Instance” status NO and click ok to close.

2. Confirmed the TCP Protocol is enabled and restart the SQL service instance.

3. Open the SQL server surface Area configuration, Click Surface configuration for Services and Connections and confirmed remote connection status to using TCP/IP protocols under the MICROSOFT##SSEE Instance.

Written by