DDD-GDA Meritocratic Strategy
Meritocratic Strategy
Summary
Mission: Extend proper DDD usage to more and more companies in Pomerania
Vision: Create the most engaging meetup in Tricity
Strategy: Execute many workshops that teach DDD and help people change their companies
Purpose To Practice
Purpose:
- Gather intel how to organise best meetup & make proper DDD more recognizable in Tricity
- Organise engaging meetups that give more energy than they take
- Create an extensive instruction about organising meetups
- Prepare people to use DDD techniques in their work
- Make DDD used wider at Tricity companies
- Facilitate knowledge sharing between companies
Principals:
- Cooperate with different sponsors, so we can easily get people and advertising from different companies
- Use engaging techniques, so people will get more energy than they lose
- Support the community lifecycle
- First: Pick topics that can be used even in non DDD environment + build awareness of DDD
- Second: Introduce techniques that allow for migrating to DDD environment + build awarenes of the need of change
- Third: Introduce techniques for improving DDD environment
- Fourth: Facilitate experience sharing
- Delegate as much of the work on the meetup to other people, so we can share knowledge and bring new perspective into it
- Always get feedback, to create a better meetup and develop proper instruction for organising it
Participants:
- Developers - so there is talent that can properly use DDD
- Managers, Leaders - to build awareness and need of DDD in projects in people who have the power
- Facilitators - so DDD techniques can be swiftly applied without slashback
Structure: TBD
Practices:
- Mob workshop building - so we can together in a group create a new workshops
- Workshops
- Lean Coffee
- Gathering Information: Generating topics ->
Strategy
Plan
This plan has a lot of uncertainty and rather is a base for planning
- Growth - building knowledge and webbing in the community (Ecocycle)
- Build awareness of DDD and teach techniques of understanding the domain
- Teach technical implementation of tactical domain (Entities, Value Objects, Event Sourcing , Architecture around it)
- Build awareness of strategic design (Wardley Mapping, Defining Boundary Contexts, Team Topologies?)
- Technical Design of architecture at scale (Event Driven Architecture)
- Project Management tools around DDD
- Maturity - people know how to use DDD; tackling with problems and optimising
- Convincing to use DDD
- Refactoring around DDD
- How to build teams around DDD
- Coping and describing complexity
- Creative Destruction
- Whole scale retrospectives
- Discussions
- Renewal
- Handover of DDD leadership to DDD community
Meeting topics
Tactic DDD looks only in context of one bounded context
- Tactic
- (Entities, Value Objects)/(Aggregates/Factories/Repositories/Domain Services)
- Event Driven Architecture
- CQRS
- Event Sourcing
- Ubiquotous Language
- Strategy
- Bounded Context
- C4
- Domain Story Telling
- Event Storming
- Wardley Mapping
- Service Blueprint
- Team Topologies
- Context Mapping
Possible Strategies
"Maybe it is good to just use available katas?" ~ Piotr Suwała
Strategy A - Slow and steady growth from Tactical to Strategical DDD
- Event Storming of library System -> To be used in next workshops
- Factories, Domain Services, Aggregates, Entities, Value Objects - Hands On Kata
- Hexagonal Design - Refactoring Kata?
- CQRS - Hands on Kata?
- Event Sourcing
- Bounded Contexts - what they are, how to find them
- Published Language, Conformist, Open Host - When to use them
- Wardley Mappping
- Service Blueprint
- Change Management - How to implement DDD in your organisation
Why:
By doing slow and steady approach we may gather more and more people around DDD which will came for architectural topics.
Because of it we may get a lot of companies on the hype train of DDD.
However, people without using DDD in their company may lose their will to learn...
Strategy B - Fastest Path to implementation of DDD
- Event Storming of library System -> To be used in next workshops
- Factories, Domain Services, Aggregates, Entities, Value Objects - Hands On Kata
- Hexagonal Design - Refactoring Kata?
- Bounded Contexts - what they are, how to find them
- Wardley Mappping
- Change Management - How to implement DDD in your organisation
- ...Many to come...
Why:
Sometimes it is best not to wait ant iterate our Tricity ecosystem faster.
If people have some basic tools they may try to change the minds of managers and we can start DDD transition faster.
However, it may be premature...
Strategy C - Strategical DDD should be the key
- Event Storming of library System -> To be used in next workshops
- Bounded Contexts - what they are, how to find them
- Published Language, Conformist, Open Host - When to use them
- Wardley Mappping
- Service Blueprint
- Team Topologies
- Change Management - How to implement DDD in your organisation
Why:
Usually people know something on tactical DDD, but they can't change the management yet.
If we teach them how to use strategical DDD, they may have more tools to convince people from management.
This approach also targets better people from management and whatnots, because those topics are universal.
Current Plan
Date | Name | Priority | Possible Speakers? |
---|---|---|---|
22-02-2023 | Modelowanie Agregatów | Must Have | Konrad Jakubiec |
??? | Event Driven, Domain Event vs public event, Saga | Must Have | Łukasz Szydło? |
??? | Archetypy | Must Have | Bottega? Jakub Pilimon? |
??? | Granice Bounded Contextów, duplikacja danych | Must Have | ??? |
??? | Context Mapping | Must Have | Ignacy Szreter? |
??? | Being Architect, Drivery Architektoniczne, C4, ADR | Must Have | Michał Giergielewicz? |
??? | Kiedy nie stosować DDD, Cynefin Framerowk | Nice To Have | ??? |
??? | Event Sourcing, Event Driven vs Event Sourcing | Nice To Have | Oskar Dudycz? |
??? | Living Documentation | Nice To Have | Konrad Jakubiec? |
Possible Speakers
Person | State | Modelowanie Agregatów | Event Driven | Archetypy | Bounded Contexts | Context Mapping | Architecting | No DDD, When? | Event Sourcing | Living Documentation |
---|---|---|---|---|---|---|---|---|---|---|
Konrad Jakubiec | Yes | ? | ? | ? | ? | ? | ? | ? | Yes? | |
Łukasz Szydło | Waiting on Linkedin :(( | ? | ? | ? | ? | ? | ? | ? | ? | ? |
Jakub Pilimon | June The Earliest | Yes | ? | ? | ? | ? | ? | ? | ? | ? |
Michał Giergielewicz | ? | ? | ? | ? | ? | Yes? | ? | ? | ? | |
Radek Maziarka | Waiting for Sponsoring | ? | ? | ? | ? | ? | ? | ? | ? | ? |
Based On:
Current Plan (Old)
Number | Name | Purpose |
---|---|---|
0 | Event Storming | Teach how to explore big picture domain |
1 | Event Storming - Library System | Test if community can into ES and gather domain definition for next workshops |
2 | Creating workshop on Aggregates, Entities, Value Objects, Factories, Domain Services | Build in group a workshop covering many languages |
2.2 | Creating workshop on Aggregates, Entities, Value Objects, Factories, Domain Services | Teach group how to finally implement what we have learned |
3 | Hexagonal Workshop | Teach group how to properly build system around domain |
??? | Expert Interview | They will be so many questions, we need to have session like this frequently |