Understanding, shaping, communicating together.
Dr. Stefan Hofer, Henning Schwentner and Prof. Dr.-Ing. Heinz Züllighoven on the state of professional modelling after one and a half decades of DDD.
For many years we have been developing application software to optimally support professionals at their workplaces. This is a technically demanding task that cannot be achieved if we let specification documents "fly over the fence", as used to be the case. Agile was a big step in the right direction for us. Developing application software together with all stakeholders - that characterises agile software development in general and also the current methods of software development such as Domain-Driven Design (DDD).
But in a concrete project, in addition to "agile" and "DDD", we need techniques to achieve and record the technical understanding among the participants easily and quickly. We summarise these procedures with the ideas and concepts behind them under the label Collaborative Modeling (hereafter "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 develop a good application. Conversely, subject matter experts and users should understand what possibilities software opens up and how digitisation will affect their daily work. Developers and subject matter experts need a common language to be able to talk about the domain and the resulting requirements for the software. Only in this way will the software reflect what the developers have understood from the requirements from the domain and what users and business experts expect from a digitisation of the business processes. CoMo should transport the expertise from the heads of the users into the heads of developers, testers, product owners, product managers, business analysts - to everyone involved in software development. Direct feedback between all participants is crucial here. This distinguishes CoMo approaches, for example, from a classic requirements technique in which interviews are conducted and scenarios are derived from them.
CoMo is important in Domain-Driven Design (DDD) - probably the most successful method at the moment, which places technicality at the centre of software development. The technical 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).