By charging a fixed hourly rate, I offer the highest flexibility for my clients. In contrast, when charging a fixed price per project, there needs to be an agreement in advance about exactly what will be built. But how do you decide on a price when the project involves collaborating with someone over a longer period of time to come up with the best solution? Every situation is unique and so you can rarely decide in advance how much work will be involved. The only solution is to charge on an hourly basis. However, this is not without risk for the client. How do you ensure that the project will not become too expensive? Will the end result satisfy expectations? To minimise risks, I use the following process:
- The discussion period takes as long as is needed until all involved are certain about what needs to be built. I suggest solutions and gradually form a picture of how the project will look.
- If the project is complex, it would be too risky to build it all in one go. Instead, the development takes place in iterations. I build part of the functionality and after each iteration there is a working application that can be evaluated and tested. By keeping the iterations small, it is easier to make adjustments to the project and keep the costs at a minimum (for example, by eliminating certain functionality for following iterations).
- After a number of iterations, the system will be complete enough to go live. Since I deliver a fully working system with each iteration, it is easier to prepare the system to be used by a larger audience.
This approach is inspired by Lean and Agile. In practice, it has been found that these methods provide a much better result that the classic waterfall method.