Archive for the ‘Implementation’ Category

EIM Solution Maintainability – Should you care about this?

June 11, 2008

People often consider buying an Enterprise Incentive Management (EIM) solution based on several criteria including cost, performance, ease of implementation, support, etc. One factor that if often overlooked in my opinion is the system’s maintainability.

What is Maintainability?
ISO 9126 defines maintainability as the ease with which a software product can be modified in order to:

  • correct defects
  • meet new requirements
  • make future maintenance easier, or
  • cope with a changed environment

Why is Maintainability important?

The ability to modify a software system is obviously important for any type of system, but it is particularly important for an EIM solution. Why? Because compensation plans, organizational data, quotas, etc typically change at least once a year. Modifying this information is not a task equally easy to perform in all software packages.

How to find out if a EIM solution is maintainable?

Any vendor will say their solution is maintainable… only an opinion from an unbiased person with experience implementing the particular EIM solution will be able to give a true account of how easy it is to maintain the application.

Effective dating plays a big role in maintainability. Being able to modify the information at anytime, but with changes effective only at a certain date, is critical to maintain a system.

Another key aspect of maintainability to consider the impact of year end on the plans. Some of the important information to find out is:

  • Are the plans still going to work at year end?
  • If plans need to be modified, how big of a change is it?
  • How easy is it to modify the quotas?
  • What about the rate / lookup tables?
  • If formulas are embeded within the tables, do those need to be modified as well?
  • How easy is it to move people in different positions?
  • What do I do when people leave the company?

It is not atypical to see a somewhat complex logic which could be impacted by a simple change. For example, a formula referencing a table which contains another formula pointing to a quota. If the quota values can just be updated, it’s not a big deal. If a new quota needs to be created, then the formula will also need to be updated to reflect the new quota.

Another example is when an EIM solution needs to be able to handle last year’s orders at last year’s rates. Depending on the system, this could mean creating new rules, new formulas, new tables, new quotas, etc.

It may not all be about the Product

Implementing a software package is a bit like custom development. A quality architecture results in the possibility to re-use components. Some programming languages are easier to maintain than others; as we discussed, the same goes for EIM solutions. However, no matter how good a programming language, a bad programmer can make the maintenance a nightmare. A bad EIM implementation team can also make the system’s maintenance very hard, no matter how good the product is.

The bottom line:

Finding out the details about how maintainable an EIM solution is, is as important as finding out other characteristics such as how easy it is to implement it. You do not want to have to re-implement every plan every year; not only because it is time consuming, but also because major changes imply bigger risks.

The first part of the battle is to select an EIM solution which will make maintenance as painless as possible, but the battle is not won until the solution has been implemented properly.

SPM Testing Template – Part 5

May 23, 2008

Incentive Compensation Management test results can be recorded in several ways. One of the approach I like to use groups all plan names, rule names, conditions, expected results and testing status on the same spreadsheet. I find that by keeping all this information together, it is easier to quickly get the picture of the overall testing progress. It also allows to keep all the information on the same spreadsheet instead of having to maintain 2 spreadsheets with identical information.

Here is an example to get started:

[download the spreadsheet]

Other benefits of using an Excel spreadsheet to record test results instead of a Word document include:

  • Ability to quickly highlight failing tests in red
  • Ability to filter information displayed (e.g. display only failing tests)
  • Test results can be printed on fewer pages
  • Ability to create macros to perform more “fancy” features such as displaying the number of days a certain issue has been opened.

Other columns could be added to add additional information such as the date at which the test was performed, the name of the tester, how critical the test is, the actual result when different from the expected result, and comments.

ICM Testing – Reviewing Results – Part 4

May 20, 2008

When test scenarios for an SPM application are defined properly, reviewing the results should be straightforward. However because of the volume of results typically generated, finding the correct result can be a very time consuming process without the proper skills (finding output of rule A in the 1 million results generated can be like looking for a needle in a hay stack, except that during testing, there are several needles that need to be found!).

Every ICM application I have implemented offer an interface to browse through the results. This is usually a GREAT tool to troubleshoot and to resolve issues, but it’s rarely the best and quickest tool to analyze results in bulk. Fortunately, every ICM application I have seen also have a functionality to export the results. Exporting the results will create a file locally which can then be opened by a program such as Excel or Access for further analysis. I will discuss how to use Excel to review the results, and later I will create another quick tutorial on using Access.

