$30 off During Our Annual Pro Sale. View Details »

From Legacy to Cloud

From Legacy to Cloud

A journey from monolithic, on-premise, customized, legacy software to cloud-native, multi-tenant, domain-driven SAAS.

Henning Schwentner

December 01, 2022
Tweet

More Decks by Henning Schwentner

Other Decks in Programming

Transcript

  1. Starring
    Directed By
    Special
    Appearance
    Presented by
    With

    View Slide

  2. View Slide

  3. View Slide

  4. View Slide

  5. View Slide

  6. 👨💻👨🏫👨💼

    View Slide

  7. @hschwentner

    View Slide

  8. Alphorn
    Auto Leasing Inc.

    View Slide

  9. View Slide

  10. Springfield
    Duckburg
    Metropolis

    View Slide

  11. Monolease A

    View Slide

  12. Springfield
    Duckburg
    Metropolis
    1.0
    1.1
    1.0a

    View Slide

  13. Springfield
    Duckburg
    Metropolis
    Twin Peaks
    1.1
    1.0
    1.1
    1.0a

    View Slide

  14. =>
    cloud
    on-premise to

    View Slide

  15. @hschwentner
    Mistake: Move to the cloud because
    some random dude at a
    conference said so
    Better: Move to the cloud because
    that solves an actual
    problem

    View Slide

  16. Springfield
    Duckburg
    Metropolis
    Leas-
    N-dary

    View Slide

  17. Springfield
    Duckburg
    Twin Peaks
    Metropolis
    Leas-
    N-dary

    View Slide

  18. Springfield
    Duckburg
    Twin Peaks
    Metropolis
    Leas-
    N-dary
    2.0

    View Slide

  19. @hschwentner
    Mistake: Continue working like you
    always did
    Better: Change your mindset

    View Slide

  20. product
    project to
    =>

    View Slide

  21. =>
    agile
    waterfall to

    View Slide

  22. Individuals and interactions
    over processes and tools
    Customer collaboration
    over contract negotiation
    Working software
    over comprehensive documentation
    Responding to change
    over following a plan
    Agile
    Manifesto

    View Slide

  23. =>
    micro-
    services
    monolith to

    View Slide

  24. @hschwentner
    Mistake: Transform the whole
    system at once
    Better: Move in baby steps

    View Slide

  25. old old old old
    new
    new new new
    “just flip
    the lever”
    1 2 3 4 5
    a.k.a.
    big bang
    replacement

    View Slide

  26. old old old
    new
    new new new
    2 3 4 5
    old
    1

    View Slide

  27. Strangler
    Fig
    Application

    View Slide

  28. Strangler Fig Application

    View Slide

  29. Lesson:
    is better than
    Strangler Fig
    Application
    Big Bang
    Replacement

    View Slide

  30. =>
    micro-
    services
    monolith
    buy
    to
    carve out
    build
    new

    View Slide

  31. Read on in:

    View Slide

  32. big ball
    of mud
    =>
    strategic
    design
    to

    View Slide

  33. @hschwentner
    Mistake: Cutting the system by
    technical reasons
    Better: Cutting the system into
    bounded contexts

    View Slide

  34. =>
    tactical
    design
    anemic
    domain model to
    value
    object
    entity
    repository
    impleme-
    ntation

    View Slide

  35. behavior
    data to
    1001010011
    1110010110
    0010011101
    calculatePrice()
    assessRisk()
    signContract()

    View Slide

  36. Eric
    Evans
    Read on in:

    View Slide

  37. Individuals and interactions
    over processes and tools
    Customer collaboration
    over contract negotiation
    Working software
    over comprehensive documentation
    Responding to change
    over following a plan
    Agile
    Manifesto

    View Slide

  38. doctor
    waiter to
    =>
    What are
    your
    orders?
    What is
    your
    problem?

    View Slide

  39. @hschwentner
    Mistake: Thinking that it’s about
    software
    Better: Realizing that it’s about
    business

    View Slide

  40. business
    enabling
    =>
    technology-
    centered
    to

    View Slide

  41. What's the most
    impactful thing
    we can do next?

    View Slide

  42. Software
    != End in itself

    View Slide

  43. customer
    tells wish for
    1
    salesperson
    signs
    to
    gives
    for
    contract
    3
    risk manager
    contract
    passes on
    to
    4
    contract
    votes
    checks
    calculates
    5
    6
    7
    calculates
    to
    8
    2
    car
    credit
    rating
    installment
    car
    resale
    value
    contract

    View Slide

  44. https://domainstorytelling.org
    Read on in:

    View Slide

  45. @hschwentner
    Lesson:
    1. First understand the business
    2. Only then build software

    View Slide

  46. @hschwentner
    Lesson:
    1. First learn about the problem
    2. Only then look for a solution

    View Slide

  47. @hschwentner
    What is Software?
    technical
    system
    socio-
    +

    View Slide

  48. “Organizations which design systems
    are constrained to produce designs
    which are copies of the
    communication structures of
    these organizations.”
    Melvin Conway

    View Slide

  49. @hschwentner
    Mistake: Ignoring team
    organization
    Better: Respect Conway’s law

    View Slide

  50. =>
    micro-
    services
    monolith to
    cross-
    functional
    teams

    View Slide

  51. Alignment
    technical
    business-wise
    organizational
    technical
    business-wise
    organizational

    View Slide

  52. Read on in:

    View Slide

  53. Individuals and interactions
    over processes and tools
    Customer collaboration
    over contract negotiation
    Working software
    over comprehensive documentation
    Responding to change
    over following a plan
    Agile
    Manifesto

    View Slide

  54. user dev

    View Slide

  55. @hschwentner
    Mistake: Misunderstand your users
    Better: Build a common language

    View Slide

  56. @hschwentner
    🧑💼
    👨💻
    👨💼
    have to understand
    The single most important fact in
    software development:
    Tech people
    business people.
    👩💼
    👩💻

    View Slide

  57. =>
    direct
    commu-
    nication
    telephone
    game
    to
    user
    dev
    user dev

    View Slide

  58. finance
    dev
    user
    sales
    PO
    HR
    management
    marketing
    scrum master
    UX

    View Slide

  59. Individuals and interactions
    over processes and tools
    Customer collaboration
    over contract negotiation
    Working software
    over comprehensive documentation
    Responding to change
    over following a plan
    Agile
    Manifesto

    View Slide

  60. It’s a full team sport
    Photo: Bart Derksen/Wikipedia

    View Slide

  61. @hschwentner
    Mistake: Thinking “We’re never
    gonna make it”

    View Slide

  62. We can
    do it,
    too!

    View Slide

  63. @hschwentner
    Mistake: Going on the journey alone
    Better:

    View Slide

  64. View Slide

  65. View Slide

  66. Bibliography
    Beck, Kent et al. Manifesto for Agile Software Development. 2001.
    Conway, Melvin E. “How Do Committees Invent?” Datamation 14, no. 5 (April 1968): 28–31.
    Evans, Eric. Domain-Driven Design: Tackling Complexity in the Heart of Software. Boston: Addison-Wesley, 2004.
    Feathers, Michael C. Working Effectively with Legacy Code. Upper Saddle River, NJ: Prentice Hall, 2004.
    Foote, Brian and Joseph Yoder. “Big Ball of Mud.” PLoP ’97, Monticello, IL, September 1997.
    Fowler, Martin. Refactoring: Improving the Design of Existing Code. 2nd ed. Boston: Addison-Wesley, 2019.
    Fowler, Martin. “Strangler Fig Application.” Bliki, June 29, 2004.
    Hofer, Stefan and Henning Schwentner. Domain Storytelling: a Collaborative, Visual, and Agile Way to Develop
    Domain-Driven Software. Boston: Addison-Wesley, 2022.
    Kaur, Ravneet. “Agile Teams—Are They Waiters or Doctors?” LinkedIn. April 1, 2019.
    Kernighan, Brian W. Software Tools in Pascal. Addison-Wesley, 1981.
    Newman, Sam. Monolith to Microservices: Evolutionary Patterns to Transform Your Monolith. Sebastopol, CA:
    O’Reilly, 2021.
    Skelton, Matthew and Manuel Pais. Team Topologies: Organizing Business and Technology Teams for Fast Flow.
    Portland, OR: IT Revolution, 2019.
    Weinberg, Gerald M. The Secrets of Consulting. New York: Dorset House, 1985.

    View Slide

  67. View Slide

  68. Henning Schwentner
     https://hschwentner.io
     @hschwentner
    [email protected]

    View Slide