Usability - Productivity - Business - The web - Singapore & Twins

Agile Outsourcing

The problem

Outsourcing is a "special" animal. Typically the idea is to save cost by letting a service provider execute work. The saving cost happens because the service provider is supposed to be able to perform this actions at scale. Increasingly outsourcing deals are motivated by a skill squeeze. So instead of maintaining in-house expertise, rely on the vendors to keep the light on.
This is where the trouble starts. Negotiations on outsourcing contracts revolves around price (drive it down) and the SLA (add as many 9 behind the comma as possible). The single outcome of such contracts is extreme risk aversion. For illustration here is the impact of SLA levels :
SLA Total annual Downtime
98% 7 days, 6h, 12min
99% 3 days, 15h, 36min
99.9% 8h, 45min, 36sec
99.99% 52min, 34sec
99.999% 5min, 16sec
99.9999% 32 sec
The fixation on SLA has a clinical term: OCD. Any change is considered as dangerous as someone holding a knife at your throat and asked you to dance.
Looking at some of the figures (I can't share) I would claim that short of highly parallel (and expensive) transaction system anything above 99.9% is wishful thinking. That doesn't deter negotiators to aim for a "look how many 9th I got" trophy. (While the Buddha reminds us: one cause of suffering is to close your eyes to reality). Expensive SLA violation clauses let outsourcers freeze all system, since any change (read: patches, upgrades, enhancements) is rightly identified as grave risk (to the profits).
So all sorts of processes and checks get implemented to vet any change request and in practise avoid them.
This usually leads to a lot of bureaucracy and glacial progress. As a result discontent, especially on the use of non-transactional system grows: Stuff like outdated eMail clients, lack of mobile support etc. etc.
The relation between oursourcer and oursourcee grows, inevitably, challenging over time. Does it have to be that way?

Some fresh thinking

Just move to cloud might not be the answer (or everybody would be there, it's such a nice place). So what could be done? Here are some thoughts:
  • Kiss goodby the wholesale SLA agreement. Classify systems based on business impact. A booking system for an airline surly deserves three nines (I doubt that four would make sense), while a website can live with one nine (as long as it distributed over the year)
  • Take a page from the PaaS offerings: each element of the environment has a measurement and a price. So the outsourcing provider can offer ala card services instead of freezing the environment. A catalogue entry could be "Running a current and patched DB/2", another entry could be "Run a legacy IIS, version xx"
  • Customer and provider would agree on an annual catalogue value, based on the starting environment and any known plan at the time
  • The catalogue would allow to decommission unneeded system and replace them with successors without much hassle (out with PHP, in with node.js)
  • Automate, Automate, Automate - An outsourcer without DevOps (Puppet, Chef and tight monitoring) didn't get the 2017 message
  • Transparency: Running systems over processes, Customer satisfaction over unrealistic SLA, Automation over documentation (I hear the howling), Repeatable procedures over locked down environments
What do you think?

Posted by on 08 February 2017 | Comments (3) | categories: Software


  1. posted by Paul Withers on Wednesday 08 February 2017 AD:

    I suspect there is a big difference between visible price and actual cost. For example, the service itself may be cheaper. But how often do businesses factor in the cost of time identifying requirements, seeking quotes, identifying a preferred supplier, arranging things like contracts. Up front costs are probably ignored by many, because it's hidden in an existing person's salary. Worse still is if that work is outsourced to a consultant! Then there's the cost of transferring to the new supplier. Even after that there's also the post-go-live cost if support is needed and sub-optimal. The service may be up (or up for enough so the sales guys can justify the "9s"), but if someone's fighting to get support responses, that's a cost too, again hidden. And if support issues mean choosing a new supplier...

  2. posted by Stephan H Wissel on Wednesday 15 February 2017 AD:

    Thomas, I advocate against "wholesale" SLA. So instead of defining ONE (wholesale) SLA for an entire contract, the availability needs to be defined based on criticality of systems.

    The tighter the SLA, the less likely any progress will be.

    For current software: the argument against it sounds hollow. All cloud providers manage to offer that at a fixed price, the outsourcers need to catch up here.

    We have 30 years of data, so our advanced analytics should be able to provide reliable predictive analysis what the cost for keeping current would be. So it can be priced!

  3. posted by Thomas on Wednesday 15 February 2017 AD:
    An outsourcing provider would not agree to offer "always current" software because of unknown cost of future upgrades, especially major upgrades.

    No SLA's ? Who can be brought to court? Who will pay penalties in case IT does'nt work as expected? Operating a customer's environment only baed on trustworthy relationship? Isn't this called in-house IT ?
    I do agree that outsourcing contracts are far from realistic these days. Quality in delivery has reduced a lot, especially support staff is vastly unskilled and has little to no experience.