Wednesday, December 24, 2008

God did not fail me again

I started to write my first program when I was 12 years old. At my current age, I could be classified as an expert in the aspect of programming. There is nothing that others can do but I can't, it's just a matter of how long I'll take to learn the new technology. After I've learnt the technology, things that can be done by anyone, I am confident to say that I can do it too.

Having boasted, I finally met a situation this year which is the toughest test for my ego so far.

Early this year, I took up a project which I estimated to complete in 50 days, but after half a year, I'm still working on this project with the same amount of money committed. The customer has done this project by themselves and they came to us to redo the same thing using different technology.

This project is a test of my ego cos the customer will always compare what I've done with what their programmer has done before. Because of the delay (which is not totally our fault), the customer has lost faith in us and always seems to condemn me that our program is not performing as good as their old system.

Initially, there was indeed performance issue which I've resolved using different design and performance was exceptable until customer was testing with other set of data and find that performance was very bad. We pushed the blame to the hardware that customer is using and the network.

We maintained that we have already optimized our program and there's no way to improved further and to prove our point, we arranged to do testing with the same set of data for our program and their existing program.

Initially, the result doesn't tell much as it seems like we were right that our program is not that bad.

However on 21 Aug, the final test result from our customer showed that the performance of our program was much worse as compared to their existing program. It took our program around half an hour to respond and their program just take barely a minute.

Our program is supposed to be more flexible with a different design to handle the flexibility, thus under certain condition, performance will be bad.

I was very stressed and loss at that time. I wrote a very depressing email to my working partners to express my depression. I could do something to change the design so as to achieve better performance (at least on par with customer's program) but that will require lots of time as I've already been working on this project for 5 months. Worst still, customer will lose faith in us and our reputation will go down to the drain. Time is really not at our side. I admitted total defeat this time and I felt very sorry to pull them down too.

However, I assured my working partner that I'm not giving up despite all the stress. I just want them to prepare for the worst.

God has been helping me so far in my work. In my line, there's always unpredictable events to handle and so far I managed to find solutions to whatever problems that I faced even at areas where I've got no knowledge about. God has never failed me.

I have faith that God will bring me through this although I don't see how is it possible. I even have 2nd thought that God may fail me just this once because of my ego. However, it is with this tiny faith that God will not see me die that kept me thinking and not giving up. Within 4 hours, I found a break through which could be a solution to our problem. Within 2 days, I experimented and make minor change to a big program but improve the respond time from half an hour to 10 seconds.

It's simply amazing as now we have a faster respond time, more flexibility, more functionalities and better design. We were on the verge of losing the battle terribly. But somehow the whole event was overturned and we finally won the war. I would not have done it without the tiny faith that I held on strongly to.

No comments: