Archive for February, 2008

No Version Control? Now what?!

February 27, 2008

Some of the most important aspects of any software implementation are comments/definitions, documentation, and version control. I’m sure we say those are so important because they are often overlooked – they are boring, they are an overhead, they will save your life when you need them.

Most Commercial, off the shelf (COTS) incentive management and ETL solutions will have some form of version control built-in. Sometimes this is a functionality which must be enabled, sometimes “version control” is done via effective dating, and sometimes it can only be performed by a support team. Most applications will also let you export your project files to XML or some other type of file which you can then version control using your corporate application (configuration management).

Why is configuration management so important?
Without going into all the details, configuration management will let you deploy software in a consistent way across your environments (a large implementation will require several distinct environments for different phases of testing and for production). It is important to be able to control your code because it will save you to wonder why the application is working in a test environment and not in production.

Here is something you can do if you need to compare files:
In a previous post I discussed how Textpad could be used to perform vertical selections. This tool will also let you compare two text files, whether they are some SQL DDL files or some project XML files. It is helpful to figure out the difference between two files if they were not versioned.

For this example I created two files called Test1.txt and Test2.txt. In Test2.txt I edited the ID 00005 to 00004 and added row 00077

Test1.txt

Test2.txt

Click on Tools->Compare Files or Press CTRL+F9.

A box asking you for the location of the two files will appear:

You can browse for the location of the first file and of the second file before clicking on “OK”. A result report will be displayed, outlining the differences between each of the files. The following report shows how the file test1.txt has ID 00005 which is not in Test2.txt, and file Test2.txt has IDs 00004 and 00077 which are not in Test1.txt.

I hope this helps, and now you should really consider using a configuration management system.

The Most Important Aspect of a Compensation Plan

February 21, 2008

When I got staffed on my first incentive compensation management system integration project, I knew virtually nothing about that industry. As any good consultant would do, I started to read as much as I could on the topic. One thing I realized is that there are so many books out there talking about how to design plans, formulas, frameworks, etc… But most of these books spend so little time actually discussing how the plan will look like.

That’s probably one of the main reason I come across so many plans that are not completely defined. When I say not “completely define”, I mean that some of its elements are left to interpretation… As a result, the implementers go with that plan, ask countless questions wasting everybody’s time during long meetings, trying to find out who the subject matter expert with a certain piece of knowledge is, only to find out that he or she is on vacation, etc. Alternatively, the consultants could “think” they understand the plan, implement it and later during testing, realize that the results are not those expected by the client… oops! And that often happens around the go-live date and, what-do-you-know, the deadlines are pushed back, the project goes over budget, people are unhappy.

Fortunately, there is one small book called Compensating the Sales Force – A Practical Guide to Designing Winning Sales Compensation Plans by David Cichelli. There is a lot of good info in this book – I will talk about some of it in the future – but in my opinion the best part is only found at the end in Appendix A: Illustrative Sales Compensation Plan. If only all comp plans could look like this!

But that’s not all… The best part of Appendix A is its last few pages; Sales Compensation Plan and Calculation Examples. And THAT’s what I call the most important aspect of a compensation plan (from an implementer’s perspective).

Having a few DETAILED examples in the plan will ensure the implementers knows exactly what the plan does. It will remove any ambiguities, it will save time and be a quick “at a glance” reference. It will also help out in the planning of unit and system tests to cover all scenarios.

A good example will include all the assumptions, sample data/rates/periods/etc and result. If a plan has any exceptions or special calculations, examples for those should be included as well.

That’s it! Please include examples for us 🙂

Harnessing the Power of Incentive Compensation Management

February 20, 2008

Before joining my current company, I was a consultant at Accenture. Accenture is a large “global manaegment consulting, technology services and outsourcing company”. I was in their Business Intelligence practice, where I first got involved with ICM projects.

I recently came across a 3 page article about Accenture’s view and approach to incentive compensation management, and I thought it might be interesting to others.

