Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Guiding teams, and shaping a portfolio, using W...

Guiding teams, and shaping a portfolio, using Wardley Maps & DDD at KanDDDinsky

Effective portfolio management hinges on teams and software systems being aligned with value streams. Wardley Mapping and Event Storming are techniques for collectively discovering and re-imagining current constraints on value streams into a more favorable flow. Domain-Driven Design on the other hand offers patterns, principles, and practices that help with moving the boundaries that constrain the value stream. These techniques are even helpful if we are not certain yet on how to deliver value to the customer.

Portfolio management and DDD have something important in common: both practices promote the idea that the focus of engineers & designers should be directed toward the area with the largest potential for business differentiation.
Although DDD could be considered a holistic approach to software design, introducing it in fast-growing organizations should be done gradually, and iteratively, in order to snowball into true momentum for change. We should anticipate how quickly the snowball will grow based on domain knowledge, technical fluency, and adaptive capacity of teams and the surrounding organization.

Join the session to learn the do's and don'ts of introducing these ideas in fast growing organizations.

Avatar for Marijn Huizendveld

Marijn Huizendveld

October 22, 2025
Tweet

More Decks by Marijn Huizendveld

Other Decks in Business

Transcript

  1. Marijn Huizendveld I help leadership teams at fast growing organizations

    accomplish more with the people that produce their software. [email protected] marijn.huizendveld.com
  2. huizendveld.com Prioritizing the emerged situation is of little help, Because

    if lots of things receive priority, then nothing receives priority KanDDDinsky
  3. huizendveld.com Use DDD patterns, principles, and practices to align systems

    to the value stream and surrender to the constraint. KanDDDinsky
  4. huizendveld.com The solution (tm) ✓ Wardley Mapping: Gain situational awareness

    ✓ Domain-Driven Design: Shift boundaries ✓ Portfolio Management: Constrain work in progress KanDDDinsky
  5. huizendveld.com Organizations have limited resources but in fi nite ideas

    to improve. Portfolio management is the process to resolve this tension by picking and evaluating initiatives that yield results. KanDDDinsky
  6. huizendveld.com Organizations have limited resources but in fi nite ideas

    to improve. Portfolio management is the process to resolve this tension by picking and evaluating initiatives that yield results. Organizations have limited resources but in fi nite ideas to improve. Portfolio management is the process to resolve this tension by picking and evaluating initiatives that yield results. KanDDDinsky
  7. huizendveld.com “Yet another thing we have to do, on top

    of agile, OKRs, 360 reviews, etc., etc., etc.” – anyone KanDDDinsky
  8. huizendveld.com KanDDDinsky Prioritizing the emerged situation is of little help,

    Because if lots of things receive priority, then nothing receives priority
  9. Visibility Genesis Custom Build Product (+ rental) Commodity (+ utility)

    2020 Company Grow revenue Billing Add-on Usage Service offering Subscription Growth hacking Price experiments Component Pipeline Anchor Line of the present Needs Line of the future Future component
  10. Visibility Genesis Custom Build Product (+ rental) Commodity (+ utility)

    2020 Company Grow revenue Billing Add-on Usage Service offering Subscription Growth hacking Price experiments Billing as a Service Component Pipeline Anchor Line of the present Needs Line of the future Future component
  11. Visibility Genesis Custom Build Product (+ rental) Commodity (+ utility)

    2020 Company Grow revenue Usage Service offering Growth hacking Price experiments Billing as a Service Component Pipeline Anchor Line of the present Needs Line of the future Future component
  12. Visibility Genesis Custom Build Product (+ rental) Commodity (+ utility)

    2020 Company Grow revenue Billing Add-on Usage Service offering Subscription Growth hacking Price experiments ACL Billing as a Service Component Pipeline Anchor Line of the present Needs Line of the future Future component
  13. Visibility Genesis Custom Build Product (+ rental) Commodity (+ utility)

    2020 Company Grow revenue Usage Service offering Growth hacking Price experiments Billing as a Service ACL Component Pipeline Anchor Line of the present Needs Line of the future Future component
  14. Visibility Genesis Custom Build Product (+ rental) Commodity (+ utility)

    2020 Company Grow revenue Billing Add-on Usage Service offering Subscription Growth hacking Price experiments Billing as a Service Component Pipeline Anchor Line of the present Needs Line of the future Future component
  15. huizendveld.com KanDDDinsky 🗺 Be conformist, or ➡ change needs There

    are di ff erent ways to surrender to the constraint
  16. huizendveld.com KanDDDinsky Use DDD patterns, principles, and practices to align

    systems to the value stream and surrender to the constraint.
  17. huizendveld.com KanDDDinsky Gra nt t i c k e t

    ho lde r acc es s Tic ket Ch e ck in g Tic ket h o l d er wa s g r ant e d ac c es s The co m m and is t h e i n s tru c t i o n The even t i s t h e co n se q u e n ce The ex t e r n a l s y s te m is t h e re s pon si b l e p art y
  18. describe('Please reserve vehicle', () = > { test('Vehicle is available',

    async () = > { return (new CommandHandlingScenario<AnyReservingEvent, AnyReservingCommands>()) .given( aVehicleEnteredOperation() .with('vehicle', 'NL : GHC-12-A') .andWith('vehicleClass', 'long distance trips') .toObject() ) .when({ _named: "Please reserve vehicle!", vehicle: 'NL : GHC-12-A', reservedBy: "customer:11111111-1111-1111-1111-111111111111", when: ZonedDateTime.of( LocalDateTime.parse("2024-11-02T20 : 19 : 52"), ZoneId.of("UTC+2") ) }) .then({ _named: "Vehicle was reserved", vehicle: 'NL : GHC-12-A', vehicleClass: 'long distance trips', reservedBy: "customer:11111111-1111-1111-1111-111111111111", when: ZonedDateTime.of( LocalDateTime.parse("2024-11-02T20 : 19 : 52"), ZoneId.of("UTC+2") ) }) .assertScenario(runAssertionOnDecider(decider)); }); });
  19. huizendveld.com Use DDD to ✓ Hide problems behind abstractions ✓

    Shift boundaries in due time with high-quality engineering ✓ Surrender to the constraint KanDDDinsky
  20. huizendveld.com The solution (tm) ✓ Wardley Mapping: Gain situational awareness

    ✓ Domain-Driven Design: Shift boundaries ✓ Portfolio Management: Constrain work in progress KanDDDinsky
  21. huizendveld.com “Between you and me… We are really bad at

    this” - Any of your nine allies KanDDDinsky
  22. huizendveld.com Friction ❌ Lose engagement ❌ Remodeling open store ❌

    Teams go o ff the rails ❌ Misaligned cadence ❌ Cards close to chest ❌ Numb to pain KanDDDinsky
  23. huizendveld.com Deal with reality ✓ Make problems visible: in portfolio

    management ✓ Make tough decisions: be human, but clear and decisive ✓ Iterate on implementation: adjust strategy ongoing KanDDDinsky
  24. huizendveld.com “A manager’s task is di ff i cult, but

    simple: […]” – Scott Galloway KanDDDinsky
  25. huizendveld.com “[…] allocate fi nite capital to generate a greater

    return than their peer group gets” – Scott Galloway KanDDDinsky
  26. huizendveld.com Surrender to the constraint ✓ Make problems visible: in

    portfolio management ✓ Make tough decisions: be human, but clear and decisive ✓ Iterate on implementation: adjust strategy ongoing KanDDDinsky
  27. huizendveld.com Continue your learning 🔗 Conway’s Law Doesn’t Apply to

    Rigid Designs by Verraes 🔗 Wardley Maps by Wardley 🔗 The Anatomy of DDD by Millett 🔗 Antifragile by Taleb KanDDDinsky
  28. Are you eager to learn more? Marijn Huizendveld B.V. Hillegomstraat

    12-14 1058 LS Amsterdam The Netherlands If you take the time to ask a good question, then I’ll take the time to write a good answer. [email protected] marijn.huizendveld.com