When deciding what budget to allocate for a software project there are three general approaches used by software development companies for costing a project. All three have advantages and disadvantages depending on your requirements.
With a fixed price project, you will receive a fixed cost to deliver the project. For the development company to get to a point of quoting a fixed cost, it will need to fully understand the requirements of the project to a low level of functionality of the application. It can take time to complete this scoping process. Once complete the development company can then estimate how long to complete the entire project and then offer a fixed cost.
The approach only suits small to medium sized projects where the defined functionality of the entire application can be scoped easily. Trying for a fixed cost on a large project can lead to long delays in agreeing functionality and estimating the required amount of work.
As with all software projects as the development proceeds, new features and ideas become apparent, which in turn can lead to scope creep, and the requirements for later development work to change. As there is a fixed cost for a defined scope of work, these changes cannot be handled within fixed price contracts. A change request process should be defined and budgeted for inclusion at the end of the project to accommodate these changes.
With a Fixed Price approach, once the scope of work is agreed, there is little required from you to manage the software development company, they work to the agreed schedule. Payment is usually agreed at various milestones or time periods during the process.
Time & Materials
The Time and Materials approach works well for an agile approach to software development. In this case you engage the software company with a list of your requirements and they apply the personnel with the appropriate skill set to complete the requirements. The development company quotes you an hourly rate to for each skill set. The hours worked by the people assigned to the project are then billed to you, usually at the end of each month.
This can be a very cost effective method to complete the project. While you won't get an overall fixed price for delivery, a rough estimate may be given on small to medium sized projects. This may be plus or minus 30% of the final cost of the project.
Development is undertaken in short sprints of work, with each sprint defined by you and the development company before work commences. The work is then completed and signed off and the next sprint is then planned. This allows for changes to scope of the requirements to be accommodated in the future sprint.
To be successful, this method will require a full hands on approach from you. You will need to understand what your overall objective and expected outcomes are with the project and how the next sprint of work helps to reach the objective. Without proper engagement from you on the project there is a danger that the project runs on and on without meeting its expected goals and the budget runs over.
When a project is sufficiently large and has ongoing design, development, or project management requirements it may be more cost effective to have a dedicated person or team working on the project continuously. This can be advantageous as you are not waiting on people with the required skill sets to become available for you to continue on with the next part of the project as there is someone always there to work on it.
A roadmap for development is usually created for a number of months and updated as the requirements change. Work is then created from items on the roadmap, scoped and assigned to the personnel working on the project.
For this approach a fixed cost per person working on the project is usually given per month and that person is available to the project for 100% of their time per month. You will usually pay for this at the end of each month.
For this method to be successful and cost effective, you will need to manage the roadmap on an ongoing basis, decide and scope what items from the roadmap are required to be completed and communicate regularly with the team.
All of the above approaches have advantages and disadvantages depending on the requirements for your project. At Devhaus, we provide services based on all three approaches and can advise you what is the most cost effective method for delivery of a successful project.