While the IT industry prides itself on being at the very bleeding edge of technology, it also oversees a relatively high proportion of projects that fail outright or do not meet their originally intended goals for one reason or another. Applying domain-driven design (DDD) can significantly help improve the odds of achieving success. While the concepts of DDD have been in existence for a long time, practical application and scaling has been a challenge, arguably due to a lack of practical techniques, tools and real-world examples that bring all these concepts together as a cohesive whole. In this hands-on practitioner-focused course, we will cover how individuals and teams can apply the strategic and tactical elements of DDD to create valuable software solutions that exhibit high degrees of internal and external quality.
1 Discover how to arrive at a shared understanding of the problem domain
2 Understand how to apply strategic design to gain a collective understanding of the problem
3 Establish a clear demarcation between core and peripheral systems
4 Identify how to evolve and decompose complex systems into well-factored components
5 Understand how to apply tactical design to arrive at robust solutions
6 Apply elaboration techniques such as domain storytelling and eventstorming
7 Understand how various architecture patterns (such as layered, SOA, microservices, EDA, Serverless, etc.) work alongside DDD
8 Understand how to apply DDD in a legacy environment (processes, technology) and migrate to an ecosystem of independent components
Head of Technology @Thoughtworks
Premanand (Prem) Chandrasekaran is a technology leader and change agent with a solid track record of leading large technology teams and helping businesses deliver mission-critical problems while exhibiting high internal and external quality. In the past two decades, he has had the pleasure of helping a variety of clients and domains ranging from financial services, online retailers, education, and healthcare startups among others. His specialties include technical innovation, architecture, continuous delivery, agile/iterative transformation and employee development. When not fiddling with his trusty laptop, he spends time with his son ripping beyblades, playing video games and analyzing the nuances of cricket.
Find Premanand Chandrasekaran at:
Technical Principal @Thoughtworks
Karthik Krishnan is a technology leader with over 25 years of experience in designing and building large-scale enterprise solutions across financial and retail domains. He has played numerous technical roles in leading product development for major financial institutions. He is currently serving the role of Technical Principal at Thoughtworks. He is passionate about platform thinking, solution architecture, application security and strives to be known as a coding architect. His most recent assignment entailed leading a large technology team helping their clients in their legacy modernization journey with Cloud. When not working, he spends time practicing playing tunes on his musical keyboard.
Find Karthik Krishnan at:
Zichuan Xiong has been a Principal at Thoughtworks since 2008. He works with Chief Digital / Data / and Technology Officers to drive business impact across tech and product organizations. His strengths and experiences are DDD, Data Mesh, and Org Design / Changes.