The paper first gives a quick run-down of what effective incentive compensation can do. The main points are:

• Give companies the fl exibility to respond to rapidly changing
market demands and to quickly implement new sales
strategies and plans.
• Enhance the productivity of the sales force productivity
by increasing their confi dence in the incentive program.
• Support the most effective selling behaviors with leadingedge
technologies and tools.

They claim that their research suggests that a $1 billion business unit could boost their pre-tax profit by $13 million by using better motivational tools and incentives to increase performance of its sales people. That sounds impressive, but that’s really only a 1.3% return – not bad, but very conservative compared to other estimates.

What I like most about the article is its framework to implementing an incentive compensation plan. However, this “framework” is not discussed at all, it is just a picture used as a space filler. The illustrated steps are:

  • Sales Force Design and Objectives Setting
  • Compensation Plan Design
  • Compensation Process Re-engineering
  • Compensation Organization Model Design
  • Compensation Plan and Hierarchies Setup
  • Compensation System Design, Build and Run
  • Enterprise Data and Systems Integration
  • Business Change Management

I’m not sure I understand how Data and Systems Integration can come before the “Run” phase, but it’s a pretty graphic and it gives a good holistic view of building an incentive management system.

ICM World This Week

February 20, 2008

Centive
Centive expanded their executive team with two new executives; Lisa Mastrangelo will be Centive’s CFO and Carol Peo will be VP of engineering.

Xactly
Xactly were named top finalist in the 2008 Codie Awards; an award by the Software and Information Industry Association (SIIA) to recognize “outstanding achievement and vision in the software, digital information and education-technology industries”.

It’s Varicent’s Turn to Report Record Revenues for 2007

February 13, 2008

After finding several articles on how hot the sales performance management industry was in 2007, along with several press releases about how well some of the major SPM vendors were doing, today it is now Varicent’s turn to report triple digit growth in 2007.

2007 has been a record year for Varicent; record-breaking revenues, record growth, record number of new clients…

At the risk of repeating what I said before, 2007 has been a very good year for sales performance management and 2008 looks very promising!

My Compensation Framework

February 12, 2008

I received a few emails with recommendations to improve my blog – I have tried to implement them but however, I must say I ignored one of the most relevent comment I received.

It was recommended to me to try to streamline and “bucketize” my posts. There is so much to talk about, I must admit it could be hard to see the common thread between my posts. Today I finally sat down to think about what exactly I wanted talk in my blog, and came up with this high-level plan:

As you can see, the “niche” I found for this blog is for the following topics: Compensation fundamentals and theory, benefits of incentives and variable compensation, and how incentives can be correlated to performance and motivation. I also want to cover industry news and discuss success stories, write about different hurdles with respect to choosing a solution and implementing it. Finally I will write about some personal experiences and opinions, research done on these topics as well as anything else I find relevant.

I guess the target audience is probably whoever is reading this, most I think this will be most relevant to HR, Sales and Compensation pros or anyone with an interest in variable compensation. IT Pros and other employees may also find this useful…

Let me know what you think. When I get the chance I will reorganize my labels as per those categories I described.

More on Incentive Unexpected Behaviors and Group Competition

February 9, 2008

Paul Hebert posted a great follow up post on his Incentive Intelligence blog regarding group competition. I contributed my own personal story:

Several years ago I was a programmer for a large telecom company. The project manager felt like the development team were not producing enough results and the project faced typical issues – deadlines were missed, the project was lagging, it was over budget… To fix the ‘problem’, a competition was organized. The ‘lines of code’, a typical software metric, were used to determine who was the ‘best’ programmer. This lead to big quality problems as employees were focusing on quantity instead of quality.

Realizing this, the manager decided to tweak the contest rules. The winner would have the best (lines of code) / defect ratio. This helped a bit with the quality, but employees were still focusing on writing code, disregarding some of their other tasks like documentation, mentoring junior employees, trying to fix existing defects, etc. Everyone was also trying to avoid any ‘difficult code’ to reduce the chances of creating defects.

