Posted tagged ‘migrations’

Pricing the Unknown

February 21, 2014

• How much will it cost to migrate from our legacy system to a cloud solution?
• How much will it cost to outsource all our current capture operations?
• How much will it cost to transition our capture services to your imaging center and utilize OCR?
• How much will it cost to consolidate our various content repositories to one ECM platform?
• How much will it cost to seamlessly integrate your workflow into our ERP?
• How much will it cost to upgrade our BPM system?

I always sigh when posed with these types of questions and unfortunately it is something in the consultancy world that you are frequently presented with. I like and dislike these questions. In some respects it means our pitch, our services or our solution interests the client and there is opportunity to further the sales process. At the same time it is so difficult to put an accurate figure on such high level questions especially when you don’t know the client’s systems, technology, operations and integration points. Generally, these questions come from CFOs, CIOs, Strategic Sourcing, Procurement or VPs of Operations who are all seeking to make cost savings. The reality being that there isn’t one person in the company who has the complete understanding of the current state and all the costs associated so how can an outsider provide a figure?

Generally, there is a three (3) step approach to tackling this type of high-level pricing queries.

1.) Discovery Services
I was like to lead with suggesting a deep dive analysis which can be a number of days or even weeks depending on the company size, number of sites, complexity and system integration. Sometimes client’s understand this and willing to pay several thousand dollars to perform such an analysis as they understand they don’t know everything so how can we ask someone else to price it. They also realize that they get a more accurate figure as opposed to a high-level guestimate.
However, it is often the case that the client doesn’t want to make that initial investment as they are just seeking to understand if it something they want or can afford to do. They may never progress the work so why pay to investigate it. At this stage I get some what wary but often try to encourage the discovery services based on providing an accurate project plan, tasks, schedule and pricing. It also helps to ‘sweeten’ this idea by suggesting to discount the discovery services cost from the implementation cost if they decide to progress.

2.) ROI Model
What happens if the Discovery Services costs aren’t favorable to the client? As a next step I turn to an ROI model. If the client can supply what it costs to run the current services and we have an idea on how much it will cost to run the future services then an ROI model can be developed.
At this point there is some onus on the client to provide figures and if they are really keen to investigate and potential engage your services then they will take the time to compile the necessary figures. Therefore if we have the current and we know what the potential future figure may look like then we can estimate the potential monthly savings. We still don’t know the total transition cost but because we have before and after costs we can make assumptions on the transition costs and run various iterations to determine the payback timings.
Eg,

  • Current = $30K / month
  • Future = $20K / month
  • Savings = 10K / month
  • Transition scenarios = $5K , $10K, $20K

ROI Models:

  • $5K Transition scenario

Month 1 = $25K Savings $5K (Immediate payback)

  • $10K Transition scenario

Month 1 = $30K Savings $0K
Month 2 = $20K Savings $10K (2 month payback)

  • $20K Transition scenario

Month 1 = $40K Savings -$10K
Month 2 = $20K Savings $0K
Month 3 = 20K Savings $10K (3 month payback)

A simple example but you get the concept.

3.) Pricing Estimate
Inevitably, there are clients that insist on a pricing estimate for the transition, migration, implementation or upgrade that won’t see the value in the discovery services and won’t have time to collaborate on an ROI model.
Therefore if the opportunity has been qualified and is worth it we begin a high-level estimate exercise making a lot of high-level assumptions. This in itself can be an art and I believe those with a project management experience in the similar engagements can assist in breaking down all the high-level task into a low-level and begin to put an estimated number of man days beside each task.
Bucketing the overall project into phases is the first step. Eg, Implementation/setup platform
Then the transition work should be broke down into those low hanging fruits followed by rollout in manageable chunks. Each of these buckets should then have the typical deployment life cycle applied to them: Data Gather, Solutioning, Implementation, Testing, Go-Live.
This framework gives you the ability to define the lower level tasks and place estimates beside them. This should be a group effort including the relevant SMEs for implementation, migrations, imaging, testing ..etc.. This will help get a more accurate final figure. Once all is said and done and we have our estimate I usual safeguard this with a +/- 30% variance.

Summary:
We have covered an overall approach to pricing the unknown and then if forced into a figure how this maybe broken down by man days into the various phases and steps to get an estimate.
People or Sales become very focused on the figure which isn’t a bad thing as they should feed into discussion despite being low level they know the client better than anyone and hence should help guide the figure from their coaching or from the expectations shared by the client. The key thing for me is that at these early stages we are just trying to further the sales process so the figure we provide is only an estimate (big disclaimer required). In many instances the client is just seeking to understand if this work is $2 million or $20 million and when they will get their return. By socializing the Budgetary Planning Estimate (BPE) with the client further and by reducing a day rate or increasing the estimated variance we can generally achieve a figure that allows the sales process to progress to the next step and hopefully a successful contract execution.

ICC Lists: Importing existing lists

October 6, 2013

It can be time consuming in IBM Configuration Manager to add value after value to a list. The great news is that there is an easy way to import your lists from system CSV exports or spreadsheets. All we need to do is generate an XML file similar to the following format for all the values and hey presto Bob’s your Uncle!

<valueList>

<value sortIndex=”3″>

