One of the most essential parts of the software development and project management process is the cost estimation of all the activities involved. Software cost estimation mainly involves gathering requirements, quality assessment, and estimated cost of quality assurance and the overall estimation of project costs. Multiple levels of uncertainties in the initial phases of software development projects tend to influence the cost estimation process which moves towards greater accuracy with the progress in the projects.
The present research aims at identifying the factors which are influencing the cost estimation process in software development projects in Australia. The present research will also try to identify certain problems in software projects in Australia which are caused due to the influence of the external and internal factors. Certain features during the cost estimation processes are essential in software projects such as accuracy and flexibility. The influence of the factors influencing the process estimating cost on these particular necessities is also to be tested in this research.
Different issues faced in management of software projects have gained significant importance in the contemporary research studies. According to Huang et al. (2015), cost estimation and cost management can be considered as the primary factors for achieving software project success. Therefore, it has been essential to analyse the factors affecting cost estimation of software projects so that effective project success can be achieved along with higher competitive advantage in the industry.
The precision in the planning of a software project and accurate estimations are the keys to successful software project delivery. Different types of cost estimation methods provide variable accuracy levels and therefore these alternative methods have been criticised frequently in literature. The studies of Rose et al. (2016) have outlined some of the few factors which directly influence the cost estimation process in software projects. The three main factors mentioned by the authors include project management quality, product complexity and the requirement for conformance. On the contrary, the studies of Gharehchopogh et al. (2015) have highlighted certain factors which affect the software project cost estimation such as platform reliability, the capability of the analysts and other personnel and tools used during the estimation processes.
a. Project management quality: Project management quality has been mentioned in multiple parts of literature indicating that the aspects associated with quality such as data size, reliability and life cycle requirements in software projects are the basic determinants of delivery of quality (Idri et al. 2015). Project management process is also required to be optimised within limited time and budget for successful project deliveries. In this regard, Gharehchopogh et al. (2015) have identified that irregularities in time schedule can completely alter the cost estimation and overrun in time schedules directly lead to cost overruns as well. Contrarily, Rose et al. (2016) have mentioned that changes during project progress are to be effectively controlled to minimise cost estimation errors.
b. Conformity requirements: The lack of conformity of the project planning and cost estimation process with the resources required and functionalities to be derived from software projects are also essential factors affecting the cost estimation process. Soni and Kohli (2017) mentioned in this context that inconsistent requirements-specification can interfere with software development costs negatively.
c. The complexity of software product: Product based complexities are also identified factors affecting the cost estimation process according to most previous studies. Maleki et al. (2016) have pointed out that the main constraints such as execution time constraints and storage constraints as well as issues such as platform volatility in software projects are mainly caused by product complexity factors. Contrarily, the works of Rose et al. (2016) have shown the relation of the cost estimation process more clearly. The authors have specified that the more complex the development process of software is the less are the chances of maintaining proper schedule and costs of resources in a project. However, Iqbal et al. (2017) mentioned that with the development of digital estimation tools, accurate estimation is possible in the present world.
Estimation of cost can be done through various methods which included an iterative process of estimating that are used to develop approximate monetary resources which can be used for completing the activities in the projects. Some of the issues which have been identified by previous authors included the uncertainty problems in software development projects. Some of the issues identified by previous researchers about cost estimation in software projects include:
a. Complexity: Depending on the series of complex services which are required in a software project, the challenges developed in the process of cost estimations mainly involved maintenance of realistic estimation (Iqbal et al. 2017). In Australia, most of the IT development projects involve cost estimation processes which are based on comprehensive reviews of the previous paper in other software projects. According to Miandoab and Gharehchopogh (2016) with the development of international competition, the pricing structure of the resource providers, as well as customer retention factors, are highly affected which cause cost estimation issues in software development projects.
In many cases, software projects mainly involve organizations trying to patch older infrastructure systems and to match them to new requirements. Such software projects are all highly complex and the cost estimations are less accurate in these cases since the responsible parties are often less aware of the existing systems and architecture (Ahma and Bamnote, 2019). Similarly, the studies of El Bajta et al. (2015) also point out that reluctance to replace existing systems in most companies in Australia and other developing countries turn out to be an uphill battle for developers and this causes overrun in schedules in most cases further leading to cost overruns.
b. Uncertainty: Leading software development projects start at the initial stages with no certainty in requirements specified by clients. Therefore the timescale and resources required in the project are uncertain at the primary levels which also cause the cost estimation process to be uncertain (El Bajta et al. 2015). Businesses often require multiple-level-users and the requirements are identified by the clients in the later phases. Additionally, Dhaka et al. (2016) also mentioned that challenges such as lack of resource-based feasibility can also be encountered due to such changing requirements and therefore cost estimation process can be negatively affected in such varying cases.
c. Lack of control: Development of standalone software is a challenge itself in the projects concerned with software development. In Australia, rising number of small and medium-sized enterprises have considerably increased the software project requirements and most of the projects often involve third party integration for providing more control over business activities (Garvey et al. 2016). Asghar et al. (2016) alternatively mentioned that in case of software development projects in developing countries such as Australia, the costs are mostly shaped by action in projects whereas, it is essential for project actions to be shaped by previously determined costs. There have been many aspects identified by previous authors that can help in minimising such control related issues in software projects. Investment in qualified actors throughout the project can increase efficiency in processes which also leads to the least-cost estimation variance. On the other hand, according to Garvey et al. (2016), cost estimation process can be related to providing greater control to the allocation of resources; however, it does not often succeed as a control measure successfully.
d. Failure to identify opportunities: Recently developed agile methods often have witnessed estimators of costs in software projects to be more centred in finding funding as compared to being focused into forecasting accuracy in Australia (Nassif et al. 2016). On the contrary, the studies of Puri and Kaur (2015) have also shown that investors make early commitments to design solutions and costs in Australia and most developing countries. These problems are existent in spite of the fact that investments in software projects in Australia and New Zealand are expected to increase by more than 50% (Minterellisonreports, 2018).
Figure 1: Expected change in software projects investments in Australia and New Zealand
(Source: Minterellisonreports, 2018)
Such preferences tend to minimise the potential for cost reduction and identification of market opportunities effectively. Additionally, lack of opportunistic approach in software projects can also lead to costly changes which are realised and included during the progress of the project. As pointed out by Nassif et al. (2016), problems in identifying opportunities and lack in the flexibility of plans can generate greater wastes and increase in resource consumption.
e. Use of generalised tools: In most software development projects in Australia as well as other developing countries, generalised tools of cost estimation such a budgeting (Ato.gov.au, 2016). In software projects, the activities are much different from projects in other industries. The development process, quality testing as well as bug fixes requires a series of complicated iterations which cannot be monitored and controlled through generic tools (Soni and Kohli, 2017). Therefore cost estimation tools in these projects are required to be as per the project requirements and it must include all the costs incurred in each of the activities and their alternatives. Contrarily, the studies of Saif (2016) have identified tools such as Fuzzy logic is optimised to support realistic data forecasting in software projects.
Cost estimation in software development projects are an inevitable part of the overall project conduction and therefore different types of methods are prevalent in the markets. The major divisions in the methodologies used for cost estimation in software projects included algorithmic methods, non-algorithmic methods and machine learning methods (Sarro et al. 2016). Most of the studies have primarily mentioned algorithmic methods such as COCOMO model as well as machine learning models in cost estimation which are most commonly used in case of software projects.
The Constructive Cost Model (COCOMO) is the most widely used costs estimation model for software projects in all industries. The model is used for calculating the estimated costs of labour hired each month for the development of the required software. As mentioned by Iqbal et al. (2017), the COCOMO model can also project estimate costs and development schedules for software projects. Additionally, the studies of Papatheocharous et al. (2017) has also pointed out that the COCOMO model, being a regression-based model fundamentally dependent on the number of Lines of Code (LOC), can map out the estimated effort or labour and schedule as variables in a software project.