Methods + Techniques: Cost Estimation for Agile Projects
Building trust between the developer and product owner is paramount for a successful project, and yet one of the most valuable opportunities to build trust is one of the most commonly missed opportunites is during the planning phase,- specifically Cost Estimation for Agile Projects. Many Agile developers fail to see the merit or outrightly reject the very idea of cost estimation on principle of it being Anti-Agile, however by including the practice of Agile cost estimation and explaining both the end result and the associated methods and techniques used to the owner and other stakeholders, you can ensure they understand why the estimation is what it is and thereby build a strong foundation of trust for when things do go wrong. Conversely when developers fail to carry out cost estimation they are likely to face greater distrust as the owner is likely to feel there is a lack of transparency.
So Why is Cost Estimation so overlooked?
In contrast with traditional (historical) software development, in Agile Development there is no concrete set of requirements or schedule pre-agreed too. This fact is rather convient for developers in that task cost estimation sets the deadline expectations which are typically overly optimistic to begin with, – however not having any project cost estimation is not the answer but rather the root of all distrust when things do go wrong.
How can you make an informed decision without weighing the cost vs the benefits?
Agile Cost Estimation is essential for decision making throughout the project, most critically, for resource allocation, in both terms of human effort and how to coordinate the team, as well as everything else the team would need to do their work, (architecture and tools for example). Without weighing the cost vs the benefits prioritization of tasks and features can not be done effectively.
So How Should Agile Cost Estimation be carried out for Agile Development Projects?
The collaborative tool (ALM Software) used to manage the Agile development will have features to assist with the cost estimation. In the case of our very own codeBeamer ALM we include Demand Management to assess the demand for features during the planning phase. Cost estimation can be done by creating an extra field within the demand tracker for a feature cost estimation figure, enabling the creation of cost estimates for every suggested feature. This enables all stakeholders to weigh costs vs benefits of every feature and prioritise them accordingly (collaborative prioritization). Accomodation should be made for human nature to be overly optimistic when assessing effort and cost.
The Project Planner helps to plan releases and sprints, giving you an overview of tasks, along with story points and other relevant details. The team commitment filter in the Project Planner allows you to filter tasks to team members, letting you track (and thus, plan) the performance of each member individually. User stories enable the evaluation of the likely time required to create each feature. Calcuated fields can be created the output of which can be exported within a report.
Customizable Wikis (through Wiki plugins) offer you the option of setting up your own dashboards to track and organize data, thus helping the planning process. Various charts and graphs such as burndown charts, velocity trend charts, Gantt charts, sprint breakdown and remaining time plugins all support the cost estimation process, and they can also be exported to PDF.