Revamp your software architectures with Domain-Driven Transformation

Panacea

Tactical Transformation

Tactical transformation is about strengthening the expertise in your legacy software that is often inconsistent and hidden under a heap of technology. A number of measures help to expose the business case [5].

Start by separating the business and technical source codes from each other. Then, to increase cohesion, you enrich your modeling from a technical perspective, use value objects [6], introduce technical prerequisites, and make the technical identity of entities explicit. At the same time, you reduce the coupling by introducing ID references at unit boundaries, reducing inheritance in domain-oriented source code, and using domain events. Finally, it's essential to document the architecture in code and test it.

Conclusions

Whether legacy systems are simply in poor condition or already burning wrecks, business treasure is hidden in them all. In most cases, the goodies are valuable enough to bring out of hiding and back into the light, rather than being replaced with completely new development. With new development, you can expect so many unknowns that the overhead often exceeds the estimates many times over.

Like greenfield development, refurbishing a legacy system does consume serious chunks of time. Domain-driven transformation helps implement this undertaking in small increments, mitigating risk at the same time. To unearth the domain-oriented treasure in a legacy system, you need to identify the parts of the source code that contain the valuable business knowledge.

Of course, this article can only give you a rough overview of the massive field of software architecture. For more on the topic, see our book, Domain-driven Transformation [7].

Infos

  1. "StranglerFigApplication" by Martin Fowler, June 2004: https://martinfowler.com/bliki/StranglerFigApplication.html
  2. Cross-layer refactoring: https://hschwentner.io/domain-driven-refactorings/socio-technical/form-cross-functional-team-out-of-layer-team-members
  3. Partly layered refactoring: https://hschwentner.io/domain-driven-refactorings/socio-technical/form-second-team-out-of-partly-layer-team-and-first-team-members
  4. Second-team refactoring: https://hschwentner.io/domain-driven-refactorings/socio-technical/form-second-team-out-of-layer-team-only
  5. Domain-driven refactoring: https://hschwentner.io/domain-driven-refactorings
  6. Value object: https://martinfowler.com/bliki/ValueObject.html
  7. Lilienthal, Carola, and Henning Schwentner. Domain-Driven Transformation: Monolithen und Microservices zukunftsfähig machen . dpunkt, 2023, https://dpunkt.de/produkt/domain-driven-transformation/ (in German) Domain-Driven Transformation . Addison-Wesley, upcoming. (in English)
  8. Hofer, Stefan, and Henning Schwentner. Domain Storytelling: Gemeinschaftlich, visuell und agil zu fachlich wertvoller Software . dpunkt, 2023, https://dpunkt.de/produkt/domain-storytelling/ (in German); Domain Storytelling: A Collaborative, Visual, and Agile Way to Build Domain-Driven Software . Addison-Wesley, 2021 (in English)
  9. ComoCamp: https://comocamp.org

The Author

Dr. Carola Lilienthal is a software architect and managing director at WPS – Workplace Solutions GmbH (Hamburg and Berlin). Since 2003 she has been analyzing the future viability of software architectures, writing books and articles on the subject, and delivering keynotes at conferences.

Henning Schwentner lives out his passion for high-quality programming as a coder, coach, and consultant at WPS – Workplace Solutions GmbH. He is a public speaker on domain-driven design, the author of Domain Storytelling [8], and a co-founder of ComoCamp [9].

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy ADMIN Magazine

SINGLE ISSUES
 
SUBSCRIPTIONS
 
TABLET & SMARTPHONE APPS
Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

comments powered by Disqus