Sunteți pe pagina 1din 9

Current Practices of Software Cost Estimation Technique in Malaysia Context

Zulkefli Mansor1, Zarinah Mohd Kasirun2, Saadiah Yahya3, and Noor Habibah Hj Arshad 4
Faculty of Information Technology Industry Universiti Selangor, Jalan Timur Tambahan, 45600 Bestari Jaya, Selangor, Malaysia kefflee@unisel.edu.my 2 Department of Software Engineering, Faculty of Computer Science and Information Technology Universiti Malaya, 50603 Kuala Lumpur, Malaysia zarinahmk@um.edu.my 3 Computer Technology and Networking Studies, Faculty of Computer and Mathematical Sciences, Universiti Teknologi MARA, 40450 Shah Alam, Selangor, Malaysia saadiah@tmsk.uitm.edu.my 4 System Science Studies, Faculty of Computer and Mathematical Sciences, Universiti Teknologi MARA, 40450 Shah Alam, Selangor, Malaysia habibah@tmsk.uitm.edu.my
1

Abstract. Software cost estimation process is frequently debated by software development community for decades. In order to estimate the cost, numerous methods can be used such as an expert judgment, algorithmic model or parametric, top-down approach, price-to-win, bottom-up and many more. Questionnaire and literature survey were carried out in this study. The result from the survey shows that the expert judgment method, which is based on experience and past estimation histories, is commonly use to estimate cost in software development project while the result from the literature shows that COCOMO II provides accurate result because many variables are being considered including the reuse of parameter besides the expert judgment. As a conclusion, expert judgment and algorithmic model are widely used as methods in software cost estimation process and the process was done manually. The integration of these two methods helps in producing accurate result for cost estimation process. Keywords: Cost Estimation, Expert Judgment, COCOMO II, Software Engineering, Project Management, Software Development Project.

1 Introduction
Cost estimation is a prediction process of defining the required cost in order to get the accurate cost of equipping facility, producing goods or providing services. It is important in managing a project especially for the project manager when proposing a budget for certain project.
A. Abd Manaf et al. (Eds.): ICIEIS 2011, Part I, CCIS 251, pp. 566574, 2011. Springer-Verlag Berlin Heidelberg 2011

Current Practices of Software Cost Estimation Technique in Malaysia Context

567

The occurrence of common software failure was caused by the poor cost and schedule estimation [1]. That is why accurate cost estimation is needed for software development whether web-based project or application system. For example, current practices of cost estimation for web-based applications process are mostly done manually, causing inaccurate result in cost estimating [18]. Therefore, cost estimation tool is needed to produce an accurate result in estimating the cost for web-based application or any software project development. An accurate and efficient cost estimation methodology for web-based application is very important for software development as it would assist the management team to estimate the cost. Furthermore, it will ensure the development of cost suits the planned budget and provides a fundamental motivation towards the development of web-based application project. The objective of this study is to investigate the current practice and identify the suitable estimation method used in software cost estimation process. The discussion of this paper begins with the introduction and followed by the discussion on the literature review. The third section will be the methodology and followed by the discussion on the results. The last section of this paper is the conclusion.

2 Related Works
2.1 Cost Estimation Process Cost estimation is a prediction process to get close result of required cost. It includes the process of considering the required cost, experiences, time constraints, risks, methods used, schedules, resources and other elements related to the development of a project. Hence, cost estimation is important in managing a project especially to the project manager when proposing budget for certain project. In software development a widely used term is software project estimation where its function is to calculate the estimation process. Cost estimation is the determination of quantity and predicting or forecasting within a defined scope of the costs required to construct and equip a facility to manufacture goods or to furnish a service. Included in these costs are assessments and an evaluation of risks and uncertainties. A cost estimation process considers and determines utilized experience by an expert, calculating and forecasting the future cost of resources, methods and schedule for any project development. It provides input to original baselines and changes the baselines against cost comparisons throughout a project. It is performed at a certain point based on the available information at a certain time. Normally, it includes cost estimation details, a cost estimation summary, basis of estimation which describes the project details, estimation methodologies, type of cost estimation including risk, cost driven, cost adjustment and so on [2],[3]. Estimation is depicted as black art because it is a subjective process [4]. One person might take a day to do a task that might only require few hours of anothers time. As a result when many people are asked to do the estimation process, they might give different answers and results. But if the work is actually performed, it takes only actual amount of the time and any estimation that did not come close to that actual time is considered inaccurate. To someone who has never involved in estimation