The competition ended up being cancelled…

To this story, Paul answered with a very insightful comment:

… The solution for your project manager should have started with “root causes” not incentives. If he/she had gone through an analysis to find out “why” the problem existed the program could have been designed around that issue. Too often we measure results – not the steps to the results – which is where the issue lies.

Group Competition Incentive Pros and Cons

February 7, 2008

A recent post here highlighted some of the pros and cons of a group competition incentive program. The article pointed to an interesting study which tries to demonstrate how relative rewards play a role in economic motivation.

I responded to the post explaining my reasons for disliking internal competition as a mean to incent employees, including some of the major pitfalls to workforce segmentation for incentive purposes. I also included a reference to a good organizational behavior article from Stanford University, also describing some the risks associated to internal competition.

The pros and cons to internal competition listed by Paul Hebert in his blog were the following:

Pros

  • Fixed (closed budget) – can’t go over budget – the awards are fixed
  • Depending on industry and company culture highlighting standings reports on who’s in which place in each group can create a real up-tick in performance

Cons

  • Depending on performance distribution it could be difficult or impossible to create fair competitive groups
  • There will be losers – people could double their performance but not earn an award since the outcome is a stack ranking of each person’s performance.

To me, the biggest “Con” is that such contests go against the concept of developing the employee’s ability to work cooperatively to reach corporate goals. As a matter of fact, it encourages a culture where employees try to outwit each other and loose sight of who the competition really is.

If the goal is to offer an incentive program on a fixed budget, I suggested some alternatives including:

1) Reward all (or a large group) of employees equally, and/or

2) Use the money to purchase some desirable widgets for everyone, great door prizes for quarterly meetings, and to sponsor milestone team events.

Paul replied to my comment saying that there was still a place for internal competition as a short-term adjunct to an entire reward and recognition strategy. I somewhat agree with that statement, but I think that the potential negative outweighs the positive in most situations.

Fix your Compensation Data in One Click

February 7, 2008

No matter how good and sophisticated an Incentive Compensation Management application we implement, it looks like we always fall back on Excel for something, from data verification and validation to batch order staging.

A few weeks ago, I wrote a quick article on how to use TextPad to make vertical selections. From the comments I received, transforming raw data seems to be a major preoccupation shared by many. Several years ago I created an Excel Macro (a set of instructions to perform some task in Excel) to traverse a speadsheet, validate its data, and transform it into a certain format. Recently I had to dig it up to clean up some mainframe files. Today I modified it and applied it to the Xactly Order Upload Template to demonstrate how macros can be used.

First, download my order upload staging spreadsheet. When you open it, you will see something like the following image plus several columns. The data is intentionally incorrect.

After executing my Macro, the spreadsheet will look like this:


The macro validates one row at the time. When there are anomalies, the cell is highlighted in red. The content of some “incorrect” cells are originally in bold for you to look more closely at what will happen. You will also notice that some data will be corrected.

Here are the actions performed by the macro for each row:
  • First, position the active cell to the first row and check if the mandatory Order Code is present. If this is the case, if it is in the proper format (2 upper-case letters followed by 3 digits in this example).
  • Check if the Item Code is an alphanumerical value (only digits and letters allowed)
  • Verify that the “Quantity” field is not null.
  • Check to see if the “Amount” field only contains an amount (digits, “-” and “.”) – I could write something more complex to make sure I don’t get records like: “22-..2”.
  • Verify that the Unit type is allowed. I hardcoded a check for “USD”.
  • Check that the incentive date is actually in an Excel date format. Remember that it needs to be setup as mm/dd/yyyy for the Xactly upload.
  • Verify that the split amount sums up to 100%. I also make sure that if a 2nd split amount is entered, that the associated second employee ID is entered.
  • Lookup the “Amounts” column again, verify if there are numbers with the minus sign at the end of the number (2.0-), and transform it into the proper format (-2.0). I often get this problem when importing data from raw text files.
  • Finally, verify that the incentive date is unique for every row.

All these steps will only take a few seconds to execute for several hundred rows.

How to Run my Macro

  • Download this spreadsheet to your computer
  • Click on Tools->Macros->Macro (Alt-F8 to be quicker)
  • Select “editFile” (that’s the name of my macro) and click on “Run”
  • Tada! Your errors should now be highlighted in red.
  • Correct the errors, remove the red-fill color and run the macro again if you want to verify your corrections.
How to Modify the Macro
If you are thinking that this spreadsheet is useless for your situation, you are right. The odds for your Order Codes to be exactly in the format xx999 are pretty slim. That’s why I commented the code and made it as clear as possible.

To view the Macro, you only need to click on Tools->Macros->Visual Basic Editor. You will be able to see what code does what by reading my comments. You should be able to easily modify it, even without deep technical skills, and try out your changes. You just need to edit the code, save it, click on your spreadsheet, and run the new macro (Alt-F8). If you break it, you can re-download it.

In a few cases I use regular expressions (regex), which can be a bit complicated and tricky. Fortunatly they are popular and you may be able to find one online that does exactly what you want. If you are curious and want to learn more about regex, this website is a good place to get started.

I hope this example will be useful, and I will be glad to answer your specific questions if you have any.

SAS70 Audit for On-Demand Sales Performance Applications

February 5, 2008

There are tons of resources about SAS70 and Sarbanes-Oxley on the web.

In a nutshell, SAS 70 is a Statement on Auditing Standards (SAS) for service organizations, developed by the American Institute of Certified Public Accountants (AICPA). It demonstrates that a firm has proper controls and processes to protect the data belonging to their customers (very important!). The SAS 70 report is issued by an independent auditing firm and includes the auditor’s opinion on the service organization’s controls. A SAS 70 report is particularly important since it is the preferred method of providing assurance for service organization clients subject to Sarbanes-Oxley Section 404.

These days, service organizations enjoy talking about their Type I and Type II SAS 70 reports when it comes to marketing their applications. A type I report includes the auditor’s opinion regarding to which extent the organization represents its controls, and their description. A type II report includes all the info in the type I report, plus the auditor’s opinion on how effective the controls are during a defined period.

This being said, according to the SAS 70 website and other online resources, “SAS 70 does not specify a pre-determined set of control objectives or control activities that service organizations must achieve”. This means that customers need to review the disclosed controls and ensure they are sufficient to meet their objectives and their own auditor’s requirements. It also means that a SAS 70 report does not guarantee data security.

More detailed information about SAS70 can be found on the SAS 70 website, on Wikipedia and from Deloitte.

How do Sales Performance Management Systems Stack Up?
As I mentioned above, since SAS 70 does not prescribe which controls should be used, it is not possible to compare SPM / EIM vendors. However I tried to find as much information as possible with respect to SAS 70 certification for every vendor.

Callidus

SAS 70 Type: “Meets SAS-70 compliance”
Controls: N/A
Sources: Link 1
Comments:

Centive

SAS 70 Type: Type II
Controls: N/A
Sources: Link 1
Comments: Completed January 2008

EIM Software

SAS 70 Type: “Guaranteed SAS-70 compliance”
Controls: N/A
Sources: Link 1
Comments:

SalesForce.com

SAS 70 Type: Type II
Controls: N/A
Sources: Link 1
Comments: The article dates from 2004

Synygy

SAS 70 Type: “Completed SAS Audit”
Controls: N/A
Sources: Link 1
Comments:

Varicent

SAS 70 Type: N/A
Controls: N/A
Sources: Link 1
Comments: SAS70 Type II data center

Xactly

SAS 70 Type: Type I
Controls: Full redundancy throughout the production infrastructure, regular security patch updates, on-going evaluation of potential security threats
Sources: Link 1 Link 2
Comments: SAS70 Type II data center