Costing in a project, especially in software development, refers to the process of estimating, budgeting, and managing expenses related to completing the project objectives. Here are the typical elements that contribute to costs in a software project:
Expert judgment relies on the experience and insights of individuals who have worked on similar projects or have extensive knowledge in the domain. It involves consulting with industry experts, project managers, or senior developers to gather their opinions on the project’s cost.
Example: A company plans to develop a new mobile app similar to an existing one in terms of complexity and features.
Estimation Process: The project manager consults with two senior developers and a previous project manager who worked on a similar app.
Result: Based on their collective expertise, they estimate the total project cost to be around $150,000, considering development, testing, and deployment phases.
It uses historical data from similar projects as a reference point for estimating the current project’s costs. It assumes that the current project will have a similar cost profile to past projects of comparable size and complexity.
Example: A company is planning to develop a new e-commerce platform with similar functionalities to an existing one they developed last year.
Method : The project manager reviews the cost data from the previous e-commerce platform project.
Result: Based on the historical data, the previous e-commerce platform project cost $200,000. The current project is estimated to cost around $220,000, factoring in inflation and any additional complexities.
Parametric estimating uses statistical relationships between historical data and project parameters (such as size, lines of code, or complexity) to calculate project costs. It involves using mathematical models or algorithms to derive cost estimates based on specific project metrics.
Example: A company plans to develop a custom web application based on specific functional requirements.
Method : We estimate cost based on the number of user stories or functional points required for the application. The parametric model calculates that similar web applications have cost $100 per functional point. If the application requires 200 functional points, the estimated cost would be $20,000.
It involves estimating the cost of individual tasks or work packages and then aggregating these estimates to derive the total project cost. It provides a detailed breakdown of costs at a granular level.
Example: A company is tasked with developing a new CRM (Customer Relationship Management) software. The project team breaks down the project into smaller tasks such as database design, front-end development, back-end development, testing, and deployment.
Result: Each task is estimated separately: database design $10,000, front-end development $20,000, back-end development $30,000, testing $15,000, deployment $5,000. The total estimated cost is $80,000.
Costing for a software project can be challenging due to several inherent factors:
In summary, costing for software projects is challenging due to the dynamic nature of software development, the interplay of technical and non-technical factors, and the need for adaptive estimation techniques to account for uncertainty and change throughout the project lifecycle.
ACTIVE LEARNING Team, June 2024