568

Z. Mansor et al.

process, estimations is just an attempt to predict the required cost and resources. It is important to assume that the project will come in on time in order to have good estimation practices and to improve the accuracy of estimation process. Hence, the project manager can help to create a successful estimation for any software project by applying good techniques and understanding what makes estimation more accurate. Software project estimation is a form of problem solving and in most cases; the problem that needs to be solved is too complex to be considered in one piece [5]. To solve the problem, it can be decomposed and restructure to a smaller problem. There are software sizing, problem based estimation which is line of code estimation and function point based estimation, process-based estimation, used-case based estimation and reconciling estimations. The main purpose of doing software estimation is to reduce the amount of the estimated actual cost in software process development. Software estimation is crucial and any cost estimation error can make a difference between profit and loss. Each factor must be well considered and well calculated. Over cost will cause a bad impact to the organization and the developer [6],[16]. In real life, cost estimation process is difficult because it requires the estimator to consider many factors or variables such as hardware costs, travel costs, training costs, man power, environmental, effort, expertise advices and government policies. Effort costs are generally the largest and least predictable development effort. Therefore, most cost estimations estimate the effort cost using man-month (MM) as cost unit. All these factors will affect the overall cost and effort involve in any project that one wants to develop. So, one needs something that can give better result in doing estimation in order to achieve the most accurate result. 2.2 The Importance of Software Cost Estimation The main idea of applying software cost estimation by an organization is to define why, when and how cost estimation is calculated. The purposes of doing estimation are as follows: i) Planning, Approval and Budgeting: In an organization, senior manager will make the strategic decision based on the accuracy of the estimation. For example, if they want to develop certain project, cost estimation plays an important role to measure whether to proceed, delay or totally stop the project. The cost becomes the most important aspect that needs to be considered. ii) Project Management: Normally, in developing software or any project, the project manager or the team leader needs to do some planning, monitoring and controlling the implementation of certain project and iii) Project Team Understanding: A cost estimation process is normally related to a complete work breakdown structure (WBS). Where else, the project team members will be assigned with particular tasks and will be given within certain duration to do the cost estimation that will avoid any delaying in a project. Performing estimation is to dictate the output and get the best total cost accuracy. If the cost of software projects is overestimated, then it is difficult to remain competitive in the market place. Therefore, the effect is the developers will have to expend tremendous effort to bring in projects on time and on budget, or there is a cost overrun that has to be paid by the customer or the software company. If the customer incurs the cost, it could result a bad reputation, and that will affect future sales. If the

Current Practices of Software Cost Estimation Technique in Malaysia Context

569

