Monday, October 23, 2006

Why not to take full payment before completing job

This weekend I finally rid myself of a headache I’ve been dragging around for the last one month. I learnt something (which I already knew but had chosen to de-learn), and that is to never accept full payment for a job before you begin. Here’s the story:

About one month ago I was giving free consultation to one of my GEC members. In the course of our consultation he inquired about SoftLaw’s data entry services. Apparently he had to populate a database daily with about three hundred records each with more than ten different columns. He was concerned about how much his part-time employee was costing him to do the job. Another problem was that he had a huge archive of data which he wanted entered into the database as well.

On further enquiry I discovered his problem had parallels to one I faced while doing some work for the Judiciary. My member was OCR scanning the property classifieds of the dailies and entering the information into an excel sheet with different columns for price, bedrooms, location, telephone contacts, description, agent etc. After formatting the scanned document he had each classified on a separate line of a text document. His employee was manually copying and pasting the data from the text document to the excel file.

Since he was a computer science graduate I asked him if he had considered automating the procedure. I found out that he even tried developing an application but each classified ad had a different format resulting in countless permutations. After programming the 14th rule for the first data type (price) he gave up on the automation angle. I asked him to send me a sample copy of one of the text file to see whether I could offer a better way of doing it.

I’m not a professional programmer, but I love the logic involved and have a particular fondness for pattern matching and string manipulation. Looking at the sample text and his requirements I figured it was a three-day job at most for me. The rules involved were complex, but I had plenty of source material to use from the previous application I developed called “Abstractor”.

Although the market price for the software should have been in the K.Shs. 50,000 – K.Shs. 100,000 (US$ 685 – 1,370) I decided to charge him a nominal K.Shs. 5,000 (US$ 68) for the job since he was a GEC member. The fee was high enough to make him appreciate the work but low enough not to be a strain to his young business. In a continent where software piracy hovers at 80%, $68 spent on software (even where it is customized) is a decent amount. I also asked him to pay in full and upfront as I did not want a situation where I’d have to chase him for the balance.

Now here is perhaps where the trouble began. What was supposed to be a three-day job took a whole month to complete, and I’ve narrowed down the reasons to:

1. Taking the full payment upfront;
As a businessman you appreciate the value of promptly paying customers. At GEC it’s slightly better since all payments are pre-payments. For software development and related types of supplies (where delivery of goods or services is required) most payments are made in parts. Usually customers will pay 50% on start and 50% on finish. Sometimes some customers will only make payment on full delivery. And even then rarely will customers pay on time; a supplier might undergo many frustrating delays before she receivers her pay.

This foreknowledge prompted me to require the full payment before I began. However coupled with reason number 2 the outcome was disastrous.

2. Charging less than the real value for a job;

What I had promised would take three days took a whole month to complete. On review of the development process though I actually realized that I had not spent more than 24 working hours on the software. With an 8-hour day this translates to 3 days. My greatest mistake though was underestimating how valuable those 24 hours were to me. Although I did not want to charge more than the nominal K.Shs. 5,000 for developing the software the opportunity cost was almost ten times what I was charging. Finding a compromise proved extraordinarily difficult as I had to prioritize my time. I also had very little motivation as the entire price had been paid. This had a much greater effect than I imagined. I was trying to find time to do something for which inadequate consideration had already been satisfied.

All in all though, it was not too bad of an experience. I learnt a lot, got insights for my future consultation with other clients, and enjoyed the programming.


Anonymous said...

I can't agree with you more Harry, as a business consultant myself, I have been in the same stuation before. by the way i like you blog, we have a similar blog, maybe we could work out something, our blog is

dani said...

I agree...underestimating the amount of time can be very costly since developing the app is only about 20%. 80% goes into planning the logic.