This is part of my on-going Customer Expectations Series
The biggest problem facing developers when working on new projects is how they gather their information. It is more than likely that an agency or developer gives an estimate before knowing the entire project. But how can you know the entire project? Sometimes the client doesn’t know everything that is part of a project.
The simple answer is to do discovery on what you are doing and from this discovery you write a SOW. I will lay out two different formats for projects and briefly describe the benefits of each. I will split this post into two, one for Fixed Bid and one for Time and Materials.
I covered the topic Fixed Bid in my article “Things Change - The Fix Bid Project”. The hardest part is knowing what you are bidding on. When you hire a builder to fix your floor boards and after they have removed them for repair they discover that you have termites and suddenly the cost of your project has quadrupled. The difference between the home owner example and the software project example is the homeowner can see the dead termites. If only we had dead termites in software development we could show the client what we found and demonstrate why we need to add time (and money) to the project. [We do have bugs] The point is that things never stay the same and whether the client comes up with something new or the developer finds something, things change. The danger in the fixed bid as that no one takes into account that something could change. You would think that the client is the one who drives this rigidity, but the responsibility it on the agency and how the agency communicates what they will do. If the client believes that the agency or developer will do everything from the start and that everything is not well defined. If the “EVERYTHING” is stated verbally as; “Yes of course, that is easy”, then the client would believe that everything is included. Even worse, the effort needed to complete is assumed to be easy which leads to mistrust because everything is taking longer.
The key to the fixed bid is a lot of discovery and documentation. The documentation has to be so in depth that it will be hard for the client to argue that some unknown feature that is later discovered should be included. To mitigate much of the risk the agency should build in risk. If anything is missed in discovery, the built-in risk allows for a cushion to pull from without having to ask the client for more time and without the agency frustration of doing work for free. What can’t be invented is time.
Next week I will publish thoughts around Discovery on a Time and Materials Project