Sheffield Software Engineering Observatory
Lead Research Organisation:
University of Sheffield
Department Name: Computer Science
Abstract
The process of creating software systems is quite a complicated one, which involves a number of different activities that need to be fitted together properly / there is much more to it than just writing simple programs, as various descriptions of different parts of the programs have to be produced as well. One of the reasons why this process is complicated is that, where the software is to be used in real business situations, the team developing it may have to cope with frequent changes in the details of what the business needs the software to do, because the business is in turn having to respond to changes in the market place in which it works.Traditional ways of fitting together the activities in developing software do not cope very well with frequent changes in what the software is required to do, and so newer ways (usually called agile methods ) have been developed to try to do this better. Those who have developed these agile methods claim that they are actually better than the traditional ways of doing things, but there is very little hard evidence to back up this claim. Thus, the main goals of this project are to try to find evidence as to which of these ways of developing software are actually better, and (perhaps more importantly) to find out why the better ones are better.To do this we will run a number of experiments, where in each a number of teams of students will build real pieces of software for a real business client, and will compete to see who can build the best, but with different teams using different methods. Thus, some teams will use the traditional methods, some will use the agile methods, and some will use methods that are a mixture of traditional and agile. During each experiment, we will measure how much time they spend on each separate activity, and we will analyse the software and the other descriptions of it that they produce while they are working, to see how well they match the actual requirements of the business client, as these are changing. From this, we will be able to work out for each method how well it allows the teams to develop the software, and how the different features of each method contribute to this.
Organisations
Publications
Basili V
(2006)
Protocols in the use of empirical software engineering artifacts
in Empirical Software Engineering
Huang L
(2009)
Empirical investigation towards the effectiveness of Test First programming
in Information and Software Technology
Karn J
(2007)
A study into the effects of personality type and methodology on cohesion in software engineering teams
in Behaviour & Information Technology
Karn JS
(2008)
Measuring the effect of conflict on software engineering teams.
in Behavior research methods