AgileByExample 2019

Simon Wright

Simon Wright has a BSc and PhD from the University of London. For 15 years he worked for GEC-Marconi on various defence projects. He then moved into the commercial software world, initially with the System Modelling tool COSMOS and then with the Requirements Management tool RTM. For the last 14 years he has developed his own client base including the Russian Atomic Energy Authority, Moscow, The European Spallation Source, Lund, Novo Nordisk, Denmark and The Norwegian Army, Oslo.

He is an experienced lecturer and has trained many hundreds of people in requirements engineering in a variety of countries. Simon and has presented at over 30 conferences and seminars, in the UK, the USA and Europe.

AI Techniques for Agile Estimation

The use of Artificial Intelligence has become ubiquitous. Every time we do a search on Google or invoke Alexa, Siri or Cortana, background AI services swing into action. So, could AI help with estimation? Can Alexa make estimates?

The input to the process of agile estimation is the specification of what the software needs to do. This "specification of need" comes in many shapes and sizes such as a list of User Stories, a User Requirements Document or a UML/SysML model; for simplicity these are all referred to as requirements.

Requirements generally exist in two forms, textural or diagrammatic. An AI assistant like Alexa, Siri or Cortana can translate the spoken word into electronic text and vice-versa. It would seem prudent therefore to work with textural requirements so that the electronic text produced by the AI assistant can be analyzed. The AI technique of Natural Language Processing, (NLP) can then be used to identify functional processes and their inputs and outputs, from which a functional size can be estimated.

But to be useful the functional size estimate produced by Alexa should be accurate, precise and repeatable. Estimate accuracy is a function of requirement correctness, if a requirement is incorrectly expressed, then the estimate is inaccurate. Precision is a function of requirement completeness, if a requirement is missed, then the estimate is imprecise. Repeatability is a function of requirement consistency, if requirements uses terms inconsistently then different estimators are likely to use different interpretations and thereby produce different estimates.

Linguistic rules for correctness, completeness and consistency can be defined and requirements checked against the rules. Once the requirements have passed these checks they can then be analyzed for functional processes, inputs and outputs allowing the functional size to be estimated.

Once a functional size has been established this can be transformed into a cost estimate using an algorithm. Many algorithms exist and many need to be calibrated with previous data. The Putnam equation is an empirical software effort estimation model that has the key advantage that it is simple to calibrate. Most software organizations collect size, effort and duration (time) for past projects or indeed past sprints. This data can be converted to a productivity index that can be used for future effort estimates.

This presentation will show how the spoken word can be processed into a software cost estimate using existing AI tools.