<!–[CDATA[value3]]>

<!–[CDATA[This is the third item in the list.]]>

<!–[CDATA[3]]>

</value>

<value sortIndex=”1″>

<!–[CDATA[value0]]>

<!–[CDATA[This is the first item in the list.]]>

<!–[CDATA[0]]>

</value>

<value sortIndex=”2″>

<!–[CDATA[value2]]>

<!–[CDATA[This is the second item in the list.]]>

<!–[CDATA[2]]>

</value>

</valueList>

More details can be found in the IBM Content Collector v3 Infocenter

Below is a short video to demonstrate the steps required.

The power of ICC Lists and Regular Expressions!

October 6, 2013

IBM Content Collector has had the Lists feature from it’s early versions. It provides the ability from a task route to lookup a value in the List specified and on a match then return the corresponding result. This functionality can be applied to a decision point were a rule can be ran against the list or it can be applied to the property of a new document.

Lists

More can be found here in the IBM Content Collector Infocenter.

To add more power to this feature there is the ability to apply regular expressions meaning that your lookup Lists can be dynamic. Rather than listing all the possibilities a single regular expression can be substituted to achieve a more flexible and dynamic lookup.

Below is an example of how to build regular expressions into your List lookup:

– Previously, we saw how to add a dynamic metadata lookup to setting a property value:

dynamiclookup

– If we turn our attention to the Lists section in ICC Configuration Manager

lsits

– We can add new entry as shown

joint

– To explain the regular expression we are reading a string that is being passed in – for example a folder structure in a shared mailbox

^ = signifies the start of the full string

$ = symbolizes the end of the full string

.* = any number and type of characters

\\ = represents a back slash or in our case a new folder

E = End of the fixed string

Out fixed string is “\Joint Mortgage Agreement\”

We can see the return value below as “Joint” – this could be passed to a rule or be used to set a property. The only limitation I have come across is it can’t be passed from setting a property value to a rule – it is either one or the other.

– But what happens if different people have named the folders differently over time?

Eg, Joint Mortgage Application or Joint Application or Joint Mortgage or Joint Applications or Joint Mortgages

Never mind all the types that can occur in older systems that don’t have mandatory fields or drop downs set for Document Categories.

We can make the foregoing more generic to ensure a higher match rate by doing the following:

lists2

– By adding our /* we have catered for all the possible variations of folder or category name. Not full proof but it should catch the majority.

So the key takeaway is that Lists are very powerful but by adding regular expressions into your list lookup values you can add even more flexibility – so don’t think of your list as purely static values (although they can be used for this).

To give an indication of the overhead, I have ran up to 6 list lookups when setting document properties with up to 5000 regex values in the lists with little impact to performance.

Finally, I would like to thank Dan Small from IBM for all his help on this and hopefully I won’t forget all my regular expressions in the next few weeks! 🙂

Making the switch from navigating to searching with help from ICC and Regex.

September 29, 2013

Many companies are still making that transition from shared drives (who has never had a S:\ or H:\drive!?!?!?) to Document Management System (DMS) or full blown Enterprise Content Management (ECM) systems. There are many reasons for making the switch from overloaded hardware to new business demands but a key point in many of these systems is how the end user uses the system.

Lots of shared network drives are a prime example of content chaos with no naming or folder standardization and users left to create their own folders. However, some more well thought out network shares have a semi-structured foldering system with maybe  a base template of a folder structured which is copied and pasted for new projects, claims, matters or applications.

filesystem

 

Whatever the structure or lack of it on a shared file system it is generally a case of users having to browse for the content they are after. What happens if you can’t find that vital document you worked on 3 months ago? You always have the option to search but then you are presented with the dozens if not hundreds of hits the full text search brings back. I think of this type of use case as discovery – users are having to discover what they are looking for rather than being able to pinpoint it straight away. More on this topic here at a previous post: Difference between search and discovery.

With this in mind it is important for our end users to realize that any migration to a new DMS or ECM system demands a different way of working – hopefully a smarter and more efficient way of working. Although, sometimes DMS or ECM system are implemented badly and mimic the folder browsing approach which seems crazy in today’s world with the content explosion. Saying that I am sure there are cases for the old style folder browsing such as case management solutions that have adhoc document collections.

We have established the source system disadvantages, the benefits are new target system will bring and determined that we have a semi-structured foldering system which could be used to place some categorization and property values to our content in the new system. Up steps IBM Content Collector (ICC)!

I am no expert with ICC but I love it’s module design and flexibility it provides for ingesting content from a variety of sources to a repository. You don’t need to be a programming genius to achieve some great results but how do we determine index information based on folder names in document file paths? In short we are looking for patterns in a string and what better way that using Regular Expressions….groan I hear you sigh! I was never a fan of Regular Expressions mainly because it looked like hieroglyphics however after spending sometime on a number of projects and getting into the weeds I have changed my mind and realize how powerful they can be. Saying that I will likely forget everything I have learnt in a couple of months.

Below is a screenshot of how to build Regular Expressions into your ICC Task Route. I haven’t detailed the Regular Expressions used as that is a topic all on its own but will post again on typical expressions and how they can be combined with ICC Lists to provide some powerful lookups.

regex