We made it! Thank you for joining us through this series. We hope that you find the tips we share valuable. We have outlined 5 stages and detailed Stages 1-4.
On to the final stage – Make your selection and award the contract:
When you’re comfortable that you understand all of the proposals and the relative strengths and weaknesses of the candidates, the choice will generally be straightforward. However, there are a few caveats to consider:
Be clear about what each vendor is offering in terms of “fixed-price” vs. “time and materials” contracts and their variations, and how they plan to handle overages and scope changes. If your vendor is offering a fixed-price contract, it means they are charging for what they believe to be the worst-case for each task, and/or they are depending on charging sufficiently extra for scope changes to cover any overages. Invariably one party loses this gamble, and in the worst cases the project collapses as well. Time and materials contracts are much more straightforward in that you only pay for time spent, but you need to have confidence that your vendor is capable and spending that time effectively.
Under the Uniform Commercial Code, the output of creative work belongs to the buyer unless specified otherwise in the contract terms. However, in some industries it is customary for the seller to retain these intellectual property rights (e.g. architects, graphics artists, etc.) and therefore many templates for consulting contracts include a term to that effect. Be sure the contract terms state that you will own the IP for the product that you are paying to develop.
Be sure your deliverables list requires the vendor to supply the complete set of native engineering files needed to generate or revise each type of output. Gerber files for a PCB layout, compiled binaries for a software or firmware project, or a single Solidworks assembly file for a 3D model are not sufficient! We’ve seen millions of dollars of engineering effort lost because care was not taken at the end of a project to capture and verify the output files in a usable condition.