Optimising Complex Resources for Software Development
Modern software development faces the challenge of creating larger software systems than ever before in an increasingly dynamic market. In addition to remain competitive software systems have to be delivered to market as soon as possible while maintaining high standards for quality and usability. This creates a challenge as software companies only have limited resources to achieve these goals. Accurate resource allocation therefore is one of the most critical aspects of software project management.
Estimating the project tasks time and allocating the resources adds more complexity on the project manager responsibility for large system projects. It depends on expert managers to have an accurate estimation regarding the shortage in resources and the project tasks timing. Current software development considers the resource allocation as a flat model manages the available resources according to predefined time plan and project tasks. On the other hand the resources availability with respect to task dependency and several projects working at the same time using the flat model for large system projects affects the decision in allocating the resources to their tasks.
In the flat model, the estimation of the tasks duration for the whole project is based on the project manager, in which he should have the knowledge about the whole staff for their skills and competences to allocate them to tasks. While missing the point of the variability between the developers in their skills and competences this mission is becoming almost impossible for managers to do in large system projects, and even the tasks duration will dramatically change during the time without notice and affects the project cost. Accordingly, estimating the time before knowing the right person who will do the task is a critical point in project time management. On the other hand the time estimation for project tasks in agile methodologies considered as one of the responsibilities of the team members and it is not correct to use a flat resource allocation model with agile methodologies.
Our idea is to enhance resource allocation methods by having a correlation between software development tasks, requirement, staff, and the components of the software system. This method should be adaptable during the whole software development processes as these aspects of software development are subject to change themselves. It is our intention to consider this problem within agile development methodology, and specifically within SCRUM where our approach will support SCRUM master during project management
We plan to use advanced models from multi-criterion decision making to describe resource allocation problems in modern software development. We explicitly focus on the diversity of resource skills and competencies, as well as consider dependencies between requirements, components, tasks, resources and their priorities. In addition we will define criteria which projects and resources should adhere to for successful development. Our approach will define rich models for projects and developers describing their properties and competencies, and the approach will centre around an iterative feedback mechanism to accommodate for progressing insights.
Sultan Al-Khatib, Joost Noppen
Copyright© 2016, School of Computing Sciences, University of East Anglia, Norwich, Norfolk, United Kingdom. All Rights Reserved.