Domain-Driven Design Europe
Event Storming - Alberto Brandolini - DDD Europe 2019
updated
dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
Beyond the "red green refactor" loop of test-driven development: what is the fuss all about?"
In this session we'll cover why you should do TDD, even if you're doing a hackathon and throwing away the code. We'll look at the design goals behind the tool.
TDD as socratic dialogue;
TDD as mindfulness;
Testing as reasoning.
To do that I'll start by showing you how I teach TDD, slowing down in each part and doing techniques of lazy-naming, branch reduction, and purposeful-bad-faith.
Then we shall dive into the why.
About Romeu Moura
Endless conversation — with friends, compilers — on art, equivocacy, Symmathesy, methods, absurdism, dialectic, paradigm jumps, serendipity.
Watch part one here:
youtu.be/kDfuP88hVgU
dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
Beyond the "red green refactor" loop of test-driven development: what is the fuss all about?"
In this session we'll cover why you should do TDD, even if you're doing a hackathon and throwing away the code. We'll look at the design goals behind the tool.
TDD as socratic dialogue;
TDD as mindfulness;
Testing as reasoning.
To do that I'll start by showing you how I teach TDD, slowing down in each part and doing techniques of lazy-naming, branch reduction, and purposeful-bad-faith.
Then we shall dive into the why.
About Romeu Moura
Endless conversation — with friends, compilers — on art, equivocacy, Symmathesy, methods, absurdism, dialectic, paradigm jumps, serendipity.
Watch part two here:
youtu.be/QVpu19o6TsU
dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
Talk by Yves Lorphelin
A few years ago the system I was working on involved a set of rules that allows for job applicants taking part of selection tests to make use of exemptions or (unfortunately) blocking them from taking further tests . This part of the system began as a set of queries against the main database, with no explicit domain knowledge in the code. As time passed.... this code proved difficult to reason about as requirements changed, new reasons to give exemptions or block application were introduced. In the end , it was refactored as a combination of strategy & composite pattern. The gain there was of course being able to add / remove new strategies more easily. The main point I got out of that refactoring though was we got explicit domain terminology , clear rules and an easy way to reason about the specifics of this island of better model in the code.
Yves Lorphelin somehow landed into the world of development. Building systems to solve business problems, trying not to create new ones. And always creating long term relationships with customers. He worked in all kind of domains: banking, leasing, logistics, Healthcare, HR recruitment,... And spends his time building new systems, replacing legacy, integrating systems.
dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
Are you interested in using Domain-Driven Design (DDD) to create maintainable and scalable software, but not sure how to get started? Or perhaps you've heard that DDD is only suitable for complex domains - and when starting out, you're not sure if your project will need it?
Join me for a live coding demonstration that will show you how to apply Test-Driven Development (TDD) from the very beginning of a project so you can bring DDD in when you need it.
We'll start with the simplest possible implementation - a basic CRUD system to help a university handle student enrolments. We'll gradually add more complex requirements, such as the need to ensure courses don't become over-enrolled - which will prompt us to do some code-smell refactoring, strangely enough arriving at things that start to look like the DDD tactical patterns of repositories, aggregates, value objects and domain services.
In implementing these requirements, inspiration will strike! What if the model were changed - what if we allowed all enrolments and then allocated resources to the most popular courses as required so we never have to prevent a student from enrolling? We'll now see how the TDD tests and the neatly refactored domain models make it much easier to embark on this dramatic change - in other words, how much more maintainable our DDD codebase has become.
If you'd like to review the source code from this talk, the full git commit history is available here: github.com/chrissimon-au/tdd-ddd-demo-dotnet.
Chris is a Startup CTO Coach helping startups realise their vision and new CTOs flourish in their roles. He also supports executives & boards with strategic technology advice, and engineering teams with training, mentoring and consulting in architecture, quality, domain driven design and test driven development.
To support teams using Domain-Driven Design, he recently launched https://contextive.tech and co-founded the DDD Australia meetup.
He is the technical co-founder of https://www.inloop.com.au, home of Australian Fintech success stories https://www.flexischools.com.au and lanternpay.com (Recently acquired by NAB).
dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
Lighting Talk
dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
Talk by Julien Topçu and Josian Chevalier
Just as models should be iterative, strategic design should change when the context and our understanding of the problem evolve. As a model grows to solve more problems, it becomes less supple in its ability to evolve. Tensions arise within the model that struggles to stay coherent.
Eventually it reaches a critical mass and becomes a big ball of mud.
How do we know when it’s time to let new models emerge? How do we carry on the decision to split a model? How can we handle the progressive differentiation of our models while avoiding unnecessary coupling? It’s not as easy as a clean axe cut in the middle, finding the right boundaries is hard.
We would like to introduce the Model Mitosis, a dynamic pattern used to split a model into multiple ones that will get shaped and decoupled iteratively.
About Julien Topçu
I like to craft software with high business value using techniques from Domain-Driven Design, all powered by Xtreme Programming in the Kanban #NoEstimates philosophy. Member of the OWASP foundation, I evangelise on application security techniques in order to avoid being hacked properly.
About Josian Chevalier
Software Craftsman at Shodo, I specialize in Domain Driven Design. I strive to improve my approach of software development and my knowledge, as well as raise awareness about software quality among developers.
dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
Lighting Talk
dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
In 2015 we launched an innovative new product into the Australian Fintech landscape - a healthcare & disability insurance claiming platform to simplify life for support providers, recipients and insurers.
It was intended that a heterogeneous group of support providers and insurers would engage with the platform - from doctors to physiotherapists to disability support workers on one side, and private insurers & state or federal government departments on the other.
Although the high level process for each of these groups was similar, the extant rules, terminology and UX scenarios varied.
In this talk, we'll do a deep dive of the modelling journey we went on, starting with aligning the model with our first customer, evolving it with our second, and radically reinventing it with our third.
We'll explore how the context map evolved from being aligned with user channels to being aligned with insurer subdomains and how we balanced the tradeoffs between specificity and genericness in the tactical pattern implementation within core domain contexts.
About Chris Simon
Chris is a Startup CTO Coach helping startups realise their vision and new CTOs flourish in their roles. He also supports executives & boards with strategic technology advice, and engineering teams with training, mentoring and consulting in architecture, quality, domain driven design and test driven development.
To support teams using Domain-Driven Design, he recently launched https://contextive.tech and co-founded the DDD Australia meetup.
He is the technical co-founder of https://www.inloop.com.au, home of Australian Fintech success stories https://www.flexischools.com.au and lanternpay.com (Recently acquired by NAB).
dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
Henning (dedicated to DDD) and Mike (ferociously FP since the 80s) agree on all the fundamentals of software architecture, but when it comes to designing models, they can't seem to find common ground. DDD and FP folks like to congratulate themselves on how well they go together – how FP modeling techniques complement DDD models, or how DDD concepts are really FP in disguise. However, much work remains to unify these two worlds:
DDD folks like to use the ubiquitous concrete language of the application domain, whereas FP folks like abstractions and the terminology that goes with it. Mixing the two results in inconsistent or contradictory vocabulary.
While both camps prefer operation-rich models, the approaches to designing these operations are incompatible. Specifically, the OO influence of DDD tilts DDD models towards the OO idea of having the objects populating the domain be encapsulated and thus isolated, whereas in FP this encapsulation is an emergent (or not emergent) phenomenon. .
DDD’s tactical design is inherently stateful, and FP is inherently stateless. This naturally leads to very different approaches to interface design, and more importantly, to the use of types and their relationship to the ubiquitous language. Moreover, this results in fundamental differences in the division between entities and value objects. Note that this is the case even when Tactical DDD is expressed in functional languages, as the means of expression change, but the fundamental approach is the same.
Even more fundamentally, DDD focuses on modeling the domain, whereas FP focuses on the human perception of the domain – this might seem like an esoteric difference, but has pervasive practical impact. Thus, to reap the full potential of combining DDD and FP, we first need to recognize the differences. While DDD has much to teach FP about relating the domain language to the code, it can learn from FP its extensive set of techniques for turning information into data as well as the judicious use of abstraction. Henning and Mike will highlight how DDD and FP approaches to design differ, and offer possible approaches to unifying both for mutual gain and insight.
Michael Sperber is CEO of Active Group in Tübingen, Germany. Mike specializes in functional programming, and has been an internationally recognized expert in the field: He has spoken at the top conferences in programming languages, authored many papers on the subject as well as several books. Mike is one of the founders of the funktionale-programmierung.de blog, and one of the co-organizers of the BOB developer conference.
Henning loves programming in high quality. He lives this passion as coder, coach, and consultant at WPS – Workplace Solutions. There he helps teams to structure their monoliths or to build new systems from the beginning with a sustainable architecture. Microservices or self-contained systems are often the result. Henning is author of Domain Storytelling (Addison-Wesley, 2022), and the www.LeasingNinja.io as well as translator of “Domain-Driven Design kompakt” (dpunkt, 2017).
dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
Lighting Talk
dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
Many legacy systems suffer from: model anemia, being a big ball of mud, or bad team organization. Most of them suffer from a combination of these diseases. Domain-Driven Design can help transform such systems into a healthier state. From my (and others) practice I started to collect a catalog of refactorings towards DDD at hschwentner.io/domain-driven-refactorings/. The catalog is split into four categories:
Strategic Refactorings: Help with splitting a monolith architecture into bounded contexts.
Socio-technical Refactorings: Reorganize the teams. This is often enabled by and/or accompanying strategic refactorings.
Tactical Refactorings Against Model Anemia: Change the inner implementation of a bounded context.
Tactical Refactorings Against BBOM: support the strategic refactorings on a tactical level.
In this session I would like to focus on the parts of the catalog that help with transforming your monolith: strategic refactorings and tactical refactorings that support them.
Henning loves programming in high quality. He lives this passion as coder, coach, and consultant at WPS – Workplace Solutions. There he helps teams to structure their monoliths or to build new systems from the beginning with a sustainable architecture. Microservices or self-contained systems are often the result. Henning is author of Domain Storytelling (Addison-Wesley, 2022), and the www.LeasingNinja.io as well as translator of “Domain-Driven Design kompakt” (dpunkt, 2017).
dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
Lessons learned from modelling in a CQRS/ES environment. From the evergreen heuristics for aggregate boundaries to layered state machines and cross Bounded Contexts visualization.
About Alberto Brandolini
DDD practitioner since the old ages, inventor of EventStorming, a guy with a masterplan.
dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
The Three Economies theory illustrates the core conflict between innovation and efficiency as organizational incentives and payoffs. We can use this theory to analyze Platform building and adoption holistically across different selfish interests. In this talk Jabe Bloom, who originally designed the Three Economies framework, will discuss the theory together with Platform/Service Design to get both innovation and efficiency while reducing complexity, cycle times, operational burden and avoiding the tragedy of the commons.
To address these issues, we need to advance practice from platforms as an offering towards platforms as a commons, where ReCommoning is an ongoing optimization of resources and capabilities. This requires new practices for establishing negotiation, collaboration, cooperation and coordination.
Organizations increasingly invest in ‘Platforms’, but too many platforms cost a lot to develop and never get adopted. If you build it, they may not come. Jabe, a Transition Designer, will point out key signposts to look for on the way towards platform thinking and transitioning towards your optimally fit for purpose Platform.
Jabe Bloom has been transforming and researching the organizational dynamics and interactions of management, design, development, and operational excellence for over 20 years as an executive, academic and consultant.
dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
Like it or loathe it, metaphor – our ability to perceive one thing through another – is a fundamental aspect of our capacity to share and comprehend abstract, complex and ambiguous concepts. Our language is peppered with metaphor; our conceptual systems are positively infused with metaphor. In short, metaphor IS our ubiquitous language. When we try to make sense of organisations, metaphor can be a powerful tool, describing many of their aspects, from structures and processes to purpose, leadership style and strategy. And as technology both creates new boundaries and blurs old ones, we use them in our tools and frameworks and sometimes even in our job titles. But how conscious are we of the metaphors we choose, or do they choose us? And how intentional are we when we apply metaphors in our designs? Regardless of role, we are all designers, and designing increasingly occupies the domain of the collective rather than the individual. For those who identify as designers, we become, in part, facilitators, eliciting answers to complex problems from the group. In this session, we’ll explore the extent to which metaphor permeates our thinking and action, whether we’re always fully cognizant of metaphors in our design processes, how we might develop a greater awareness of them and their limitations so that we can be intentional in their application in our work as designers of organisational change.
Chris is both a consultant from Thoughtworks specialising in organisational change, and a PhD candidate studying at the Royal College of Art. His research is grounded in service design and his thesis explores the use of metaphor as a design resource in organisational conversations. In this talk, Chris will share some of his research so far and present provocations for discussion.
dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
Designing a software system is difficult. Understanding the context in which a software system lives is more difficult. In order to understand that context, developers need to communicate with the business. But there is a lot that can go wrong while communicating with the business. For example people can misunderstand what is being said, they are scared to speak up, tensions could grow, and conflict can arise. These social dynamics cause groups to stop sharing their knowledge, which can end up in resistance behaviour from sarcastic jokes, to stopped communication or even not showing up or leaving the session. No wonder a lot of organisations resort to a more autocratic form of decision-making, where one person, the architect, analyses and makes the decision. If we want to make sustainable design decisions for our architecture that is embraced by everyone, it is better to use visual techniques to make assumptions more explicit which will improve collaboration between developer teams and the domain experts.
In this talk we will introduce you to collaborative modelling and its social dynamic challenges. Collaborative modelling is a visualisation technique to analyse complex and conflict-laden decision-making processes with all relevant stakeholders and decision-makers to create a shared understanding. And some, maybe even most of these sessions need to be facilitated so that everyone can feel a part of the decision and can potentially give the input they have. I will explain why it requires us to have a different skills set like observing, listening, trying to stay neutral and show compassion. Because that improved collaboration will let software teams understand better the context and underlying problems the business has. That understanding enables the software teams to design and build sustainable quality software products.
Gien Verschatse is an experienced consultant and software engineer that specialises in domain modelling and software architecture. She's fluent in both object-oriented and functional programming, mostly in .NET. As a Domain-Driven Design practitioner, she always looks to bridge the gaps between experts, users, and engineers.
As a side interest, she's researching the science of decision-making strategies, to help teams improve how they make technical and organisational decisions. She shares her knowledge by speaking and teaching at international conferences.
And when she is not doing all that, you'll find her on the sofa, reading a book and sipping coffee.
Organised by Aardling (https://aardling.eu/)
Our goal is to make shared domain language and key domain concepts expressed in the code clearer and more explicit, resulting in code that is both malleable and easier to understand.
This will be a fun live-coding session demonstrating the knowledge loop of acquiring domain knowledge via EventStorming, using these new-found concepts to understand and refactor existing unclear application code, and then applying the coding insights back to our modeling.
We'll be intentionally looking for hidden domain concepts, naming them, moving them where they belong, and applying various tactical modeling patterns via TDD to express the domain model more clearly in code.
Paul Rayner is a developer, instructor, coach and popular conference speaker. He co-founded DDD Denver and is founder and chairman of the Explore DDD Conference (exploreddd.com). His company Virtual Genius LLC, provides training and coaching in DDD and EventStorming for agile teams (virtualgenius.com). Paul is from Perth, Australia, but chooses to live, work and play with his wife and two children, in Denver, Colorado. He blogs at thepaulrayner.com and tweets with an Australian accent at @ThePaulRayner.
dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
In this talk, I will share my observations through the systems thinking lens, of what happened in a large change initiative in a big bank, where DDD played a central role. You will hear examples of sociotechnical systems dynamics and episodes about shifting dominance of competing feedback loops. You will be invited to partake in a postmortem forensic of what could have happened, what unfortunately didn’t happen, and the many what-if’s of alternate realities, or pasts. For people new to systems thinking, a positive side benefit can be a sneak peak into systems modelling building blocks and systems archetypes.
Xin is a sociotechnical architect, DDD evangelist and independent consultant. She believes that a product, domain and team-oriented architecture is the super glue to bind multiple agile teams navigating toward a common horizon. She’s spearheaded large-scale change initiatives in boundary-spanning architect roles, weaving together strategy, products, teams, systems, domains into coherent models to guide progress and reduce stress. She architects collective experiences in scale-ups and enterprises to unravel complexity and discover leverage points. In sociotechnical environments where a team’s cognitive capacity is under constant stress, she practices domain-driven design and facilitates collaborative modelling to help teams and organisations make sense, make decisions and make intuitive business software.
dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
Sociotechnical systems are nonlinear, dynamic systems that can exhibit complex and unpredictable behavior. These systems are constantly changing to provide value to customers, gain a competitive edge in the market or simply survive. Understanding the evolution patterns of sociotechnical systems is important to anticipate their behavior, designing improvement trajectory and managing change.
In this talk, we explore evolution from real world use cases in its broadest scope, e.g., modernization, migration, adaptation, restructuring… We combine software evolution with the organization dynamics and people interactions to identify evolution patterns in sociotechnical systems. Finally, we study the impact of leadership and decision making on the success or failure of these cases.
About Amal Tahri
Passionate about Technology, Sociology and Philosophy
dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
We are used to treating coupling as the necessary evil. Hence, we aim to break systems apart into the smallest services possible, in the ever-lasting quest of decoupling everything. But what results are we getting by following this reasoning? — Instead of the promised land of evolvable systems, many such “decouple everything” endeavors lead straight into the chains of distributed monoliths. Can we do better? What if there is a better way to handle coupling in distributed systems? Or even, what if instead of fighting coupling, we can use it as a heuristic for designing systems that are actually evolvable and maintainable? That’s exactly what you will learn in this session: what coupling is, and how you can use it as a design tool. We will start by taking a journey through time, and explore the different models of evaluating coupling. Next, we will combine the existing knowledge into a coherent model — a simple function for evaluating a system’s decomposition into components. This function will allow you to assess the expected effort for evolving a system and use it as a heuristic for optimizing architectural design decisions.
Vlad Khononov is a software architect with over 20 years of industry experience, during which he has worked for companies large and small in roles ranging from webmaster to chief architect. Vlad is a long-time proponent of domain-driven design and evolutionary architecture and currently helps companies make sense of their business domains, untangle monoliths, and tackle complex architectural challenges.
dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
Residuality theory is a novel approach where the software architecture of a system emerges as a result of applying multiple stressors to the system. However, some seasoned software practitioners often design solid software architecture without knowing this theory.
We have reasons to consider that the heuristics from modern design approaches like Domain-Driven Design may well be congruent, to some extent, with what residuality theory would suggest. This talk by the author of the theory (Barry) and by a DDD long-timer (Cyrille) will explore the intersection between the two worlds, in a rigorous yet entertaining way.
Cyrille Martraire (@cyriux) is CTO and partner at Arolla (@ArollaFr), the founder of the Paris Software Craftsmanship community and a regular speaker at international conferences. With 20+ years of experience in startups, software vendors and banks, Cyrille still calls himself a developer. He's passionate about design in every aspect: TDD, BDD and in particular DDD.
Cyrille also has an extensive knowledge of capital market finance, and he's the author of the book Living Documentation published by Addison-Wesley Professional in summer 2019.
Barry is an Architect and researcher who has held Chief Architect positions at Microsoft, among others. He has also been a startup CTO, the Worldwide Lead for the Solutions Architecture Community at Microsoft, and founder of the Swedish Azure User Group. He is also a PhD candidate in software design and complexity science and the inventor of Residuality Theory.
dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
The economic rationale for software design is increased revenue & decreased cost. The relationship rationale for software design is to encourage trust through a steady delivery of value. The humane rationale for software design is to care for & encourage the growth of the geeks working on the software &, by extension, care for & encourage the growth of those affected by geeky decisions.
A short list of principles & observations serves to explain why satisfying all these rationales is difficult--coupling & cohesion, time value versus optionality, power laws. The same list suggests a way forward for software designers in a complicated, conflicted, uncertain, & deeply human world--large changes in small, safe steps.
We'll start with a 10x/day situation--you need to change some messy code. Do you tidy first? (Spoiler: likely yes, only as much as you need for now.)
About Kent Beck:
Kent consistently challenges software engineering dogma, promoting ideas like patterns, test-driven development, and Extreme Programming. Currently affiliated with Three Rivers Institute and Gusto, he is the author of many Addison-Wesley titles.
Organised by Aardling (https://aardling.eu/)
Speakers: Andrew Harmel-Law, Diana Montalion, Mike Rozinsky, Gayathri Thiyagarajan and Dan Young
This year we’ve architected an alternative approach to the keynote at DDD Europe. We’ve designed an opening session that aims to spark connection, as well as welcome participation, ideas, and conversation as everyone comes together at the beginning of the conference.
Meet Andrew. As an architect Andrew thinks a lot about architecture. Mostly he thinks about how irrelevant architecture is if it doesn’t get shipped to production. He worries a lot too. He worries about how to help all the teams he’s supposed to be helping, without slowing them down, getting in their way, or making their lives harder rather than easier.
Andrew’s worries have led him to explore the potential offered by a different mindset; one that tells a different story about the role of "Architects", while bringing the practice of "Architecture" to the fore.
As you learn about this practice of doing architecture, we’ll invite you to reflect on the meaning of this to you, and to share your own thoughts and ideas. You’ll also have the opportunity to discuss things with others if you want to.
We’ll be asking questions like, ‘How can everyone contribute to architecture, without things reducing to chaos?’, ‘How might this succeed or fail in my context?’, and ‘How might we improve these ideas?’
During the session Andrew, Diana and Gayathri will bring their own reflections and perspectives into the attendee-wide conversation, as Dan and Mike manage the process for everyone in the room.
For more infor on the talk, visit: 2022.dddeurope.com/program/a-commune-in-the-ivory-tower-a-new-approach-to-architecture
http://dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
In a world of rapid changes and increasing uncertainties, organisations have to continuously adapt and evolve to remain competitive and excel in the market. In such a dynamic business landscape organisations need to design for adaptability.
Combining different perspectives and techniques from business strategy (Wardley Mapping), software architecture and design (Domain-Driven Design), and team organisation (Team Topologies) provides a powerful toolset to design, build and evolve adaptive systems and team structures for a fast flow of change.
This talk illustrates the concepts, connects the dots between these three perspectives, and demonstrates how these techniques help to evolve a legacy system for a fast flow of change.
Susanne Kaiser is an independent tech consultant from Hamburg, Germany, supporting organizations with building socio-technical systems. She is passionate about connecting the dots between Wardley Mapping, Domain-Driven Design, and Team Topologies as a holistic approach to design and build adaptive systems for a fast flow of change. Susanne was previously working as a startup CTO and has a background in computer sciences and experience in software development and software architecture since 2002. She is the author of the book "Adaptive Systems with Domain-Driven Design, Wardley Mapping, and Team Topologies: Architecture for Flow" (Addison-Wesley Signature Series (Vernon), 2022).
http://dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
"Want to make your first Domain Model? Behavior Driven Development to your rescue"
Domain models is a core concepts in DDD and building useful domain models takes your project a big step in the right direction. But what is actually a domain model?
The goal of this talk is to illustrate what a domain model is and how a useful domain model both helps solving the problem and building a solution that is easier to change.
Then I will, based on my experience from multiple software projects, give you a practical approach for how to use Behavior Driven Design (BDD) to stepwise shape and reshape your domain model.
Anita is a UX passionate software developer. She has more than 20 years of experience with creating complex business critical applications, mainly for Equinor ASA, a huge Norwegian energy company.
Anita has experience from all parts of the software design process, lately focusing more and more on software architecture and hands on coding. She enjoys spending her workdays using her knowledge of the users and their domain and applying this insight toward the utilization of Domain Driven Design principles in the process of implementing new software solutions.
http://dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
Modelling tends to focus on what’s specific to your domain, which means starting from the beginning, all the way down to the level of individual number and text values. But data such as telephone numbers and people’s names have been around for longer than computers, and don’t need modelling all over again. Reinventing models for these universal values leads to weak models that don’t accommodate real-world complexity, and fail to benefit from international standards.
Everyone involved in detailed software design needs to know what telephone numbers, house numbers and aircraft tail numbers have in common. Attendees will discover different kinds of numbers, learn about validating email addresses and bank account numbers, and realise how unoriginal some of their bugs are. And more important than bugs that are easy to fix, we’ll see why modelling with familiar data can lead to software that fails to be inclusive.
Peter Hilton is a product manager, developer, writer, speaker, trainer, and musician. Peter’s professional interests are no-code automation, software functional design, agile software development methods, and software documentation. Peter consults for software companies and development teams, and delivers the occasional presentation and workshop.
Peter has previously presented at numerous European developer conferences, co-authored ‘Play for Scala’ (Manning Publications), and has taught ‘Fast Track to Play with Scala’, and more recently his own training course on ‘How to write maintainable code’.
http://dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
"A Commune in the Ivory Tower? - A New Approach to Architecture - Andrew Harmel-Law, Diana Montalion, Mike Rozinsky, Gayathri Thiyagarajan and Dan Young"
This year we’ve architected an alternative approach to the keynote at DDD Europe. We’ve designed an opening session that aims to spark connection, as well as welcome participation, ideas, and conversation as everyone comes together at the beginning of the conference.
Meet Andrew. As an architect Andrew thinks a lot about architecture. Mostly he thinks about how irrelevant architecture is if it doesn’t get shipped to production. He worries a lot too. He worries about how to help all the teams he’s supposed to be helping, without slowing them down, getting in their way, or making their lives harder rather than easier.
Andrew’s worries have led him to explore the potential offered by a different mindset; one that tells a different story about the role of "Architects", while bringing the practice of "Architecture" to the fore.
As you learn about this practice of doing architecture, we’ll invite you to reflect on the meaning of this to you, and to share your own thoughts and ideas. You’ll also have the opportunity to discuss things with others if you want to.
We’ll be asking questions like, ‘How can everyone contribute to architecture, without things reducing to chaos?’, ‘How might this succeed or fail in my context?’, and ‘How might we improve these ideas?’
During the session Andrew, Diana and Gayathri will bring their own reflections and perspectives into the attendee-wide conversation, as Dan and Mike manage the process for everyone in the room.
About Andrew Harmel-Law
Technical Principal, ThoughtWorks
About Diana Montalion
Mentrix Group: Principal, Architecture
About Mike Rozinsky
#conflicthugger
About Gayathri Thiyagarajan
Mum, Engineer, Technologist - In that order
About Dan Young
Curiosity-led Consultant & Facilitator
More info: 2022.dddeurope.com/program/a-commune-in-the-ivory-tower-a-new-approach-to-architecture
http://dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
This talk is about strategies for helping organizations adopt DDD. The talk is based on my experiences helping a number of organizations introduce DDD, including a multi year engagement with large scandinavian retailer WhiteAway. I will talk about what worked and what didn't. About leading upwards by giving your boss the tools to leverage DDD, leading sideways by identifying and working with important peers, and about finding the right places to in the architecture to further DDD thinking.
Christian Horsdal is an independent consultant with 20 years of experience building many kinds of systems from large scale microservice systems to tiny embedded systems and lots of stuff in between. He is a .NET expert, author of the books "Microservices in .NET" and "Instant Nancy Web Development", trainer, and an occasional open source contributor.
http://dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
Data is the lifeblood of any Data-Driven organisation. High-value Data products, AI/ML pipelines and business decisions are made based on data.
Therefore, it is highly imperative that this data is of the highest quality and continues to stay high quality. Consequently, there is a need to do this centrally to provide standardisation and promote transparency and trust on the data quality metrics calculated and used to measure quality.
Data Mesh is a Data Architecture pattern that has emerged recently. It advocates for centralized capabilities for that constitutes data platform and federated governance across all data products which themselves are domain specific.
This talk is about the practical application of Data Mesh principle in the Data Quality space, the challenges of implementing such capability at scale and of course the opportunities it has unlocked within the organisation in turn.
A software engineer with over 13 years experience in Java development. I have been working on designing and developing distributed systems for the past 5 years. I am passionate about Domain Driven design and architecture.
I have experienced first hand how much DDD can help in designing and building distributed architecture. I have been working as a DDD consultant for a high profile public sector client for the past year and half. I am looking forward to sharing the significant amount of knowledge I have gathered in course of that time.
http://dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
Cities, organisms, companies, and other systems share the same underlying structure: all rely on a network-based supply of energy to all of its components. The energy can be calories, water, oxygen, electricity, or other supplies that the system cannot function without. Any hiccup in the delivery of the energy can inadvertently lead to demise of the whole system.
Software projects share the same core characteristic. Software also depends on efficient supply of energy. Domain-driven design taught us how to tackle complexity in the heart of software, and I want to discuss how we can tackle complexity in the cardiovascular system of software.
The energy that flows through the cardiovascular system of software is knowledge. You are going to learn how it is spread and delivered to the different components of a software system, the inherent complexity of the process, and how we can optimize the distribution of knowledge to design effective software solutions.
Vladik (Vlad) Khononov is a software engineer with over 15 years of industry experience, during which he has worked for companies large and small in roles ranging from webmaster to chief architect. Vlad is a long-time proponent of domain-driven design and evolutionary architecture and currently helps companies make sense of their business domains, untangle monoliths, and tackle complex architectural challenges.
Vlad maintains an active media career as a public speaker and blogger. He has spoken at numerous industry conferences — including O’Reilly Software Architecture, DDD Europe, and NDC — about subjects such as domain-driven design, microservices, and software architecture in general. In addition to his media work, he co-organizes the Domain-Driven Design Israel and Tel Aviv Software Architecture meetup groups.
Vladik lives in Northern Israel with his wife and an almost-reasonable number of cats.
http://dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
When trying to use events for interop between our microservices, engineers often run into the challenge of how to model interactions so as to enable asynchronous communication between their services.
We can look to the past for guidance.
Paper based offices used to be how every business ran. Looking at how they worked can give us a view of how work was done pre-automation, when asynchronous flows of paper were common. Mature business processes were event-driven with in-tray, out-tray and post room driving the flow of work in a business.
In the early 1970s J Paul Morrison invented Flow-Based Programming, a model in which a system was comprised of a number of applications communicating asynchronously through flows of discrete information packets.
By looking to these models from the past we can find valuable insights that will show you how you can model a system that uses events to communicate asynchronously today. Along the way we will learn how this can help us understand how modelling techniques like Event Storming echo these older aproaches.
By the end we hope to give you another tool to understand when your system needs to hustle, and when it needs to flow.
Polyglot Coding Architect in London, founder of #ldnug, speaker, tabletop gamer, geek. Tattooed, pierced, and bearded. The 'guv' on @BrighterCommand .
http://dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
"Independent Service Heuristics: a rapid, business-friendly approach to flow-oriented boundaries - Matthew Skelton & Nick Tune"
This session is an experience report of using a technique called Independent Service Heuristics to provide a rapid, low-fidelity, business-friendly approach to finding possible team and service boundaries for fast flow. The Independent Service Heuristics (ISH) are rules-of-thumb (clues) for identifying candidate value streams and domain boundaries by seeing if they could be run as a separate SaaS/cloud product. Developed by the authors of the book Team Topologies (Matthew Skelton and Manuel Pais), and elaborated by organisations and members of the DDD community, the ISH approach is particularly suited to situations where stakeholders want rapid results and are sceptical of terminology-heavy approaches used by some DDD practitioners. We describe a recent engagement with a large retail customer in North America where we used ISH and DDD techniques in parallel for multiple perspectives on a challenging situation.
Matthew Skelton is co-author of Team Topologies: organizing business and technology teams for fast flow. Recognised by TechBeacon in 2018, 2019, and 2020 as one of the top 100 people to follow in DevOps, Matthew curates the well-known DevOps team topologies patterns at devopstopologies.com. He is Head of Consulting at Conflux and specialises in Continuous Delivery, operability, and organisation dynamics for modern software systems.
Nick works with technology leaders to map strategy, architect systems, and build continuous delivery teams. He is the co-author of Principles and Practices of Domain-Driven Design (2014), and Architecture Modernization: Product, Domain, and Team-oriend (2022).
http://dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
Having a common language is just the first step to start sharing domain knowledge in a project. But what do we do afterwards? How do we take care of this language and help it grow so it becomes the common ground on which people talk and collaborate about the project?
In this talk we will draw from Linguistics, Semiotics,Literary Theory, and related fields to understand not only the building blocks that make up a language, but also how we humans use them to communicate and interpret shared knowledge.
We will present ideas like codes, encyclopedias, possible worlds, and semantic competence, among others, so you can better understand how a language is built and shared by a community of speakers.
A former RabbitMQ core-dev, before moving to Europe he used to work in Shanghai where he helped build one of Germany biggest dating websites. He co-authored the book "RabbitMQ in Action" for Manning Publishing. Apart from code related activities he likes traveling with his wife, listening/playing music, and reading books.
http://dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
To make sense of the world, we rely on our brains' capability to form fictions that we call "categories" of things and experiences. This capability is both automatic and hidden: we can't avoid doing it, yet we don't know exactly how we do it. We know that differences and similarities play a role, but it is still difficult. When we try to be more deliberate about the process, for instance because we want to write software based on our categories, we call it modelling. In the process, we tend to replace our intuitive common-sense categories with technical categories. In this talk, we'll take a look at different perspectives on categorization, see why equality is more difficult than we tend to let on, and why edge cases are just regular cases that got unlucky.
Einar W. Høst has been a software developer for a long time and still finds it mighty interesting and rewarding. He enjoys collaborative modelling, API design and computer programming. He is working as a socio-technical facilitator at the Norwegian Labour and Welfare Administration.
http://dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
Context Maps, are a part of strategic Domain-driven Design whichs aims at delivering a holistic overview over the interactions between bounded contexts and teams. They make the implicitly hidden organizational dynamics explicitly visible.
This talk introduces you to the motivation and the benefit for Context Maps. You will also learn about the three team dependencies and nine patterns which make up a Context Map. The talk also aims at delivering a consistent visual presentation for context maps and will give you an overview of tools and free resources which are available.
This talks is explicitly aimed at newbies to the topic and is no deep dive for seasoned experts.
Michael works as a Fellow for INNOQ in Germany. He has over 15 years of practical consulting experience in software development and architecture. His main areas of interest are currently Domain-driven Design, Microservices and in general Software Architectures. Michael is a regular speaker at national and international conferences.
http://dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
You have just coded your business logic by applying the principles of Domain-Driven Design! But when comes the time to write your API, you are facing a serious issue! All the intention and the expression of your domain go up in smoke to fit the blankness methods GET, POST, etc.
Denatured by the REST layer, the business workflow is then deported on the consumer side to compensate for the limited vocabulary of this well-known CRUD protocol...
During this talk, we will see how to bring the business intent back inside the REST API by finally being able to expose our domain services and agregates' methods. The business workflow will also be encapsulated in the REST API in order to have the power to guide our consumers through the workflow of our domain.
About Julien Topçu
I like to craft software with high business value using techniques from Domain-Driven Design, all powered by Xtreme Programming in the Kanban #NoEstimates philosophy. Member of the OWASP foundation, I evangelise on application security techniques in order to avoid being hacked properly.
http://dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
Data is at the core of any organization: the current state of an order, of social feeds, of a document is safely stored in ever evolving data storage systems. But working only the current state of the system we lose all the “whys” that drove the system in that state. EventSourcing tackles this point, changing the way in which we store data so that we persist information about the reasons of the evolution of the data in the system, and, together with CQRS, it enables a flexible system architecture able to cope with modern application requirements. In this talk I’d like to explain the basics of event sourcing and CQRS and how they fit in the bigger picture.
I am an accomplished Software Engineer, specialized in Object Oriented Design and Analysis with extensive experience in the full life cycle of the software design process including prototyping, proof of concept, design, testing and maintenance.
In the past five years I've been working in lastminute.com, shaping the new platform and rescuing legacy code.
http://dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
Residuality theory is a revolutionary new theory of software design that aims to make it easier to design software systems for complex business environments. Residuality theory models software systems as interconnected residues - an alternative to component and process modelling that uses applied complexity science to make managing uncertainty a fundamental part of the design process.
Barry is a the founder of Black Tulip Technology and has previously held Chief Architect and Western Europe Azure Architect positions at Microsoft. He was the Worldwide Lead for the Solutions Architecture Community at Microsoft, and founder of the Swedish Azure User Group. He is also a PhD candidate in software design and complexity science.
http://dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
"Do Distributed Systems they said. It'll be fun they said - Sara Pellegrini and Milan Savić"
Implementing distributed applications is far from easy. We are all aware of the fallacies of distributed computing (en.wikipedia.org/wiki/Fallacies_of_distributed_computing). These are not the only challenges that you may encounter when you need to deal with distributed systems. During the last 4 years, we have been building an event store and a messaging platform that are, by nature, distributed across several machines to be more reliable and scalable. Let's see together what it means to build such a system, how to maintain it in (large variety of our customers') production environments.
Sara Pellegrini is an enthusiastic and proactive IT professional who specializes in distributed architectures with experience in agile software development methods. Able to see things from a different perspective, with an all-around approach to software development, from coding skills to high-level architectural view. Since she joined AxonIQ, she focuses on Axon Server and Axon Framework development.
Milan Savić is Software Engineer at AxonIQ. Milan has experience with various software projects ranging from chemical analyzers to contactless mobile payment systems. In some of those projects, CQRS and Event Sourcing came as a natural solution, but things had to be built from scratch almost every time.
Finding out about Axon Framework got him interested in being a part of the solution. In March 2018 he joined AxonIQ team on a mission to build tools which will help others in building event-driven, reactive systems.
http://dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
"Keep your streams short! Or how to model event-sourced systems efficiently - Oskar Dudycz"
In event-sourced systems, no data is lost. We record new facts after each business operation. That's a huge benefit but also a challenge. At some point, we realise that we have too many events in our streams. That causes a whole variety of issues: operational, performance, versioning, but also cognitive load and blurring the entire picture. In this talk, you'll learn how to deal with the temporal aspect of our system and why it's essential to keep your streams short. You'll learn strategies and techniques to model your domain into streams efficiently. Thanks to that, you'll learn to efficiently create and maintain your event-sourced system, avoiding common pitfalls.
I'm a developer, technical team leader, and architect. I started a career before StackOverflow existed. For over 14 years, I've been creating systems close to the business process. I believe that Event-Driven Architectures and Event Sourcing are great ways to achieve that.
I'm an active open-source developer and one of the Marten library maintainers. I'm sharing my journey and findings on my blog event-driven.io and practical samples at github.com/oskardudycz.
http://dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
Samman is a method for people who want to make a difference and improve the way software is built. The focus is specifically on technical practices and how people write code, and it's the best way I know to help software developers to adopt practices like TDD and Refactoring. A Samman technical coach divides their time between several software development teams and there are two main parts to the method:
Learning Hour
Ensemble Working
In the learning hour the coach uses exercises and active learning techniques to teach the theory and practice of skills like Test-Driven Development and Refactoring. In two-hour Ensemble sessions the whole team collaborates together with the coach in applying agile development techniques in their usual production codebase. If you're a technical coach, or simply have aspirations to help your team adopt agile technical practices, Samman gives concrete actionable ways of working to achieve change.
I've been working with this method for several years now, in a variety of organizations. I've been pleased with the results I've seen, in particular improved awareness of what technical agile practices are and a desire to do them at a team level. I published a book about the Samman method in January 2021, the foreword is written by Kent Beck. This presentation is a summary of the main points of the book. My main aim is to encourage others to improve the way they do technical agile coaching.
Emily is a Technical Coach with ProAgile. She has worked with software development for over 20 years in diverse organizations from start-up to large enterprise. These days Emily specializes in coaching development teams in agile practices like Test-Driven Development, refactoring and agile design. Emily has written two books, authored Pluralsight courses and regularly speaks at software conferences. Originally from the UK, she currently lives in Gothenburg, Sweden.
http://dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
At Danske Bank, we’re dealing with cross-team, cross-domain, cross-system change initiatives. It’s a complex sociotechnical environment, and we need large-scale structures to understand the big picture.
How can we scale these models to give direction and set boundaries, while leaving room for local design autonomy? How can we disseminate multiple models at multiple scales? How do we keep them supple enough to bend at places that need bending? And how can we help teams navigate the mess between the strategy floor and the engine room?
We made a lot of headway bringing strategy closer to the engine room. But not everyone of every team can be part of ideation, strategy, and design. Many developers who write customer-facing production code will not receive the “why” first hand.
We set up collaborative experiments to facilitate decision understanding, decision feedback, and decision re-making. We probed architectural models at scale with minimal conceptual contours, capable of being fleshed out by decentralised design decisions. To deal with constant change, we looked for opportunities to refactor at the architectural level.
The talk will share field examples of practising domain-driven architecture. It illustrates how domain-driven architecture can be cross-pollinated by inspirations from product management, UX design, complexity, and organization theories.
It’s a call to action for architects and systems thinkers to become acute listeners of languages in contexts and deliberate feedback loop designers, to interact with complexity for sensing and understanding, to play with safe-to-fail experiments, and to embrace the learning and growth that only happens outside our comfort zone.
Xin is a sociotechnical architect at Danske Bank. She believes that a product, domain and team-oriented architecture is the super glue to bind multiple agile teams navigating toward a common horizon. In her organization’s recently Spotified landscape where a team’s cognitive capacity is under constant stress, she practices domain-driven design and facilitates collaborative modeling to help teams make sense, make decisions and make intuitive business software.
http://dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
Domain-Driven Design has been conceived mostly in the solution space, understanding the domain so that we could provide the tailor-made optimised solution for our scenario.
Trying to apply DDD principles to products instead, might turn out unexpectedly challenging, since many preconditions are not met. Who are the experts? How to correctly shape our bounded contexts? How to align with our business strategy? How to maintain product integrity while customers are begging to abandon your design principles? How to align with the buyer perception when it's flawed?
DDD practitioner since the old ages, inventor of EventStorming, a guy with a masterplan.
http://dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
Domain modelling is the essence of DDD, yet it is one of the processes that are famously hard to describe and illustrate. The ultimate way to master it is by doing, making many mistakes and learning from them. However, you can significantly reduce the learning curve by exploring and analyzing modelling examples from various domains.
In this talk Weronika will take you on a deep dive into a surprisingly interesting domain that you have probably not yet heard about: dog sports. She will share with you a real life experience of rewriting a complex 20+ years old system using an iterative domain modelling process.
The talk will start with an overview of the legacy model, go over a number of model iterations that were investigated, concluding with the final one used in production. Each iteration will include an explanation of the decisions made and will show how the domain knowledge has driven technical solutions that were ultimately implemented.
Weronika is convinced that working code is just a side-effect of her work as software engineer. She is passionate about exploring various domains and learning how businesses work. Even more she loves asking hard questions and challenging common wisdom. She believes that world would be better, if everybody would ask "wait, but why?" way more often.
http://dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
The foundation of architecture is communication. We share the transformation journey of an ivory tower architect on the quest to overcome communication barriers. We show the adaptation process from an isolated thinker, used to UML diagrams and heavy documentation to a facilitator who discovered the collaborative power of DDD and Event storming.
About Amal Tahri
Passionnée d'architecture, de psychologie et de sociologie.
http://dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
Null is used to model a variety of states within an application. Be it to model the absence of a field in a database table, the return value when parsing something unparsable, an unsuccessful API call or to initialize some fields empty because the “ORM expects it that way”. The problem with null is that it is never completely clear to the developer whether something can or should be null at some point of the application and what null means in a specific case. Most statically typed functional programming languages avoid the problem completely by not allowing null at all. They introduce a new data type called Option or Maybe which allows us to lean on the compiler to check whether we forgot to handle the unexpected absence of a value. This leads to a greater trust in our applications and reduces runtime errors tremendously. Options can also be used to help modelling our domain but often they lack clear semantics of why a value is absent in a specific situation. Luckily options are just a small subset of the beautiful concept of sum types. Those sum types allow us to model different states of our application with ease and great expressiveness. Furthermore they allow us to get rid of many errors that are usually modelled with exceptions by taking care of them in our domain model. This talk will give you the ability to get rid of nulls with options and abstract over this concept with the help of sum types to make your code more expressive and your domain model easier to comprehend for your team and for the business.
About Marco Heimeshoff
Marco Heimeshoff is a trainer, speaker and software developer from Germany. He organizes KanDDDinsky, a conference about Domain-driven Design and the art of business software and co-founded the german DDD community in 2013 and VirtualDDD.com in 2019. Between consulting companies around the globe and his day job in building health care software, you'll find him speaking at conferences about DDD, socio-technical systems and first principles. With over a decade of experience, he is helping teams to change and learn in all things from code to culture and to master Domain-Driven Design, agile software development, functional programming and CQRS with event sourcing.
Organised by Aardling (https://aardling.eu/)
Introducing bounded contexts often is a great first step to get started with DDD. During this session you'll learn how a legacy application can be gradually refactored into bounded contexts.
We'll also explore ways a team could keep track of their progress, and identify the level of decoupling of contexts within their application.
About Robert Baelde
The magic place where tech and business collide is where Robert finds the most interesting lessons to be learned. He has a passion for helping tech teams grow on multiple levels, from the low-level code to the overall processes in place.
He's passionate about everything Event Sourcing and Domain Driven Design has to offer.
Robert's talks are high-energy, practical, and to the point.
Organised by Aardling (https://aardling.eu/)
Naming is one of the hardest things to do when coding. It helps us to make the code more readable and comprehensible. When you try to make code readable there are some existing rules but are they compatible with DDD ?
DDD and Naming share a common goal of helping communication between team members. In this Lighting Talk we will explain some concepts like Supple Design and Naming as a Process (@arlobelshee) to achieve this goal.
About Sepehr Namdar
Interested in Agile practices, Craft and Architecture and having had the opportunity to work in various development teams, I acquired the knowledge on all phases of software development. I believe that the sucess of a product (i.e. software) does not depend on technologies that we use but a good understanding of business needs and on the methodologies applied during its development.
About Khaled Souf
Khaled is a passionate Globe-trotter developer from Tunisia. He lived in Paris where he took part in the French and European software crafters community. He currently lives in Montréal in Canada and the co-organizer of Software Crafters Montréal meetup and the SOCRATES Canada unconference. He likes to speak about crafting software, clean code, Domain Driven Deisgn, eXtreme Programming and DevOps practices.
Organised by Aardling (https://aardling.eu/)
Many times, we’ve seen organizations with particularly complex domains fail in their modernization efforts. To be successful, we need to have a firm grasp on the domain and the relationships to other systems and domains. But most importantly, we need to put the people who are using our systems at the center of our problem solving.
When we only use an engineering lens to design our systems, we don’t always get enough perspective to make sure we’re building the right thing. Are you asking the right questions? Are you anchoring your architecture to the wrong needs? Is your decision-making influenced by assumptions and biases?
Without a holistic understanding of how each component of your system is (or isn’t) meeting the needs of your users— no matter how well your systems are architected, you risk having critical gaps in your design and strategy. You risk not being able to deliver value for your users.
Olivia’s product design background and Indu’s software architecture background bring a set of methods that will help you look at the complexity and make sense of the mess in a structured, repeatable way. We’ll expand your toolbox of (remote-friendly) collaborative, cross-disciplinary techniques to understand your domain and center the people that your systems serve.
About Indu Alagarsamy
Principal Engineer at The New York Times
Indu enjoys designing distributed systems using event-driven architecture style and domain-driven design principles. She has over 15 years of software development experience working with various industries like healthcare, finance, biotech, and emergency services. She is currently a Principal Engineer at the New York Times. She is passionate about diversity and inclusiveness in the tech industry. When not working, she's an occasional rock climber, who loves to chill in sunny Southern California with her kids and giant puppy.
About Olivia Cheng
Product Design Director at The New York Times
Olivia is a design leader who thinks in systems. She has worn many hats in the process of designing systems and experiences for people, but has always played facilitator and translator to build more inclusively: whether means translating systems, researching user needs, or just getting people on the same page.
She has a decade of design experience working across wide-ranging domains including open data, civic tech, design tools, and platforms.
She is currently a Product Design Director at The New York Times, leading a team that seeks to improve the shared core capabilities across the Times. Outside of work, she can be found cooking with her cats and looking for the next hike.
http://dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
There’s an API revolution happening. The tide is shifting away from the API being the afterthought of application development, to being front and center. As organizations make their way through their digital transformation journeys, they are recognizing the value of thinking of APIs as products and adopting API first methodologies.
However, not all API first methodologies are created equal. Code-first, for example, focuses on the development of the API, and then the documentation and testing components after.
Step forward, Design First. The Design First approach is growing in popularity when it comes to API design. This allows all teams working with API design to work together, using a common, human-understandable language. With all stakeholder views being represented from the outset, Design First allows for the rapid, cost-effective and democratized development of APIs, involving subject matter experts right from the start.
In this talk we will:
- Go through the principles of “Design First” approach
- Examine the benefits this approach brings
- Show how it fits hand in glove with Domain Driven Design
Ljubica is a technologist who is fascinated with data, making connections and empowering people to solve problems. With a background in development, consulting and architecture, she loves to see the world through the eyes of a user, and figuring out how to make them successful.
http://dddeurope.com - twitter.com/ddd_eu - newsletter.dddeurope.com linkedin.com/company/domain-driven-design-europe
Organised by Aardling (https://aardling.eu/)
Foundations on why and what do you need to start migrating to a DDD architecture
I'm an engineer on biotechnology that did a turn in the lab carrier to follow my instincts and get in to the software industry. Even in the university I was always the teacher assistant in the IT engineering program, but my love for the biotechnology was bigger in that time. After I graduate I realize that the only places where I was able to work were in labs, and always using very old software programs, so I become a developer (after a few hard study sessions) and I'm planing in the near future, join or start a company that mixes biotech and software. I love to do software and I love to be an engineer on biotechnology an a woman in tech and that diversity can relate in software.


