Cost estimation is one of the most challenging tasks in the field of Software Engineering. To calculate and predict the total costs required for a project is challenging and it has a high impact on the project and budget planning. There are several techniques for cost estimation and selecting one of them as the best is hard as they have their benefits and drawbacks and selection majorly depends on the project scenario and requirements. The best approach to use for cost estimation is to use a combination of techniques. Another critical factor is to have a comprehensive knowledge and experience of each method so that reliable estimates are reached. It is essential to understand the project attributes and their relationships as it leads to a meaningful and dependable cost estimation (Shekhar and Kumar, 2016; Tripathi and Rai, 2016).
The two techniques that are used mostly at my workplace are intermediate COCOMO and expert judgment method. A combination of algorithmic and non-algorithmic approach makes use of the best of both to give a realistic and reliable estimate. A system analyst is responsible for carrying out the task of cost estimation, where the resources needed for a project are calculated. The elements that have an impact on cost estimation are the size of the project, schedule, effort, etc. The process of cost estimation is carried out in four steps (Shekhar and Kumar, 2016) at my workplace:
- Calculating the size of the software
- The effort/work needed to accomplish it
- The schedule for the project is established
- The costs are estimated
Constructive Cost Model (COCOMO) is an algorithmic model introduced by Barry Boehm and is widely used for cost estimation. In COCOMO, the equations and parameters are acquired from past projects. The lines of code are usually defined in KLOC that means thousands line of code and the effort is described in person per month. There are three models of COCOMO recommended by Boehm, namely; basic, intermediate, and detailed (Shekhar, 2016; Schett, 2003).
The basic COCOMO is based on a single value that calculates the effort in a thousand lines of code. The intermediate COCOMO model estimates the cost as a function regarding the size of the program and fifteen cost indicators like the hardware, product, employees, or project elements. And lastly, the detailed COCOMO considers all the cost indicators of the intermediate model and additionally estimates the effect of these on each phase of development like analysis, design, testing, etc. (Schett, 2003). The intermediate COCOMO model is extensively used by my company as it works very well for small to medium projects (Tailor, Saini, and Rijwani, 2014). There are many benefits of using the COCOMO approach, the foremost being it is an industry-standard and regulated. There are various tools available that support multiple extensions (Schett, 2003). It’s based on past projects and is repeatable. It offers numerous modes. It is thoroughly documented and works well for projects of the same nature (Pidduck, 2004). Tailor, Saini, and Rijwani (2014) point out one of the main benefits of intermediate COCOMO that supports the modern software development approaches (Boehm, 1981; Pressman, 1997; Ismael and Jamil, 2007). It also supports code reusability and batch processing (Tailor, Saini, and Rijwani, 2014).
The other technique used for cost estimation at my workplace is the expert judgment method. Using this approach, an expert in cost estimation in the relevant domain is outsourced to use their experience and knowledge to establish project costs. My workplace performs this as follows (Tripathi and Rai, 2016):
- The project lead distributes the specification and estimation form to the expert.
- The forms are filled in anonymously.
- Project lead holds a meeting where the cost estimation is discussed with the expert.
- An iteration form is created and distributed by the project lead.
- Another round of form filling is done anonymously.
- Step d and e are repeated by the requirement.
It is a beneficial method and extensively used by many companies (Boehm, 1981; Schett, 2003; Marban et al., 2008). A typical example of an expert judgment method is the work breakdown structure that is used by our company cost estimation process. The estimates by experts are very helpful in indicating the impact of the new technology, architecture design, and programming languages (Shekhar and Kumar, 2016; Rush and Roy, 2001). Once the results of both the techniques are attained, a triangulation result of both the approaches is assessed to make the best use of the estimated costs.
Managing human resources is a challenging task. Human resources have different titles and varying pay scales. In our company, the historical data for the project plan and based on that project costs are estimated. When the budget is created, the bottom-up approach is used. Apart from an organizational chart for the software projects, a model is built that defines and allocates works. My company follows the following four steps to establish that (Schwalbe, 2016):
- Finalizing the project requirements
- Determining how the work will be finished.
- Decomposing work into manageable units.
- Assignment of work tasks.
An organizational breakdown structure (OBS) is created where the responsibilities of each unit are specified. A responsibility assignment matrix is then used to track the WBS activities and the OBS units. The two techniques used by my company for managing the project teams are observation and conversation and project performance appraisals. MS Project is the tool used at my workplace which assists in assigning and tracking resources, creating resource utilization reports, resource leveling, etc. It also helps in classifying any delay in the project that would be caused by resource shortage. With the help of MS Project, underutilized resources are monitored and reassigned (Schwalbe, 2016).
I would conclude on the note that the benefits of both the approaches are plentiful as discussed above, for my company these help in reaching realistic project costs. As Barry Boehm rightly, states “The models are just there to help, not to make your management decisions for you” (Boehm, 1981). So, using these models along with other project elements, the right decision can be reached (Madachy, 2008).
References:
Boehm, B. W (1981) Software Engineering Economics, Englewood Cliffs: Prentice-Hall.
Ismael, H.R and Jamil, A.S. (2007) Software Engineering Cost Estimation Using COCOMO II Model. Available at: https://www.iasj.net/iasj?func=fulltext&aId=33976 (Accessed: 11 September 2018)
Madachy, R.J. (2008) Software Process Dynamics. New Jersey: John Wiley and Sons, Inc.
Marbán, O, Amescua, A, Cuadrado, J.J, and García, L. (2008) ‘A cost model to estimate the effort of data mining projects’, Universidad Carlos III de Madri (UC3M), 33(1), pp.133-150.
Pidduck, A.B. (2004) Constructive Cost Model COCOMO. Available at: https://cs.uwaterloo.ca/~apidduck/se362/Lectures/cocomo.pdf (Accessed: 11 September 2018)
Pressman, R. S. (1997) Software Engineering, Singapore: Mcgraw-Hill.
Rush, C. and Roy, R. (2001) ‘Expert Judgement in Cost Estimating: Modelling the Reasoning Process’, Concurrent Engineering: Research and Applications, 9(4), pp. 271-284.
Schett, N.C. (2003) ‘COCOMO I and COCOMO II’, Seminar on software cost estimation, University of Zurich, Switzerland.
Schwalbe, K. (2016) Information technology project management, 8th ed. Boston: Course Technology, Cengage Learning.
Shekhar, S. and Kumar, U. (2016) ‘Review of Various Software Cost Estimation Techniques’, International Journal of Computer Applications, 141(11), pp. 31-34.
Tailor, O., Saini, J. and Rijwani, P. (2014) ‘Comparative analysis of software cost and effort estimation methods: a review’, International Journal of Computer Science and Mobile Computing, 3(4), pp.1364-1374.
Tripathi, R. and Rai, P.K. (2016) ‘Comparative Study of Software Cost Estimation Techniques’, International Journal of Advanced Research in
Computer Science and Software Engineering, 6(1), pp. 323-328.