Degree Name

Doctor of Philosophy


School of Computing and Information Technology


Project management covers the entire lifecycle of software, underpinning the success or failure of many software projects. Managing modern software projects often follows the incremental and iterative process where a software product is incrementally developed through a number of iterations. In each iteration, the development team needs to complete a number of issues, each of which can be implementing a new feature for the software, modifying an existing functionality, fixing a bug or conducting some other project tasks. Although this agile approach reduces the risk of project failures, managing projects at the level of issues and iterations is still highly difficult due to the inherent dynamic nature of software, especially in large-scale software projects. Challenges in this context can be in many forms such as making accurate estimations of the resolution time and effort of resolving issues or selecting suitable issues for upcoming iterations. These integral parts of planning is highly challenging since many factors need considering such as customer business value and the team’s historical estimations, capability and performance. Challenges also exist at the implementation level, such as managing the reviewing of code changes made to resolve issues. There is currently a serious lack of automated support which help project managers and software development teams address those challenges.

This thesis aims to fill those gaps. We leverage a huge amount of historical data in software projects to generate valuable insight for dealing with those challenges in managing iterations and issues. We reformulate those project management problems as search-based optimization problems and employ a range of evolutionary meta-heuristics search techniques to solve them. The search is simultaneously guided by a number of multiple fitness functions that express different objectives (e.g. customer business value, developer expertise and workload, and complexity of estimation models) and constraints (e.g. a team’s historical capability and performance) in the context of modern software projects. Using this approach, we build novel models for estimating issue resolution time and effort, suggesting appropriate issues for upcoming iterations in iteration planning and recommending suitable reviewers for code changes made to resolve issues. An extensive empirical evaluation on a range of large software projects (including Mesos, Usergrid, Aurora, Slider, Kylin, Mahout, Common, Hdfs, MapReduce, Yarn, Apstud, Mule, Dnn, Timob, Tisud, Xd, Nexus, Android, LibreOffice, Qt, and Openstack) demonstrates the highly effective performance of our approach against other alternative techniques (improvement between 1.83% to 550%) to show the effectiveness of our approach.



Unless otherwise indicated, the views expressed in this thesis are those of the author and do not necessarily represent the views of the University of Wollongong.