Analyzing the impact of different factors on Software Cost Estimation in today’s scenario

A survey questionnaire was used to gather information from different IT companies using online and offline method. The same questionnaire (developed earlier for general survey) was used with less number of questions specially targeting concepts like Nature of projects, Impact of training on employees, Number of people review the estimated cost, risk buffer the company keeps for future prospects. A random survey was conducted in order to get an overview of current software cost estimation practices. The questionnaire was sent to 35 companies across the country with target participants being project managers, project developers, senior software engineers and infrastructural analysts who contribute to the cost estimation process in software development. A response rate of 80% was attained.


Introduction
Estimating size and cost of a software system is one of the biggest challenges in software project management [1].
In last 50 years many software cost estimation techniques have been evolved in the market to address the different challenges faced by the software industry in software cost estimation.After so much of evolvement, there is still a scope of improvement in effort estimation accuracy.A review of estimation surveys [2] shows that most surveys of effort estimation performance in software development projects report average overruns of 30% -40%.
The different estimation techniques are divided into two categories i.e. algorithmic and non-algorithmic models [3] [4].Algorithmic models use mathematical formulas whose parameters are based on industrial experience or on historical information that relates some software metric (i.e. usually size) to the project cost being used.Algorithmic model is also known as parametric model.These types of models include COCOMO I, COCOMO II, Putnam resource allocation model etc.
In non-algorithmic, no mathematical formulas are used for cost estimation.This model consists of expert estimation, estimation by analogy, top-down estimation, bottom up estimation, Parkinson's Law and price to win.

Research Method
The two methods used for this paper are: • Collecting data with the help of a survey questionnaire (both online and offline), and, • Interviewing project leaders and project managers of software companies A survey questionnaire was used to gather information from different IT companies using online and offline method.A random survey was conducted in order to get an overview of current software cost estimation practices.The questionnaire was sent to 35 companies across the country with target participants being project managers, project developers, senior software engineers and infrastructural analysts who contribute to the cost estimation process in software development.A response rate of 80% was attained.

Basic Observations Made on the Survey Data Are
• More than 60% participating organizations are multinational while less than 40% are of Indian origin.This data will enable us present a global view of cost estimation trends existing in the software industry • More than 60% of the participating organizations had an employee size of greater than 1000 enabling us to evaluate trends in medium to large sized organizations • 95% participating organizations reflect "Application Development" as their primary work domain.The other key work areas include "Web Development" and "Systems Development".This parameter indicates that we have the right mix of organizations helping us arrive at a conclusion.• More than 70% of the respondents are "Post Graduates" and are currently working as part of the middle management tier in their respective organizations.This reflects the maturity level of the respondent group.I have divided the results of research in to three groups wherein… • Group 1 represents large companies • Group 2 represents medium sized companies • Group 3 contains companies that are smaller in size.
The results obtained are categorized into five parameters at a group level.The parameters are: • Software cost estimation Technique: As discussed earlier, software cost estimation techniques are categorized into algorithmic and non-algorithmic approach [5].• Nature of the Project: The companies usually engage in two types of projects i.e.Fixed bid and Time & Material.Fixed bid projects are contractual agreements to provide specific software services for a specified price while Time & Materials project is a contractual agreement where a client pays the amount based on the number of hours put into the project plus any other added material expenses [6].
• Training individuals in cost estimation: Software Cost estimation involves predicting the effort and duration of various projects.Software organizations utilize cost estimators to carefully examine determining factors such as work force, material and equipment.Entry-level cost estimators may receive on-the-job training offered by companies as a part of their on-boarding process [7].Through these training sessions, new joiners gain sound understanding of software estimation & the importance of estimation in projects.• Review process for the estimated software cost: It is very important to verify the methods used in the estimation process and the results obtained, in order to confirm the integrity of an estimate.It may be tempting to skip this review due to a lack of time, personnel or budget, however, the cost involved in performing a proper validation/review is likely to be significantly lower than the cost overruns that are likely to develop during a poorly managed software project.When reviewing an estimate one must assess the assumptions made during the estimation process [8].• Risk buffer: As mentioned earlier, most software companies experience cost overruns and unexpected expenses during software development.The main reason is that they begin with uncertain estimates and encounter schedule setbacks.They experience requirement growth and technology change.They are encountered with some essential tasks that weren't planned during estimation.In order to manage such uncertainties, few software companies keep a schedule or budget reserve to deal with such eventualities.To handle these projects' changing realities effectively, it's wise to save a little time and money for the rainy day [9].

