Collaborative Modelling
Understanding, shaping and communicating together.
Dr Stefan Hofer, Henning Schwentner and Prof. Dr.-Ing. Heinz Züllighoven on the state of technical modelling after a decade and a half of DDD.
For many years, we have been developing application software designed to optimally support professionals at their workplaces. This is a technically demanding task that cannot be achieved if we allow specification documents to be "thrown over the fence", as used to be the case. An agile approach was a big step in the right direction for us. Developing application software together with everyone involved - this characterises agile software development in general and also the current methods of software development such as Domain-Driven Design (DDD).
However, in a specific project, in addition to "agile" and "DDD", we also need techniques to quickly and easily reach and record the technical understanding among those involved. We summarise these approaches with the ideas and concepts behind them under the label of collaborative modelling (hereinafter referred to as "CoMo").
What is Collaborative Modelling?
CoMo is behind many successful methods that would traditionally fall under "requirements elicitation". IT experts need to understand the domain, i.e. the tasks and workflows of the users, in order to be able to develop a good application. Conversely, business experts and users should understand the possibilities that software opens up and how digitalisation will affect their daily work. Developers and business experts need a common language in order to be able to talk about the domain and the resulting requirements for the software. Only then will the software reflect what the developers have understood about the requirements from the domain and what users and business experts expect from the digitalisation of business processes. CoMo is intended to transport the expertise from the minds of users to the minds of developers, testers, product owners, product managers and business analysts - to everyone involved in software development. Direct feedback between all those involved is crucial here. This distinguishes CoMo approaches from traditional requirements engineering, for example, in which interviews are conducted and scenarios are derived from them.
CoMo is important in Domain-Driven Design (DDD) - probably the most successful method currently available, which places technicality at the centre of software development. Specialised language, events, actions, tools and structures of the domain form the so-called domain model, which the developers map in the software. A valid domain model can only be created jointly by developers and domain experts. DDD experts such as Paul Rayner now see collaborative modelling as a pillar of DDD (see Figure 1).