Step 1) Export the Results from your ICM System
Every system has its own way of doing this, but generally this should be doable from the interface and not requiring a database administrator to pull the data from the database (although this can also be done if required).

Step 2) Import the Data in Excel
First, open Excel and click on File->Open. Click on the dropdown menu beside “Files of type” and click on “All Files”.
Find the location where you saved the exported file of step 1 and click on “Open”.

If the file is a .CSV file, Excel will automatically place the data in columns. If the file is a .TXT file, more steps are required (see step 3).

Step 3: Opening a Delimited Text File in Excel
In the first Wizard step, choose “Delimited” and click on “Next”. In Step 2, select the character used to delimit each column (Xactly uses semi-colons). Click “Next” twice and the data will be imported in columns.


Step 4: Filtering the Result Data
At this point we have a worksheet with all of our result set displayed. Each of the column can be sorted and the search feature can be used to quickly find a specific order. However there is another trick which allows to quickly display data for a specific rule, result name, person, date, etc.

Click on Date->Filter->AutoFilter

This will make the first row (usually column names) dropdown menus which will contain all the values contained within the column. In the example below, the drop-down for column “Currency” allows to choose “USD” and “YEN”. Choosing USD will filter out all the other currency types.

Filtering can be done in this manner for multiple columns at the same time. For example you could filter a certain position (Julien Dionne), and further filter to display only the USD currency.

Quick Summation
Summing credit and commission amounts is one of the most frequent activity I perform when testing.

Excel has a built in feature which allows to quickly find out the sum of selected cells. By simply highlighting the cells containing a number or a dollar amount, the total value of these cells will be displayed in the bottom-right corner of the window.

Additional Notes

Excel offers more advanced functionalities such as Pivot Tables. They can be useful when reviewing a large volume of results. I will discuss this in more details in the future.

Excel Limitations

Excel cannot have more than 65536 rows. If the result set exceeds this, it will not get imported. It is possible to “workaround” this issue by only importing a subset of data (maybe by restricting the incentive period). MS Access could also be used instead of Excel and would not be subject to this limit. I will discuss using Access to review results in the near future.

Ready… Set… Go-Live!

April 15, 2008

Before an ICM implementation can be deployed, there are a number of things that need to be done. “Go-Live” refers to an implementation being transitioned from being developed and tested, to being used in production. An application that is “in production” means that it is now used with real data, to pay real people, and bugs, errors and overpayments are not an option.

Meeting the go-live date when building an ICM solution is particularly important because those dates are often related to pay-roll cycles and are often less flexible than other type of systems.
With tight deadlines and little tolerance for mistakes, go-lives are the most stressful moment for anyone involved on the project. No matter how good the relationship with the client and how well the implementation went, if go-live is not successful, executives can get bitter, people can get fired, and all the hard work put in the project can be forgotten.

Implementing different applications require different steps to go live. An on-premise application will have more steps such as migrating the application from the development hardware onto the production hardware and making sure this hardware conforms to the development/test environment. For a SaaS solution there are less steps, migration is usually easier and there is no need to worry about hardware.

What is most stressful for a consultant during the go-live phase is that it’s the ultimate milestone; the system must be rolled-out, and the implementation must be completed and functional. The User Acceptance Test (UAT) must be performed on the system and signed-off. UAT is essential to capture the client’s agreement that the implementation performs as desired.
With all that is involved in the go-live phase, consultants will work 80-100 hours a week to make it happen; it’s “crunch-time”!

Here are a few ideas of items to include on your ICM go-live check list:

  • Setup and test all relevant hardware (if on-premise)
  • Ensure updated documentation exists and that users are trained.
  • Ensure a roll-back strategy is in place in case there is a ‘show stopper’
  • Ensure vendors and consultants are available during go-live period
  • Backup any existing configuration
  • Install, test and configure all required software, including the creation of a production database
  • Migrate all reference data such as order types, credit types, calendars, business groups, users, rolls, etc.
  • Migrate all organization data such as positions, titles, hierarchy, territories, customers, relationships, etc.
  • Migrate all plan artifacts such as plans, rules, formulas, tables, quotas, etc.
  • Migrate any other objects such as reports, draws, documents.
  • Ensure any script or data integration items are migrated / updated to reflect the environment change
  • Migrate all the required data to the new database
  • Test new system rigorously
  • Obtain sign-off on results (same results as user testing)

I haven’t written on my blog in the past 2 weeks because I am just in the process of going live with 2 projects at the same time, for 2 different clients. Please be patient, I will start writing again soon.