Result Analysis
3.1.Group 1: Large Sized Companies (Employee Size Is More than 1000) In this group, companies with more than 1000 employees have been considered • Software cost estimation Technique: These companies use hybrid approach for software cost estimation.
Initially they start with algorithmic method for estimation then move to non-algorithmic model.In algorithmic, many companies use function point method in order to calculate the size and complexity of the project based on number of inputs, outputs, files, modules, reports etc.Once the size and complexity is estimated, project managers and project leaders use their experience to estimate the cost by allocating resources and creating a resource pyramid.During the interview, it has also been told by the interviewee that they use their own customized tools based on function point and COCOMO for estimation.• Nature of projects: These companies are majorly into fixed projects and rarely go for time and material type of projects.A possible reason is that companies have an abundant resource pool available to manage crisis.This also helps companies to opt for long term engagements than short term.
• Training: In this, companies provide project management training to their employees.These trainings also cover cost estimation.Employees get in-depth knowledge of cost estimation and are also made aware of the tools used by the company to estimate costs of software they would develop.The respondents mentioned that they are quite satisfied with the current software cost estimation technique and the training module has proven beneficial for them.• Review: Any estimation made is reviewed by the team comprising of experienced project managers, system analyst and project leaders.The estimate, along with details of all parameters considered during estimation, is then submitted to the committee for final approval.• Risk buffer: Every company keeps a risk buffer for uncertain situations.This group keeps a buffer of 10% to 30% in order to deal with uncertainties.

Group 2: Medium Sized Companies
This group includes companies with 200 to less than 1000 employees.
• Software cost estimation Technique: This group majorly uses intuition, experience, analogy, price-to-win and capacity related techniques to estimate cost.Some companies also use certain tools for estimation.The elements they consider for estimation are software, hardware, number of delivered units, testing and documentation.• Nature of projects: These companies majorly work on time and material based engagements with fixed cost engagements forming a very small portion of their overall portfolio.
• Training: In this, some companies arrange small meetings for providing insights of cost estimation techniques but do not provide targeted training programs for project management modules.The companies believe in intuition and experience for software cost estimation.• Review: The review process involves 2 -5 individuals that have significant experience in estimating costs.
• Risk buffer: This group keeps a buffer of 20% to 40% in order to deal with uncertainties.

Group 3: Small Sized Companies
This group comprises of companies wherein the size of the employees is less than 200.
• Software cost estimation Technique: These companies majorly use price to win, capacity related and soft-The result which we got is as follows (shown in Figure 1) From Figure 1, we can conclude that in large company's purpose of estimation is to determine the manpower requirement which proves the point of managing resource by creating common pool and not assigning resources permanently to project.

Limitation
For the purpose of this paper, some of the factors that were considered in order to find the impact on software cost estimation are nature of project, risk buffer, training, review etc.There are other important factors which could be considered for further studies like quality factors (maintainability, portability, flexibility etc.).These quality factors also have an impact on the cost of the software.Now-a-days, software engineers face difficulty when customers demand for the software to be compatible with hand held devices.Changes like these are time consuming and demand extra effort.This paper does not cover impact of such technology driven changes on software cost estimation.

Summary
A small was conducted to gather information related to software cost estimation techniques existing in the market.As a result we got to know the impact of training provided by the companies on software cost estimation techniques.The survey also helped us gather information on the risk buffer that companies keep to manage contingency situations and how many people review the estimated cost before disclosing it to respective clients.We also got information on company specific purpose of estimation and nature of project the company usually takes based on their time and resource capacity.

Figure 1 .
Figure 1.Purpose of estimation vs company size.

Table 1 .
Company size vs Training program Cross tabulation.

Table 2 .
Result of Chi Square test.

Table 4 .
Company size vs risk buffer cross tabulation.

Table 5 .
Result of Chi Square test.

Table 7 .
Company size vs review of estimated cost.

Table 8 .
Result of Chi Square test.

Table 10 .
Nature of projects vs company size.