Quotations and Contracts
The ability to estimate software development resources is limited.
Although the process of software resource estimation does not produce reliable results, we understand that decision makers need to have some idea of cost and schedule in order to pursue a given opportunity or not.
When faced with a set of requirements for a new system, we are typically able to advise a rough budget estimate, but prefer to embark on a high level analysis phase in order to explore requirements in greater detail. During this phase we start designing a conceptual overview of the system and begin prototyping high risk features so that we can be more confident in our estimates.
Estimates should not, however, be treated as quotations as they are based on unpredictable factors. When comparing estimates or even quotations from various service providers, the lowest cost provider will not necessarily be the lowest risk option.
The variables contributing to risk in a typical software development project are understood to bescope, cost, time and quality.
- Scope – Have the correct features been identified for development?
- Cost – Is the cost of developing the scope worth the value that will be added?
- Time – Will the time taken to deliver the scope align with our business deadlines?
- Quality – How well will the system function and support growth and maintenance?
‘Quality’ is included as a fourth variable although it is far more difficult to specify and measure than the other three variables. Unfortunately, most people simply assume that quality will always be ‘good’ and fail to consider that for a given set of requirements there can be many very different software solutions.
Whenever costs are not specified up-front, a common perception is that there will be no control over how much will be spent and developers will consume a run-away budget. On the contrary, our methodology allows close management of exactly how much is being spent, when it is delivered and what exactly is being created. The major difference is that these variables are not assumed to be fixed at the outset of a project. They are free to change as more is learned about the system. Development productivity is increased which leads to better quality and/or lower costs.
Cost, Scope and Time can be roughly estimated at the start of a project. It is, however, expected that each variable will start changing from the moment the project starts. To allow management of risk, variables are traded off against each other as the project progresses. For example:
- “Let’s add feature X to the Scope which will increase the Cost and push out the Time.”
- “The Costs cannot increase, so let’s remove the lowest priority features from the scope.”
Since developing software involves extensive collaboration with many stakeholders, we think of our clients more as partners in the software development process than as customers. We make every effort to ensure that whatever costs are incurred add maximum value to their businesses. We are completely transparent with our processes and attempt to foster a high level of trust so that our role in a project can hopefully be considered more like a partner than a service provider.