Abstract Software costing has proven to be a difficult aspect to predict within software project management. The goal of this paper is to discuss the various techniques involved in software costing, their strengths, aims and weaknesses when used under certain circumstances.
Introduction The estimation of software costing is a key component within an IT company, due to the uncertain nature of software development, it has also proven difficult to predict. Pricing of software needs to be accurate in order to give the competitive advantage over other IT companies, whilst also giving a reasonably accurate prediction to entice repeat clients, this means that maximum effort is afforded to give as accurate results as possible. There have been many estimation techniques designed to give this prediction. Software Productivity This section covers the various types of techniques in assessing the cost and productivity involved within a software project A number of factors are to be taken into account when choosing the pricing for software, for example; a company may want to quote the client a lower price for the opportunity to work with that client again.
Similarly, if the development company is having financial difficulty they make accept to take the project on for a lesser cost to gain repeat business, this may help the company from going out of business. A company may also give the client a cheaper quote for development if they feel that the software may be reusable in other projects. At the start of a project, the project manager must take several questions into account for an accurate estimation; Effort Required? Estimated time of completion? Total Cost? Staff Numbers? Estimation techniques When estimating the price of software, the project manager must take multiple aspects of the project into account. The major milestones and staffing of the project must be clearly defined for the project plans.
A Gantt chart is typically used by project managers to lay out the start and end dates of each milestone, this also helps as a visual aid to the project staffing. The software requirements must be clearly defined with the customer, each of the requirements must be feasible. The three main factors involved in cost estimation are the hardware and software, travel and effort costs. Comparably to the effort cost, hardware and software costs are generally cheap.
There may be exceptions to the case where extremely niche hardware or software is required but these cases would be outliers. Travel costs would also be relatively cheaper compared to the effort cost, even if the project is being developed across multiple sites, systems should as online video and voice calling can reduce the travel required significantly. The main cost factor in cost estimation is in the effort costs involved, as this includes the overheads for the building itself, along with the software developer’s wages. The overhead costs may include lighting and heating in the office space, administrators, cleaners.
As the project progresses it is important for the project manager to closely follow the costing during the projects lifecycle, this is to ensure that the price quotes to the customer is being followed and is on target. This can also give the project manager an estimate if additional staff can be hired or to pull back on spending briefly to bring the spending back on target. COCOMO (Constructive Cost Model): COCOMO is a software cost estimation software, COCOMO’s goal is to allow users to find the amount of effort and time that is required for a project, including staff required for the project to complete on schedule.
The software also allows the user to run through different scenarios that may occur that would affect the project. COCOMO uses a variety of methods to calculate the overall price, including Line of Code, Object or Function points. Line of Code: A measurement metric of measuring the number of lines of coding within a program. Issues: Different languages will provide different a different number of lines. Pricing can only be given at the end of the project as the lines of code can only be guessed at the start, the estimate of doing this by finding the average between the lowest possible size, the highest possible size and the likely size. Functions: Object Points: Object points works as a weighting system for estimating the cost of a project, screens, reports and modules are all included in this weighting system, followed by their complexity. A clearer overall price and estimated time can be predicted from an early stage due to this weighting system Algorithmic cost modelling Using the staff numbers, project size and process factors Algorithmic cost modelling attempts to predict the project costs. Basic cost model for estimation: Effort = A × SizeB × m(X) A: Constant factor that depends on Organizational Practices Type of software B: Usually lies between 1 and 1.
5 X: Vector of cost factors m: Adjustment multiplier From the above cost model, both B and M can be subjective based on previous projects and will often vary from person to person. Difficult to predict size at the early stages of the project, function and object points will give a more accurate measurement than lines of code at this stage but will often still but inaccurate. When working from the basic cost model it is best to work out a variety of models giving the worst, average and best estimate as it will give a better overall picture of the price ranges.
The accuracy of the cost models can be improved by knowing the programming language or hardware are pre-defined. Project duration and staffing The project duration and staffing must also be accounted for during the cost projections for a project. Hiring additional staff does not always equate to a faster rate of completion of the project, not does it always mean that less effort will be required during the projects life cycle, the hiring of new staff may require initial training or the addition of staff may cause more effort in communicating the goal of the project, rather than focusing on the end product. The difficulty in hiring additional staff also comes down to the number of required staff needed for the project, this can be difficult to predict as different staff are required during various stages of the products developments. Typically, projects will only require a small number of staff in the initial concept of the project, requiring more during the peak of the project, while tethering off as the project is being prepared for launch.
An example of this can be seen below on a Rayleigh curve Conclusion Object Points and Functions offer a clear advantage over LOC as they are far easier to predict at an earlier stage of a project. LOC while being the oldest of the techniques has far greater research and development already put behind it,