Decision-making in various forms of software development is challenging, as the environment and context where decisions are made is complex, uncertain and/or dynamic. Because of the associated complexity, decision making based on prior experience and gut feelings often lead to sub-optimal decisions. Among the various decision-making activities, stakeholders often need to match one entity (e.g. software artifact, human resource) with another (e.g. human resource, software artifact).
Data analytics has the potential to generate insights, extract patterns and trends from data to guide the decision makers to make better and informed decisions under various complex decision scenarios involving matching.
To prove the benefits of data analytics in matching, we have used five matching decision problems from open source, closed-source and crowdsourced software development context. First, with the use of predictive analytics, we have shown how the success and failure of crowd workers in a new task can be predicted by learning patterns from their and their competitors’ past behaviors. Based on the predicted success chance, we have also designed a task recommendation system to
prescribe best suited tasks to crowd workers (task-worker matching). Second, by integrating crowd workers’ learning preference with predictive analytics, we have demonstrated how task recommendations can be generated from historical data taking workers personal learning and earning goals into account. The conducted user evaluation shows very positive feedback about the usefulness of the recommendations. Third, we have designed a theme (semantic cohesiveness) based approach for feature-release matching to prescribe features for the next release of iterative and incremental software development, considering multiple objectives, constraints and stakeholders preference data. Fourth, we have presented a multi-objective developer-bug matching technique that can prescribe developers for a batch of bugs balancing bug fix time and bug fix cost utilizing data mined from version control repository. Finally, using textual data extracted from issue tracking systems,
we have proposed a collaborative filtering and bi-term topic modeling based recommendation system for tagging issues (tag-issue matching). The conducted quantitative and qualitative evaluation shows that data from various sources can be utilized for effective matching in various forms of software development.