SAP Outsourcing (Part 2) – The cost of Bad Code
Provocative title. I want to make a significant point. Outsourcing, if handled incorrectly, can produce crap.
Let me give you 2 examples.
All European orders were shipped out of a separate distribution company in Germany. This company was not on SAP and used an older legacy system. We had to find a way of transmitting the orders from SAP to them and receiving the shipping notifications back, to pick the deliveries.
The team wrote a detailed specification, for an interface out of order entry, which transmitted an order to the legacy system and automatically created the delivery. Once the delivery was shipped, the legacy system sent back a confirmation with the quantities, that were then used to pick the delivery.
To try to save costs, project management decided that this was an ideal candidate to outsource offshore. Six weeks later, the first prototype arrived back. It was as if they had not read one page of the specification. When we tried executing the program, nothing happened. It took another 3 months to get a stable version !!
This is something that could have been written on-shore in about six weeks. And the quality of the code would probably have been far superior. On the face of it. it looks like it only took 3 times longer. And that it was probably still cheaper. But if you start taking into account the additional cost of the functional consultants and users time, to try to test this mess, I think you would be shocked. It amazes and puzzles me why projects do not track individual costs this closely. But, on the other hand, I think I understand. I think the numbers would shock and dismay and there would be threats of pulling the plug.
The company used scanners to process returned products.
It was decided to write a custom front-end to process product returns, as they had some unique requirements.
It was outsourced offshore. We eventually got it working after months of going back and forth. However, there was so much flack from this small project, that I believe (although it would be denied), that it later contributed to the head of development losing his job.
After going live, every time we discovered another bug, we cringed. Touch one thing and another thing breaks. Several of our Class A coders had looked at it and the universal comment was: “Rewrite”. But, as is often the case in projects, no time, resources, or money. Band-aid, pray, hope and hold on.
These two examples both illustrate one key thing. While outsourcing can save significant money, if it is not managed correctly, it can cost more than you bargain for. Both in money and more importantly, in quality. Bad quality code means ongoing maintenance and support costs. It feels like a bad penny, it always coming back. And your best developers often don’t want anything to do with it.
Make no mistake, there can be huge benefits to outsourcing. However, it needs to be done right. In Part 3, I will begin discussing some of my observations to help maximise some of these benefits.
Feel free to add you comments to this article.