Programming extortion or poor estimating?
For a project we have at work, we needed to have some Java code written for encryption. The tool we have has example code for it, but it wasn't quite what I wanted. So, one of our developers got a quote from the company that put together the example to change the code to what I wanted as I don't know Java. The quote to modify the code was 4 hours @ $155/hour. While I don't have a problem with the hourly rate, I thought the 4 hours was utterly ridiculous as the example code was almost what we needed and the encryption libraries are already built into Java. In addition, getting $620 approved for this might have been more trouble than it was worth.
On Friday, I sat down, did some Google searches, installed NetBeans, and within an hour, I had the Java code working. Prior to this, I had never written a line of Java code. However, Java, like most languages I work with, has a very similar syntax that for my very small piece of code, was quite easy to understand.
So the high quote was one of three things. First, they might not have understood the request (I just double checked the email exchange and it seemed quite clear to me). Second, they could have been extremely poor at estimating. I've been writing software for many years now and my estimating is sometimes way off whack, but that is usually for big tasks and tasks where I'm starting from scratch, not sample code. My worst estimating that I ever did, I estimated 2 weeks (80 hours) to complete a bridge between a Mac application running as a native Intel application and a PowerPC plugin. Somehow I managed to complete this in less than 4 hours. However, I wasn't and am still not aware of any commercial shipping application that has this functionality besides what I wrote, so writing this was a complete unknown. Third, the quote could have been high because they may have thought we had no other option and when you're a monopoly, you can charge whatever you want.
Initially, I quickly jumped to the conclusion that the third option is what happened. After thinking about it and throwing out the other 2 options, I'd like to say that the 3rd option wasn't the real reason, but it is really hard to discount it.