Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
In 1994, Stewart Brand published a book called "How Buildings Learn, and What Happens After They're Built". As well as a fascinating account of architecture and the history of various buildings and building styles, some ideas from this book were inspirational to the famous "Big Ball of Mud" paper, by Brian Foote and Joseph Yoder. Can we learn anything about building software systems from the observations in Brand's book and the Big Ball of Mud paper? Spoiler alert: yes, I think so! Let's talk about them.
Date
Summarized using AI?
If this talk's summary was generated by AI, please check this box. A "Summarized using AI" badge will be displayed in the summary tab to indicate that the summary was generated using AI.
Show "Summarized using AI" badge on summary page
Summary
Markdown supported
In this RubyConf 2023 talk titled "How Programs Learn, and What Happens After They're Built," Phil Crissman draws parallels between building architecture and software development, drawing inspiration from Stewart Brand's book "How Buildings Learn" and the influential paper "The Big Ball of Mud" by Brian Foote and Joseph Yoder. **Key Points Discussed:** - **Introduction to the Speaker:** Phil Crissman, a Microsoft software engineer with a passion for Ruby and functional programming, shares his journey in software development and his long-standing interest in agile methodologies. - **Concept of MTTA (Mean Time to Apologize):** Phil introduces his personal metric for assessing codebases—how quickly he would need to apologize for the quality of the code when explaining it to others. - **Architectural Metaphors in Software Development:** The talk highlights how software architecture can be compared to building architecture, including concepts like time layering and piecemeal growth. - **Stewart Brand's Influence:** Brand’s observations on building adaptability, shearing layers, and low-road versus high-road architecture offer insights into how software systems can be designed to evolve effectively over time. - **The Big Ball of Mud:** Phil discusses common pitfalls in software development, including the tendency to create poorly designed systems due to various pressures (time, cost, experience). The concept emphasizes how software often becomes an unwieldy mass over time. - **Design Philosophy:** The importance of designing software with change in mind is underscored, advocating for modularity and adaptability in architecture. - **Communication and Management:** Phil emphasizes the need for effective communication and process management to mitigate the creation of big balls of mud in software, suggesting that poor communication can severely impact effectiveness beyond technical challenges. - **Lessons from Architecture:** The talk recalls insights from architectural practices, such as scenario planning and building with change in mind, which can lead to more sustainable software solutions. - **Change and Prediction in Development:** Phil concludes that, like buildings, software is often built on predictions that may not hold true, and emphasizes the continuous need to be adaptable and open to change. **Conclusion and Takeaways:** The presence of "big balls of mud" in software systems is seen as an inevitable outcome of various interacting forces, yet proactive communication and mindful design practices can help mitigate these issues. Crissman advocates for a mindset that embraces change and highlights the importance of learning from past experiences to improve future development cycles.
Suggest modifications
Cancel