company incurs the cost, it will result in lose of profit, and job or benefits lost. It is also important to remember that both cost and schedule overruns go hand in hand. Schedule overruns can have serious effects on market timing for the customer, and can have a serious effect on the software company's ability to meet other commitments. 2.3 Software Cost Estimation Technique There are several different techniques that can be applied in software cost estimation whether in web-based application or traditional application [5],[16]. There are eight types of cost estimation techniques namely; Algorithmic Model, Expert Judgment, Estimation by Analogy, Parkinson Ian Estimation, Price To Win, Top-Down Estimation, Bottom-Up Estimation and Machine Learning. Algorithmic Model provides one or more mathematical algorithms which generates cost-estimate software that functions as a major cost driver. Cost drivers are factors that influence the cost of a software project. Four of the most well known algorithmic models are Boehms COCOMO, COCOMO II, Putnams SLIM and Albrechts Function Points. The Constructive Cost Model (COCOMO) is a software cost and schedule estimating method developed by Barry Boehm in 1980s. Then in 1990s, he introduced COCOMO II which is an updated version of COCOMO. It became the most popular model in cost estimation for software development. The model consists of several components or issues such as non-sequential and rapid development process models. It is also inclusive of reuse approaches, reengineering, and application composition and application generation capabilities where Putnams SLIM and Albrechts Function Points did not offer in the reuse approaches. COCOMO II is suitable for both small and large project where Putnams SLIM only focuses on large project. Putnams SLIM tends to estimate less than the COCOMO II for large size projects. For medium sized projects, both model estimates similarly. For getting an accurate estimation from SLIM or COCOMO II, one has to consistently reconfigure these tools to take into account of all the particular conditions of a project. Albrechts Function Points is more into sizing technique. So, Albrechts Function Points normally is just a complementary to COCOMO II and Putnams SLIM in order to feed the estimation process. COCOMO is reasonably well-matched to custom, build-to-specification software projects; COCOMO II is useful for much wider collection of techniques and technologies. COCOMO II provides an up-to-date support for business software, object-oriented software, and software created via spiral or evolutionary development models, and software developed using commercial off the shelf application composition utilities (Boehm, 1981). COCOMO II includes the Application Composition model (for early prototyping efforts) and more detailed Early Design and Post-Architecture models (for subsequent portions of the lifecycle). Expert Judgment is a judgment endowed by the subject matter expert in a specific application area, knowledge area, discipline, industry or as appropriate for the activity performed. Expert judgment involves consulting with one or more experts using their experience and knowledge of the proposed project to arrive at the estimate of its cost. This is often used as a complementary method to algorithmic model. An expert judgment is an estimation process made by the estimator based on what he or she had done in previous similar project [7],[8]. They give information based on their

570

Z. Mansor et al.

memories and experiences. They have found out that expert judgment can be relatively accurate if the estimator has significant recent experience in the software development and planning. By considering this method, it will help cost estimation process to produce accurate results. Estimation by Analogy uses the values of parameters, such as scope, cost, budget, and duration or measures of scale such as size, weight, and complexity from a previous or similar activity as the basis for estimating the same parameter or measure for future activity [16]. This method involves estimating cost of a new project by analogy with one or more completed projects in the same application domain [6]. Parkinson Ian Estimation is based on Parkinsons Law which states that work expands to fill the available volume. This law invoked to calculate the estimated cost to the available resources [9]. Price-ToWin Estimation method is calculated to the price believed necessary to win the job or contract [10]. Even though it may be unethical and cause gross inaccuracies, this method is still widely used today. Top-Down Estimation is a subsidiary technique. Once you have established a good overall estimate for the project, you sub-divide it down through the layers of the work breakdown structure, for example, development will be 50% of the total, testing will be 25% etc; then sub-divide development and testing into their components. With this method, an overall estimated cost for the project is derived from global properties of the software product. The total cost is then split up among the various components. This method is often related in conjunction with other methods mentioned previously. With Bottom-Up Estimating, each component of the software job is separately estimated, and the result is summed to produce an estimated cost of the overall product [11]. Machine Learning involves a computer system that learns how to estimate from a training set of completed projects. Some common examples of this type of approach are neural networks [12],[13],[14],[15],[17]. 2.4 Software Size Estimation Most of the cost models use size of the finished system as an input for cost estimation. The popular size measurement is source lines of code. Two other metrics that are commonly used are function points and object points. In this method, the size of software is difficult to be determined at the early stage. It is important to ensure that the software estimated size that is used in the cost estimation is as accurate as possible. Software Cost estimation model is doing well if it can estimate software development costs within 20% of the actual costs, 70% of the time and within the domain it intended or calibrated [11]. It is important to remember that both the quality of the cost estimation and the quality of the development effort determine the proximity of the final cost and the estimation. This is illustrated in the figure below. The estimating process and development process is dependent and inseparable. The process of meeting the estimation is equally critical to the process of making the estimation. Concerning the techniques used and cost estimation size discussed in this section; the researcher found that COCOMO II is the best technique that can be used in estimating for web-based application [18]. It is because COCOMO II provides more parameters in order to estimate the cost and produce accurate estimating. Besides, COCOMO II also provides reusability [5], [18]. Since, this study focus on web-based

