Continued Learning: The Beauty of Maintenance - Kent Beck - DDD Europe 2020

Domain-Driven Design Europe
12 Oct 202055:35

Summary

TLDRIn this insightful keynote, the speaker reflects on their first encounter with Domain-Driven Design (DDD), sharing anecdotes from the dot-com era. They delve into the nuances of software design, focusing on the importance of coupling and cohesion in maintaining a manageable codebase. The speaker emphasizes the need to make change easy by altering system structures to facilitate behavior changes, advocating for short feedback loops and the DDD community's role in promoting adaptive and responsive design practices.

Takeaways

  • 🎀 The speaker emphasizes the importance of public speaking and overcoming nervousness by reframing physical sensations as excitement rather than anxiety.
  • πŸ“š The speaker reflects on their first encounter with Domain-Driven Design (DDD) and the evolution of their understanding of DDD principles over time.
  • πŸ”„ The discussion highlights the concepts of coupling and cohesion in software design, noting that these terms are often used with varying interpretations.
  • πŸ”— The original definition of coupling is presented as a relationship between software elements where a change in one necessitates a change in another.
  • πŸ’‘ The speaker introduces the idea of using the 'parallel change' pattern to manage changes in systems with high coupling, allowing for staged updates.
  • πŸ“ˆ The cost of software development is likened to the cost of change, with coupling being a significant factor in the expense of making updates to a system.
  • πŸ” The speaker discusses the subtleties of coupling, including unexpected forms of coupling that can arise in complex systems.
  • πŸ“¦ Cohesion is described as the degree to which sub-elements within a single element must change together, promoting a more manageable change process.
  • πŸ‘·β€β™‚οΈ The speaker advocates for making changes easy by adjusting the system's structure to facilitate future behavior changes, a concept they relate to the 'tidy first' approach.
  • πŸ” The script touches on the cyclical nature of software development, where behavior changes lead to more behavior changes, influenced by the underlying system structure.
  • 🚫 The speaker warns against the resurgence of waterfall-style development, advocating for the DDD community to uphold principles of feedback and iterative design.

Q & A

  • What is the main theme of the speaker's keynote at the conference?

    -The main theme of the speaker's keynote is exploring the concepts of coupling and cohesion in software design, and how these concepts relate to the cost of change in software development.

  • Why did the speaker choose such a generic title for his talk?

    -The speaker chose a generic title so that he could adapt the content of his talk based on the conversations and interactions he had with people at the conference.

  • What was the speaker's first introduction to Domain-Driven Design (DDD)?

    -The speaker's first introduction to DDD was through working with Eric Evans in 2000 on a project during the dot-com era, which involved planning for retail purchasing.

  • How does the speaker relate the concept of performance anxiety in music to public speaking?

    -The speaker uses the concept of performance anxiety in music to illustrate that the physical sensations of nervousness can be reframed as excitement, which can help in overcoming stage fright during public speaking.

  • What is the original definition of coupling as discussed in the 'Green Book' of structured design?

    -In the 'Green Book', coupling is defined as the degree to which a change in one element (such as a variable, function, or module) necessitates a change in another element.

  • What is the relationship between coupling and the cost of change in software?

    -The cost of change in software is closely related to coupling; the higher the coupling, the more likely changes will propagate and increase the cost of making those changes.

  • What is the speaker's view on the resurgence of waterfall-style development?

    -The speaker views the resurgence of waterfall-style development as a step back, despite it being practiced by smart people trying to solve real problems. He emphasizes that it doesn't work because it lacks the necessary feedback loops.

  • How does the speaker suggest separating behavior changes from structural changes in software development?

    -The speaker suggests separating behavior changes from structural changes by making them in different pull requests (PRs). This allows for different standards to be applied to reversible (structural) and irreversible (behavioral) changes.

  • What is the significance of the speaker's slogan 'Make change easy, then make easy change'?

    -The slogan emphasizes the importance of structuring the system in a way that facilitates easy changes. It suggests that developers should focus on making the process of change easy before implementing the changes themselves.

  • What is the '3x model' mentioned by the speaker and how does it relate to innovation?

    -The '3x model' stands for Explore, Expand, and Extract. It is a model the speaker observed at Facebook to describe how innovation happens, and it suggests a cycle of exploration, growth, and refinement in the development process.

Outlines

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Mindmap

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Keywords

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Highlights

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now

Transcripts

plate

This section is available to paid users only. Please upgrade to access this part.

Upgrade Now
Rate This
β˜…
β˜…
β˜…
β˜…
β˜…

5.0 / 5 (0 votes)

Related Tags
Software DesignWaterfall ModelDDD ConferenceFeedback LoopsCoupling CohesionBehavior ChangesStructure ChangesDomain Driven DesignInnovation CycleDevelopment Practices