How to Assure that the Custom Program You Want Built Meets All Your Expectations
How to assure that the program you want to have built will cost more than you expect, be less than you wanted, and take much longer than you wanted to finish?
You have an idea for a computer program, but what do you do if you’re not a programmer? The marketing literature says it’s really easy, but of course it’s not really your thing. You know a guy whose kid is a guru; he seems to know everything about computers and loves programming. Then there is also the guy down the block who is a professional and says his company has done lots of good programs.
It is very compelling to hire a person who “knows how to program” and they listen to your idea and get started writing code. Your question is “How long will it take?” And the answer might be something like, “Well about 6 weeks or 3 months (or some number)”. A few weeks into the process, you start seeing screens and other things that look like a computer program, and you might be able to enter data. A few weeks/months later, it’s reported that more of the program is done. As the time and money you expected to spend approaches, you hear they are 90% done.
As the time and money you expected to spend is exceeded, you start to hear things like, “Well there is this one part that we had to do differently but we are almost there”. You ask what that means and they show you. But the way they “solved” the problem doesn’t really solve your problem, even though technically it does some of what you asked, sort of. You tell them that won’t work, and you are told, “Well the way you want it will take another month, we think”. After a big sigh you say ok and a month later you get told that it’s harder than they thought but they almost have it done.
In the meantime, you have found several other things wrong with the program and you ask them to fix. A month later, you ask about it and they say, “Oh, well those other things got in the way but we fixed those and we are back on the big problem”. You wonder why they didn’t tell you that was going to happen; you’re still writing checks and can’t use the program. And on it goes…
While the exact scenario has lots of different ways of playing out, the point is that creating an important computer program is a non-trivial exercise. It is an exercise that has much more to do with communication, problem solving, risk management and goal seeking, than it does with learning how to write code. While many applications have gotten done like the one above, they are at best more costly than they needed to be and have fewer functions than you wanted. Likely, they will have a shorter life and when needing enhancements will be much more prone to needing complete rewriting.
In the next article I will outline the basics of a real custom application project. Just doing it in the proper steps, while helpful, is not a guarantee of success, but if you get a developer who would never think of doing it any other way, you at least have a chance of having one that knows the value of proper project management.