Continued Learning: The Beauty of Maintenance - Kent Beck - DDD Europe 2020
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
This section is available to paid users only. Please upgrade to access this part.
Upgrade NowMindmap
This section is available to paid users only. Please upgrade to access this part.
Upgrade NowKeywords
This section is available to paid users only. Please upgrade to access this part.
Upgrade NowHighlights
This section is available to paid users only. Please upgrade to access this part.
Upgrade NowTranscripts
This section is available to paid users only. Please upgrade to access this part.
Upgrade NowBrowse More Related Video
Aggregates, Entities & Value Objects | Modeling Rules of Thumb + Modeling Steps
Domain Driven Design: What You Need To Know
SE 23: Coupling & Cohesion with Examples | Software Engineering
3. Microservices Design Patterns | Part1: Introduction and Decomposition Pattern | HLD System Design
TOPCIT Software | 07. Software Detail Design
Temiz Kod Tasarımı - Lemi Orhan Ergin
5.0 / 5 (0 votes)