I am trying to implement an agile-ish approach to our firm. Right now we have a very much waterfall like approach to designing, coding, testing, and releasing. One major issue we haven't found an answer for is the idea of quoting. We allow our customers to request small to large changes in the system and pay for those individual changes via a work order. For instance, one customer could request a field be moved over an inch in some report of theirs, while another customer requests a large, several hundred hour addition to the core software. The way we quote now is rather inefficient. Basically we, myself and my boss, look at the code and guess how many man hours it takes to finish. Sometimes we ask the dev who would work on it, sometimes we don't. Sometimes we have all of the requirements, sometimes we don't. It's very much an educated guess at best. We charge the customer the number of hours times some predetermined rate once we have an estimate. You can imagine how often we go over our estimates with actual work.
Since we allow changes and contracts of such varying scope, how could we go about quoting effectively in a SCRUM or Agile process? I like the idea of quoting by points instead of hours, and using SCRUM estimation practices to determine the points, but my boss isn't a fan as he thinks we need to have our quotes done and paid for before they enter any type of product backlog. His belief is that we cannot quote any other way because we need to lock the customer into a specific contract to avoid changes down the line.
Lately, we have run into many issues with customers changing specs last minute and getting mad at us for charging them for the changes or denying the changes out right. I like to look at the agile manifesto and think about collaboration over contracts, but no one else at my firm is sold quite yet.
Is there a way to effectively quote in a SCRUM process where we do not have regular, time intensive contracts but instead have a varying degree of change requests paid for by different customers?
If you need any more information let me know. I appreciate the insight.