Current Practices of Software Cost Estimation Technique in Malaysia Context

571

application, reusability concept is suitable where software developer can apply reusability concept in coding, modules and interfaces. The researcher also added expert judgment as an extra technique to estimate cost for web-based application. Based on the five case studies reviewed, experiences gained by expert judgment are very valuable in assisting an estimation process.

3 Methodology
The questionnaire survey was done in order to get the real input based on the current practice of cost estimation from software development community. A set of questionnaire has been developed and distributed to 30 software companies around Kuala Lumpur and Selangor. This is to tabulate responses from information technology background personnel which are identified as project managers and web developers who work closely to cost estimation process in a web development project. The questionnaires are divided into two parts which are Part A and Part B. In part A, the questions focus on the background and the understanding of current practices of cost estimation process. There are nine questions in this part. The respondents are asked about their position in the company, the cost estimation method that they familiar with and normally used in cost estimation process. Basically, this part concentrates on the current practices in cost estimation process. In part A, there are three metric tables design of which using five (question 2), four (question 3) and three (question 4) point-scales. The rest of the questionnaire is closed-ended questions (question 1, 5,6,7,8 and 9). The second part which is part B concentrates on cost estimation process. There are eight questions in this part. The questions focused on how the cost estimation process was conducted. In part B, all questions are close-ended type. The following are the sample questions in the questionnaire. What is your position in the company? Which cost estimation methods do you know? Please judge the estimation methods in term of the result accuracy estimation Please judge the following estimation methods by the effort necessary for the estimation. How many methods do you apply for a single estimation? Have you saved the estimated data of recent projects? Do you use them for new estimations? Generally, at which point of time in the project were you asked for the first binding cost estimation? In your opinion, is this the right point of time for a binding estimation? How do you estimate the cost? What type of software have you developed (made estimation) so far? What is type of software you has developed? Who is the core person involved in estimation in your company? How long that person involves in estimation process? What are the methods used by that particular person? If you select Algorithmic Model, please choose the model used? What is your size measure?

572

Z. Mansor et al.

4 Results and Discussion


This section analyses the results on the survey conducted in general. As the paper objective, the authors only discuss in general the techniques used in cost estimation and how the process is done. There are eight project managers and five web developers who responded to this research. This is because people who involved in cost estimation process in an organization are project manager and web developer. As shown in figure 1, the score of 4.75 indicates that the Expert Judgment model achieve the highest average score in this research. It justifies that the project managers have the theoretical and practical knowledge of Expert Judgment in relation to estimation method. It also indicates that the Expert Judgment is the most popular method used. The second highest score shown in figure 2 is 4.375 whereby it is assigned to Price to win method. The third known method with the score of 3.875 is Algorithmic model. The rest of the models have similar scores of two points which explains that these models are the less preferred method in estimation process. As shown in figure 2, the Expert Judgment method is also the most frequent used method in estimation process. The second most frequent used method by the web developer is Price to Win, followed by the Algorithmic Model. All the scores are shown in figure 2. Based on the survey results, the researcher found out that the current practice in cost estimation was done manually as shown in figure 3 and the most techniques used are expert judgment and parametric model which is COCOMO II as shown in figure 1 and 2. The study has proved that COCOMO II is the best model to estimate the cost since it has suitable attributed to be considered and calculated. Besides, expert judgment is the most popular technique used to estimate the cost. So, in order to provide good tool for estimation process, COCOMO II is used in providing standard variables that has been defined and expert judgment play important roles in inputting input to the variables provided in COCOMO II. It is because only expert has experiences dealing with previous project.

