« Previous 1 2 3
Domain-driven design and agile development
Pulling Together
Conclusions: Only Together
To see how close the relationship between agility and DDD is, it's worth asking whether you can even realize DDD without agility. DDD requires that the project is oriented on business values and a precise understanding of what the project is really trying to achieve within the business. However, this process only works through close collaboration, and that requires agility. Similarly, as already mentioned, adapting the model implemented in the software as the basis of DDD knowledge crunching is something that can only be achieved through iterative and incremental development. Accordingly, you need to implement the basic cornerstones of agility to operate DDD successfully.
Now you are thinking that maybe you can implement agility without DDD. Ultimately, DDD seems to be more technical at its core and more focused on architecture. In fact, it is also possible to develop highly technical systems in an agile manner (e.g., a machine control system). DDD makes little sense in such an area because it focuses on systems that support business processes. For such systems, however, an agile process will likely lead to the use of at least basic elements of DDD.
DDD and agility are two essential mechanisms of modern software development. The core of agility is values from the Agile Manifesto and an approach defined in iterations. DDD is about mapping the domain and the subject matter particularly well and therefore operates more at the level of development and architecture, whereas agility tends to describe a process model. However, the two are more or less mutually dependent if you want to implement them effectively. People are ultimately at the center of both strategies and the question is how they can develop in an agile and domain-oriented manner. In areas such as sociotechnical systems, the two approaches come together to solve this central problem of software development.
If you want to delve further into the subject, you can check out a video online [6] to learn about possible challenges when implementing DDD.
Infos
- Agile Manifesto: https://agilemanifesto.org/principles.html
- Event storming: https://www.eventstorming.com
- Domain storytelling: https://domainstorytelling.org
- Evans, Eric. Domain-Driven Design: Tackling Complexity in the Heart of Software , O'Reilly, 2003: https://www.oreilly.com/library/view/domain-driven-design-tackling/0321125215/
- Team topologies: https://teamtopologies.com
- DDD Europe 2019: https://www.youtube.com/watch?v=eKIMpCF-cqU
- Eberhard Wolff homepage: https://ewolff.com
« Previous 1 2 3
Buy this article as PDF
(incl. VAT)