Elixir Wizards

Mark Windholtz on Domain-Driven Design (DDD)


Listen Later

Domain-driven design and extreme programming can help bridge the gap between development and business, and today we invite Mark Windholtz from Agile DNA to talk about how! Mark starts out by telling us about his early work in extreme programming before agile was a term and how he switched from Rails to Elixir after realizing its power for implementing domain-driven design. We take a deep dive with him into what these concepts mean, hearing him weigh in on how DDD can help architecture accommodate both development and business oriented complexities. For Mark, development and business teams must get a better understanding of each other’s jargon, and DDD is a way to accomplish this. The goal is to find a way of building a solid software core and to move away from features to systems thinking, whereby flexible software can make it more possible to do agile on the business side. We chat about some of the practices and principles that come into play when implementing DDD for Mark, and he details concepts like ubiquitous language, bounded contexts, and how to focus on the core domain by exploring models using tactical and strategic patterns. Along with this, Mark discusses users not being a domain concept, the challenges of getting new terms to stick in teams’ minds, and the task of refactoring code to reflect updated glossaries. Near the end of our conversation, Mark drills down on how DDD can optimize team efficiency. In closing, we get to know Chris Bell from ElixirTalk a little better in this week’s edition of Pattern Matching with Todd!

Key Points From This Episode:

  • Thoughts on SpaceEx and their approach to engineering: system versus feature optimization.
  • Mark’s background in extreme programming, how he got started with AgileDNA, and the work they do there.
  • A definition of extreme programming that adds engineering practices to Scrum.
  • Elixir’s superior ability to do DDD compared to Rails and how Mark got started using it.
  • A brief introduction to domain-driven design, an approach to simplifying complex software.
  • How architecture needs to accommodate essential as well as accidental complexity.
  • Elixir’s ability to accommodate the building of domain models with well-separated code chunks.
  • Principles of ubiquitous language and bounded contexts that make up DDD for Mark.
  • Ubiquitous language helps devs and businesspeople understand each other.
  • Bounded contexts: ‘Within this space, this world means this thing.’
  • Shifting focus from trying to make not all software, but core software, good.
  • What patterns are applied to use principles of ubiquitous language and bounded contexts.
  • Finding and focusing on the core domain by exploring models and how to do this using tactical and strategic patterns.
  • The consequences of users not being a domain concept which demands having a clearer language.
  • Challenges of getting language and concepts to stick in business people’s minds.
  • Refactoring code to reflect updated glossaries: Technical challenges teams doing DDD face.
  • Switching paradigms from feature-based optimizations to building an amazing code core.
  • Approaches to modeling: the value of exploring multiple models.
  • How teams can become more efficient using DDD and extreme programming.
  • Final plugs from Mark and how Agile DNA can help use Elixir to implement DDD.
  • Pattern matching: Todd gets to know more about Chris Bell from ElixirTalk.
  • How Chris got into programming, what he’d do if not be a programmer, and more!
  • Why Chris loves history, dream pop, and what movie he’ll watch over and over.
  • What project Chris is most excited about next: Building Settlers of Catan using LiveView.
  • Links Mentioned in Today’s Episode:

    Elixir Wizards Listener Survey — https://smr.tl/podcastsurvey

    SmartLogic — https://smartlogic.io/

    Mark Windholtz on LinkedIn — https://www.linkedin.com/in/mwindholtz/
    Mark Windholtz on Twitter — https://twitter.com/windholtz
    Agile DNA — http://www.agiledna.com
    Chris Bell on Twitter — https://twitter.com/cjbell_?lang=en
    ElixirTalk — http://elixirtalk.com/
    Chris Keathley — https://keathley.io/
    Elon Musk — https://www.forbes.com/profile/elon-musk/#5bbe73cc7999
    The Everyday Astronaut — https://www.youtube.com/channel/UC6uKrU_WqJ1R2HMTY3LIx5Q
    Rob Martin — https://www.linkedin.com/in/version2beta/
    Perhap — https://github.com/Perhap/perhap
    Andrew Hao — https://github.com/andrewhao
    Fred Brooks — http://www.cs.unc.edu/~brooks/
    The Mythical Man-Month — https://www.amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959
    Zach Thomas — https://github.com/zdcthomas?language=elixir&tab=stars
    1917 — https://www.imdb.com/title/tt8579674/
    Real Estate — https://www.realestatetheband.com/
    Galaxie 500 — https://pitchfork.com/artists/1673-galaxie-500/
    Star Trek: First Contact — https://www.imdb.com/title/tt0117731/
    Star Trek: The Wrath of Khan — https://www.imdb.com/title/tt0084726/
    LiveView — https://hexdocs.pm/phoenix_live_view/Phoenix.LiveView.html
    Lonestar Elixir — https://lonestarelixir.com/

    Special Guest: Mark Windholtz.

    ...more
    View all episodesView all episodes
    Download on the App Store

    Elixir WizardsBy SmartLogic LLC

    • 4.9
    • 4.9
    • 4.9
    • 4.9
    • 4.9

    4.9

    22 ratings


    More shows like Elixir Wizards

    View all
    Software Engineering Radio - the podcast for professional software developers by se-radio@computer.org

    Software Engineering Radio - the podcast for professional software developers

    262 Listeners

    The Changelog: Software Development, Open Source by Changelog Media

    The Changelog: Software Development, Open Source

    285 Listeners

    Startups For the Rest of Us by Rob Walling

    Startups For the Rest of Us

    694 Listeners

    Software Engineering Daily by Software Engineering Daily

    Software Engineering Daily

    629 Listeners

    Syntax - Tasty Web Development Treats by Wes Bos & Scott Tolinski - Full Stack JavaScript Web Developers

    Syntax - Tasty Web Development Treats

    986 Listeners

    REWORK by 37signals

    REWORK

    212 Listeners

    CoRecursive: Coding Stories by Adam Gordon Bell - Software Developer

    CoRecursive: Coding Stories

    185 Listeners

    Elixir Mix by Charles M Wood

    Elixir Mix

    13 Listeners

    The Stack Overflow Podcast by The Stack Overflow Podcast

    The Stack Overflow Podcast

    63 Listeners

    Thinking Elixir Podcast by ThinkingElixir.com

    Thinking Elixir Podcast

    31 Listeners

    Beam Radio by Lars Wikman

    Beam Radio

    11 Listeners

    Software Unscripted by Richard Feldman

    Software Unscripted

    26 Listeners

    Oxide and Friends by Oxide Computer Company

    Oxide and Friends

    47 Listeners

    Elixir Mentor by Jacob Luetzow

    Elixir Mentor

    2 Listeners

    Elixir Friends by German Velasco

    Elixir Friends

    0 Listeners