Nowadays, a software has become an important component of a computer. Along with the speed development of the technology, the software development of a project has also provided a rapid improvement. Project management needs to provide a good management during the software development process. The functionality size of software project that become bigger provides another problem in the software development process. Software Project Management (SPM) is the form of Software Development Life Cycle (SDLC), However, misconducting might be a cause of project failure. Researching proved that high accuracy rate of prediction of a cost and effort estimation increases the chance of successful quality software. An accurate Project Cost Estimation is a critical for the developers and clients. The implementation accurate Project Cost Estimation will be affect to the team skills, schedules, productivity, complexity, reliability etc. Software projects are always pass their deadline or going over budget. The issue lies in the incorrect estimation of the effort required for the development. There are techniques for performing software cost estimation, including expert judgement and algorithmic models. Multiple methods of the cost estimation should be performed that there will be some comparison for the estimates. Cost estimation must be performed frequently throughout the project life cycle.
Software Project cost estimation process is a set of techniques and procedures that determines the software cost. Usually that set of inputs will be into the process and then the process uses these inputs to calculate a set of outputs. Some companies have an existing architecture for the software cost estimation. There are the cases where the software requirements stay at fixed stage. In case of dealing with software requirement changes. The cost estimation accuracy helps to determine how accurate the estimation is when using a technique.
With the progress of software project development, it’s very difficult to find an accurate estimation of development cost, effort and time. However, to provide a successful work, a very good planning before starting working on the project is become one of the important tasks. Simply, software cost estimation is a cost estimation of software project development.
Software Project cost estimation are used for several purposes:
1. Budgeting: this is the most important use of software cost estimation. It focusses on the accuracy of the overall estimation.
2. Risk Analysis: To illustrate the sensitivity of software project schedule and cost.
3. Planning and Control: To provide a breakdown for schedule and cost according to activity stage, and component.
4. Analysis: To estimate the cost of the software project and the benefits of the strategies used in the software project like reuse, tools and process maturity.
Generally, the diagram below shows how the Cost Estimation works:
There are common cost estimation techniques in the industry:
1. Expert Judgment
2. Estimation by Analogy
3. Algorithmic model
4. Price to Win Estimation
5. Top Down
6. Bottom Up
This technique lies on the knowledge and the experience of the person who provides the estimation based on their experience in the industry from a similar project. The advantage of the Expert Judgement that can differentiate and tell about the differences between previous project experience and the requirements of the new project as well as the impacts and changes caused by new applications, technologies, and programming languages. However, the disadvantages of that technique that estimation is only as good as expert’s personal perspective.
Estimation by Analogy
This technique uses the actual data that is taken from a previous completed project and does comparison that with the new project in the same application domain to determine the cost estimation. The advantages of this technique that it comes and based on actual project data. However, there is disadvantage that impossible if there is no comparable project.
This technique uses the mathematical operations and equations to perform the software cost estimation. The mathematical equations are based on theories or a historical data. Example of the parametric models are COCOMO. The advantages of this technique that refine and customize formulas, easy to edit or change input data and generating repeatable estimations. However, its disadvantage is unable to deal with exceptional conditions and sometimes algorithms may be proprietary.
Price to Win
The project costs whatever the customer must spend on it. The advantage is that mostly will get the contract, but the disadvantage is that money and time run out before the job is done for the project.
Top-Down or Macro Model
This technique uses the overall view of the software and then partitioning the software into various low-level components. The advantages of using Top-Down that requires minimal software project details, it’s faster and easier to be implemented also focus on system level activities. However, it’s not detailed basis which is a disadvantage for that technique.
The cost of each software components is estimated first and then the results are combined to derive the final cost estimation for the project. It’s more stable and detailed but may overlook system level costs and more time consuming.
Algorithmic Model (COCOMO Model)
The software cost estimation by using algorithmic model is based on mathematical operations and formulas. Using algorithmic model many models have been developed such as COCOMO Model, Putnam Model and Function points based model. COCOMO Model is widely used algorithmic in software cost estimation and it is stand for the Constructive Cost Model (COCOMO). This model uses the function point or line of code as the size metrics and composes of 5 scale factors and 17 multipliers. The 5-scale factor are rated on a six-point scale from very low to extra high. After assigning the rating values add them, divide them by 100 and add the result to 1.01 to get the exponent that should be used
Project duration and staffing
Project Managers must estimate the time required to complete a project, when and what staff will be required. The time can be estimated using a COCOMO formula (TDEV = 3 × (PM)(0.33+0.2*(B-1.01))). This predicts the nominal schedule for the project. The time required for the project is independent of the number of staff that working on the project
The requirements of the staffing defined as below:
1. Staff required can’t be computed by diving the development time by the required schedule
2. The number of people working on a project varies depending on the phase of the project
3. The more people who work on the project, the more total effort is usually required
4. A very rapid build-up of people often correlates with schedule slippage
The accurate prediction of software cost is a critical problem. Good management decisions determine how much time and effort required for a project. There are several software cost estimation methods available that could help with the software cost estimation. Each method has its own strengths and weaknesses are often complimentary to each other. For a project, 2 or 3 methods could be used for the cost estimation. It’s not recommended to reply on one single method in face, using several one would give you a better result.