Skip to main content

About this free course

Become an OU student

Download this course

Share this free course

Approaches to software development
Approaches to software development

Start this free course now. Just create an account and sign in. Enrol and complete the course for a free statement of participation or digital badge if available.

Agile modelling

Agile modelling is Scott Ambler’s approach to lighter modelling (Ambler, 2002). It proposes a set of values, principles and practices to help software developers become agile modellers. These are mostly common sense but reinforce the alignment of modelling with an agile approach. Modelling should not be seen as a routine exercise that has to be done independently of how models are going to be used. Models should only be done with a purpose and up to the point where they stop being useful. There is no justification in spending too much time in getting a model right (consistent, complete, accurate) if the only aim is to communicate an overview of the structure that is in the developer’s mind. A typical activity of an agile modeller is to stand up with others in front of a whiteboard, sketch a few models, discuss these sketches, and then discard them if they serve no further need.

It requires practice to be able to pick, choose and adapt the modelling techniques that best suit a real situation. But that is often what happens in practice and many software organisations adapt development processes to their needs rather than using them as mandated. However there are also situations when it is not easy to assess how much effort should be put into a development activity, and in that case it is worth carrying modelling through in a systematic way to achieve a more complete view.

There are also tools to help in the creation of models from existing software. They can be used to document a piece of code that has not been modelled throughout development.