For a larger company that manufactures wooden windows, we developed an extensive iPad iOS application for optimizing their internal processes (measurements, installation, etc..). The development of the application went smoothly and the project was completed successfully. However, we received a new order from our client to upgrade the application with new features/functions. Some of the new functions which they require are special and unfortunately, we can't estimate exactly how much further coding and development is needed. Of course, the client's desire is to have a fixed price offer.
Since we do not have a lot of experience in the field of estimating the scope for unknown work/functions we want to be sure before we give our client a new offer. So help is needed - we're looking for an expert who will help us with the consultation about how to approach r&d for unknown tasks, how to estimate the project, how to explain to client etc. This knowledge will be also needed for future projects.
Have you considered splitting the research phase and the development phase? You can quote a fixed amount for the research phase (I'm sure you can estimate this in weeks and take the hit if you go over). You can say to the client that you will quote the development once the research phase is over.
Plus, they can take the research phase output to other providers if you do not or cannot do the work or the quote is too much.
Call me to discuss further if it helps.
Approaching the R&D for unknown tasks will always have that element of unknown to it, however, the approach I take, that works best for me is:
1. Have a developer estimate the number of hours they think it will take to implement that piece of functionality (then you can convert these hours into a rate)
2. Add a contingency budget into the fixed price, so that it is something you call fall into should the unknown work piece go over its estimated hours (a typical contingency budget is around 10% of the overall project budget)
3. Be clear on your communications with the client, that could be as simple as saying "We've not come across a request for this functionality before, as such, we aren't too clear on the amount of work thats fully involved"
4. The more unknowns/uncertainty around the project, the higher the contingency budget
I'm Shay by the way! I have run some major projects across the software industry, working with Team Visionary, I have had the privilege to lead major successful projects for Google, Atlassian and OnePlus.
I hope this helps you, if you do require further assistance, I would love to jump into a call and provide you with support.