July 31, 2015

Have the Right Expectations for a Custom Solution

[Editor’s note] BLT often has customers or prospects ask us for custom developed solution with, what we consider, to be unreasonable expectations as to the cost and time commitment. We don’t like not exceeding expectations! So we often first advise on the level of effort that goes into creating custom developed software and recommend much better alternatives. Below is some advice directed at small to mid-sized business with no in-house technical expertise.

Custom software is complicated and we find most vendors do not fully explain the true costs once it is implemented, assuming implementation went well! It doesn’t often go well. Custom software projects often easily exceed original budget by over 200%. Actually, 200% can be a success. I have seen much higher – many times. The customer continues because they feel trapped. The result is a product that doesn’t fit all expectations and doesn’t age well. That results in higher future maintenance and improvement costs. The vendor moves on to another customer. The customer is stuck trying to find someone who can dig through the existing code to make improvements and fix problems. No quality developer wants to dig through a another developer’s problem code. A rewrite is likely cheaper.

It’s not necessarily malicious. The sales team of the vendor is under pressure to close a deal and the customer hasn’t fully explained the requirements. That’s because they often don’t know how to. The vendor tilts the contract in their favor. The real requirements come out during development. The costs explode.

Also, English is one of the worst programming languages. Here’s a simple example: the word “or” in standard speech does not mean the same thing in logic. In English it is mostly exclusive (one or the other but not both). In all programming languages it is inclusive (it can be either and both). It’s actually a very big deal and I am amazed by how often it gets lost in translation only to be found out later in the process where fixing it is costly. There are many more examples.

Historically, we have received most of our business taking over the remnants of unsatisfactory projects.

The point here is that if you are looking for software to improve your business processes then always look hard for successful products already out there that can fit your needs. You want something that is being actively supported. That’s so you can find help easily if you need it. If no product fits your needs then look to see if a combination of products can. There are products out there that integrate with other products resulting in a chain of products to fit your business needs.

If a solution still eludes you there is one more option: change your business processes to match an available solution! Every business is different but standard processes can still be used and provide the end goal. There is also the chance that the new process may be better!

If all else fails then maybe a custom developed solution is what you need. Go in with the right expectations and be prepared do the work needed to get the best result.