Fig. 1. Estimation Method used by Project Manager

Current Practices of Software Cost Estimation Technique in Malaysia Context

573

Fig. 2. Estimation Method used by Web Developer

Fig. 3. Method done in estimation

5 Conclusion
In this study, we can conclude that most of software development communities practiced expert judgment and algorithmic model as methods in cost estimation process. This is because when these two methods are integrated, they produce more accurate results as compared with a single method. Therefore, integration of these two techniques is important in order to produce accurate result. However, the estimation process was still done manually. Thus, in the future, an automated tool can be developed to overcome the manual process. Furthermore, price-to win method can be considered as an additional method in cost estimation process.

574

Z. Mansor et al.

References
1. Paul, C.: IT Project Estimation: A Practical Guide to the Costing Software. Cambridge University Press, United Kingdom (2003) 2. Pressman, R.S.: Software Engineering: A Practitioners Approach, 5th edn. McGraw-Hill International Editions (2005) 3. Murugesan, S., Ginige, A.: Web Engineering: Introduction and Perspectives. In: International Conference on Web Engineering, ICWE (2005) 4. Stellman, A., Jennifer, G.: Applied Software Project Management, p. 232. Oreilly, Prentice Hall (2005) 5. Boehm, B.W.: Cost Estimation with COCOMO II, Teaching Material, Center of System and Software Engineering, University of Southern California (2008), http://greenbay.usc.edu/csci577/fall2008/site/coursenotes/ ec/charts/ec-11.pdf (retrieved June 10, 2009) 6. Stephen, C.: (2006), http://www.performanceweb.org/CENTERS/PM/media/ project-estimating.html (retrieved April 10, 2009) 7. Pressman, R.S.: Software Engineering: A Practitioners Approach, 4th edn. McGraw-Hill International Editions (2003) 8. Thomsett, R.: Radical Project Management. Gurdon Press, Prentice Hall (2002) 9. Keran, L., Powel, J., Hihn, J.: Validation of Spacecraft Software Cost Estimation Models for Flight and Ground Systems. In: International Society of Parametric Analysts 2002 Conference Proceedings (May 2002) 10. Hihn, J.M., Habib, H.A.: Cost Estimation of Software Intensive Projects: A Survey of Current Practices. In: Proceedings of the Thirteenth IEEE International Conference on Software Engineering, May 13-16 (1991); (Also SSORCE/EEA Report No. 2. August 1990) 11. Parkinson, G.N.: Parkinsons Law and Other S Administration. Houghton-Mifflin (1957) 12. Boehm, B.W.: Software Engineering Economy. Prentice Hall, Upper Saddle River (1972) 13. Zhang, J., Lu, T., Zhao, Y.M.: Study on Top down Estimation Method of Software Project Planning. The Journal of China Universities of Posts and Telecommunication 13(2), 1111 (2006) 14. Srinivasan, K., Fisher, D.: Machine Learning approaches to estimating software development effort. IEEE Trans. on Software Engineering 21(2), 126137 (1995) 15. Kumar, E., Krishna, B.A., Satsangi, P.S.: Fuzzy System and Neural Networks in Software Engineering Project Management. Journal of Applied Intelligence 4(1), 3152 (1994) 16. Shepperd, M.J., Schofield, C., Kitchenham, B.: Estimating Software Project Effort Using Analogies. IEEE Transactions on Software Engineering 23(11), 736743 (1997) 17. Mittal, A., Prakash, K., Mittal, H.: Software cost estimation using fuzzy logic. ACM SIGSOFT Software Engineering Notes 35(1), 3152 (2010) 18. Zulkefli, M., Zarinah, M.K., Habibah, A., Saadiah, Y.: E-Cost Estimation Using Expert Judgment and COCOMO II. In: The Proceedings of ITSIM 2010, Kuala Lumpur, Malaysia, June 15-18, vol. 3, pp. 12621267 (2010)

S-ar putea să vă placă și