
Solving the Hard Problems
Keywords
Summary
173 words
Critical Evaluation
Dave Farley’s talk is a compelling and well-structured argument for adopting an evolutionary approach to software architecture and design. His central thesis – that software engineering should be treated as a true engineering discipline, focused on problem-solving and design rather than just coding – is both timely and relevant. He effectively uses analogies from other engineering fields, such as aviation and space exploration, to illustrate how complex systems evolve through iteration and learning. The concept of architecture as a ’tourist map’ is particularly insightful, capturing the idea that architecture is a guide for reasoning about the system, not a rigid blueprint. Farley’s emphasis on ’ease of change’ as the primary measure of software quality is a strong and practical principle, though it might be argued that other qualities like security and performance are equally important in certain contexts. The talk is grounded in his extensive experience and his book ‘Modern Software Engineering’, which lends credibility to his arguments. However, it is largely opinion-based, and he does not present new empirical data or case studies to support his claims. The talk is aimed at a professional software engineering audience, and the technical level is appropriate, avoiding excessive jargon while still being substantive. The structure is clear, with a logical progression from the definition of engineering to practical advice on managing complexity. The inclusion of timecodes and slides enhances the accessibility of the content. Overall, this is a valuable talk for software engineers and architects seeking to improve their approach to complex systems, offering both philosophical insights and practical guidance.
258 words
Title / Content Match
The title 'Solving the Hard Problems' is broad but the talk focuses on how to tackle complex software systems through evolutionary architecture and incremental design, which aligns well with the title.
Quality & Reliability
8/10
Dave Farley is a recognized expert in continuous delivery and software engineering. The talk is based on his experience and ideas from his book 'Modern Software Engineering'. The content is coherent and well-argued, but it is primarily opinion and experience-based rather than presenting new empirical research.
Chapters
- Intro
- What is engineering really for?
- How to design & architect for ease of change?
- Iteration
- How to use the power-tools
- Small steps
- Prioritize testability
- Architecture as a snapshot
- Maintain the tourist map
- Prioritize ease of change
- Separate concerns
- Adapt to the current context
- Don't design ahead
- Platform as abstraction
- Manage coupling
- Conclusion
- Outro
Cited Sources
- Dave Farley's website — Author's personal website with information about his work and books.
- Dave Farley on Bluesky — Author's social media profile.
- GOTO Copenhagen 2024 session page — Session page with slides and full abstract.
- Continuous Delivery Ltd. — Company website of Dave Farley.
- Dave Farley on LinkedIn — Author's LinkedIn profile.
- GOTO Conferences on Bluesky — Conference's Bluesky profile.
- GOTO Copenhagen — Conference website.
- GOTO Conferences on LinkedIn — Conference's LinkedIn page.
- GOTO YouTube channel — Conference's YouTube channel.
- GOTOpia — GOTO's community platform.
- GOTOpia newsletter — Newsletter signup.
Concurring Sources
- Modern Software Engineering — Book by Dave Farley that expands on the ideas presented in the talk.
- Continuous Delivery — Book by Dave Farley and Jez Humble, foundational to continuous delivery practices.
- Continuous Delivery Pipelines — Book by Dave Farley on building effective delivery pipelines.
Contribution & Novelties
The talk synthesizes and popularizes key ideas from evolutionary architecture and continuous delivery, presenting them in a coherent framework for tackling complex software systems. It emphasizes the importance of treating software engineering as a scientific discipline and provides practical guidance on incremental design and managing complexity.
Pour aller plus loin :
- Evolutionary architecture — Wikipedia article on evolutionary architecture, a concept central to the talk.
- Continuous delivery — Wikipedia article on continuous delivery, a practice advocated by Farley.
- Separation of concerns — Wikipedia article on separation of concerns, a key principle for managing complexity.
- Coupling (computer science) — Wikipedia article on coupling, relevant to managing dependencies.
- Test-driven development — Wikipedia article on TDD, related to prioritizing testability.
117 words
Radar Profile
The radar profile shows high scores in quality of information and reliability, reflecting the speaker's expertise and coherent argumentation. The quantity of information is also high, but the technical level is moderate, making it accessible to a broad engineering audience.