According to a market research performed on information technology (IT) projects, the three main issues related to projects within the software development industry are time overruns, budget overruns and more than expected costs involved when maintaining software. These three issues converge to one activity related to the project management: software effort estimation.

Software effort estimation is one of the first stages in a software project and helps to foresee the work that a specific project will entail. This helps the project leader to identify the amount of time and resources that are needed in order to complete the project in a timely manner. The challenge involved in this task is quite a difficult one, since it is very hard to predict the challenges that certain tasks will involve, especially if these types of tasks are being performed for the first time. Furthermore there is a certain degree of psychological pressure involved in this estimation exercise, since the project success or failure may very well depend on it.

This estimation is a much-debated topic to this date, due to the fact that accurate estimation still eludes most methods in use within the industry, even more due to the fact that most project managers depend on expert estimation methods, which involve the estimation of tasks based on personal experience in the field of work. Therefore, expert estimation can be either somewhat accurate or totally off target, mostly depending on the individual or individuals performing the estimation.

Another method for estimation involves a fixed mathematical equation to which variable parameters are applied depending on the project’s specifications; the formula is then worked out to obtain a value for the effort. This method is also a very imprecise one, since it lacks the ability to predict factors like code reusability or the methodology used to develop the software.

During my master’s degree at the University of Hertfordshire, I have worked on a project that aims to obtain more accurate effort estimation for software development projects, under the supervision of Renato Amorim. The project involved research and development of a software artefact that can improve software estimation accuracy when compared to a parameterised software effort estimation method.

In order to obtain a better method for effort estimation we tried to combine the much inflexible parameterised effort estimation method, Cocomo, to expert estimation. However, we didn’t want the human factor to be part of the estimation process, therefore artificial intelligence (AI) was introduced to provide with a more intelligent way to adapt to changes within the variables on which the final estimation result depends. The final software prototype produced combines Cocomo with a genetic algorithm that adapts and learns as more project data is fed into the system.

The resulting output from the prototype demonstrated that by combining AI and a parameterised software effort estimation method, effort estimation could be improved sevenfold. The results provide with the possibility to further the study in this field of work which could contribute to an easier and more efficient way to estimate effort for software development projects and therefore save resources and time.

This project and the related masters degree were carried out following the award of a Steps scholarship, which is part-financed by the European Union – European Social Fund (ESF) under Operational Programme II – Cohesion Policy 2007 – 2013, “Empowering People for More Jobs and a Better Quality of Life”.

Sign up to our free newsletters

Get the best updates straight to your inbox:
Please select at least one mailing list.

You can unsubscribe at any time by clicking the link in the footer of our emails. We use Mailchimp as our marketing platform. By subscribing, you acknowledge that your information will be transferred to Mailchimp for processing.