Séminaire Joost Noppen : The Art of Decision Making in Software Engineering
The Art of Decision Making in Software Engineering,
The development of software is a seemingly never-ending sequence of decisions, each of which directly influencing the quality of the software product that results from the project. Such decisions involve the selection of the software architecture, which software evolution scenarios to support, assessing which risk scenarios require contingency, etc. Rigourous analysis of the options available as well as best practice are our traditional mechanism for dealing with such decisions. However modern software development is in continuous flux, with new information surfacing, requirements getting redefined and progressing insight that changes our view of the challenges that need to be addressed before a project can be completed. The agile character of software development challenges our decision making capacity and requires us to re-evaluate our approach to identify its weaknesses. In this talk I will examine the concept of decision making in modern software development and the unique challenges we face. Can we always identify the best option ? Is there even a best option ? Do we have all the information we need to make a decision ? If not, can we make a best guess ?
I will complement this with exploring a number of approaches that aim to assist software developers in their decision making under agile circumstances by capturing the information they can and quantifying the degree to which elements are missing so a clearer insight into the risks of decision making can be provided. Alongside this I will introduce D-UEA-ST, our modular information processing and reasoning platform that can be used to develop decision making prototypes and easily deploy them with practitioners.
Joost Noppen is lecturer in Software Engineering at the University of East Anglia in Norwich (UK). Joost holds an M.Sc. degree and a Ph. D. degree in Computer Science from the University of Twente in the Netherlands with a special focus on computational intelligence in Software Engineering. At the University of East Anglia Joost leads the Software Engineering research group which focuses on decision support for modelling and analysing design information during the development of software systems. This includes questions such as : is it possible to reconstruct software designs from partial documentation ? How can you optimise the quality and extensibility of software systems when faced with uncertain change scenarios ? Can historical data of software projects be used to steer the design of new systems ? Joost has over 20 years experience in Software Engineering both from an academic and industrial perspective. He has founded a successful web development company as a student and he has developed software in collaboration with multi-national companies.