Machine Learning is most often considered a branch of the broad pursuit of Artificial Intelligence in which it is used to process unstructured data, such as text. But there is an even greater potential for its application in enhancing analytics of structured numerical data. In this domain, we predict Machine Learning capabilities will continue to offer further insights by discovering patterns in our extensive data set of more than 4.7 billion observations of software development revisions.
Machine Learning offers an extension of the sophistication of data analytics, from automating analyses that our statisticians carry out, to discovering patterns that humans cannot. For example, our data scientists recognise that a software application that is no longer being worked on is likely to be no longer in use and can be retired. Identifying these patterns automatically is much more efficient. However, software developers continue to work on some obsolete software applications - and therefore it is more important to identify these, to save wasted resource. In this case, Machine Learning recognises more subtle patterns in the data to furnish our customers with this valuable insight.
In a similar way, Machine Learning recognises from the copious measures of software developer revisions the kind of work that they are doing, e.g., producing new functionality or refactoring code. This offers management insight into the proportion of these areas in which effort is invested. We are also using Machine Learning to refine our automated approach to estimating the functional size of a release, which avoids the expensive manual process of Function Point counting to gauge project progress. Beyond an augmented understanding of coding work being carried out, Machine Learning’s understanding of the amount of type of coding effort developers perform identifies experienced developers who spend a relatively high proportion of time on non-coding activities such as mentoring.
BlueOptima provides objective insight into the value development teams deliver, and to our end of avoiding subjectivity, Machine Learning empowers managers to avoid reliance on intuition and assumptions. For example, companies use BlueOptima insight into their software teams’ productivity and quality to inform decisions such as how to best deliver projects. There is an assumption here that service levels provided during one engagement would resemble those of a future project. Machine Learning defines the relationship of performance from one project to the next, so that managers can base decisions on predictions rather than purely data about past projects.
Predicting future performance from past measures is the basis of our Developer Testing offering: We offer hiring managers insight into how software developers will perform if recruited based on the relationship between performance in test and workplace settings. This is superior to companies using test results alone to inform their recruitment decisions. Improving these predictions is an ideal application of Machine Learning. We are also able to establish the relationship between test performance and how long it will be before new recruits begin performing at a consistent rate.
Analysis enhanced by Machine Learning identified which software developers are working on the same files, which helps managers structure teams and projects to aid workflow. It also helps managers identify working trends, e.g. changes in languages or tools used, to predict future skills demand, informing their recruitment strategy.
To learn more, please read "10 Ways BlueOptima is Using Machine Learning" [3pp-PDF], which can be accessed by completing the below form: