February 24, 2007

No AJAX for me today; it’s back to working on my big contract for this month. This is the second half of a $14,600 contract to build an internally used application for a nationwide company. Technically, I am working for a company that is working for a nationwide company, but all the same, my software will be running in 1,400 locations across the country. I got paid half up front, and I get paid the 2nd half when I finsih, which has to be shortly because their is a presentation next week to the owners of the “beta” software. We’ll call that release candidate 1.

I cannot understate how useful findng code on the internet is. I think that finding, and in some cases buying, code on the internet has made me significant money with minimal effort. I know everybody has the “Not Invented Here” syndrome, but I am here to tell you that it is costing you money. You cannot possibly replace the functionality of a product that is for sale in the time you have to do the project. Hence, in the spirit of Greenspun’sTenth Rule:

“any sufficiently complicated C or Fortran program contains an ad hoc informally-specified bug-ridden slow implementation of half of Common Lisp.”

I present Shuad’s Greenspun Rule Ripoff:

“any sufficiently complicated contractual program contains an ad hoc informally-specified bug-ridden slow implementation of functionality that could have been purchased, learned and implemented at 1/20 the price.”

Think about that next time you dive into implemented a control that you know already exists (you checked if something like what you need exists, didn’t you?) and you could buy for $150, but charge your customer the amount that it would have cost them had you written crap version yourself. You get an easier path to a good program and make more money in less time. The customer doesn’t have to deal with your buggy, slimly tested crap implementation. GI Joe taught me, “knowing is half the battle.”