RubyConf 2023 - How Programs Learn, and What Happens After They're Built by Phil Crissman

Join Phil Crissman at RubyConf 2023 as he explores the world of software development, discussing sacrifices made, the "big ball of mud," adaptability, scalability, and the importance of simplicity, communication, and continuous learning.

Key takeaways
  • Sacrifices are made in software development, and it’s hard to admit that some projects may not be perfect.
  • The concept of “big ball of mud” refers to software that is difficult to understand and maintain due to its complexity.
  • Buildings can be designed to be adaptable to change, and it’s valuable to learn from the construction industry.
  • Change can happen at different rates, and it’s important to consider how systems and teams adapt.
  • The railroad analogy is used to illustrate the difference between systems that are designed to be scalable and those that are not.
  • The concept of “sheering layers” is introduced, which refers to the way that different layers of a system work together.
  • The importance of simplicity and being able to learn from mistakes is emphasized.
  • Big design upfront is sometimes necessary, but it’s also important to be able to adapt to change.
  • Software development is a process that involves planning, design, and implementation.
  • The concept of “canascence” is introduced, which refers to the way that a system can change over time.
  • The importance of communication and collaboration is emphasized, as well as the need to be able to revisit and refactor code.
  • The speaker’s goal is to inspire and motivate people to work on software development.
  • The concept of “scenario planning” is introduced, which involves considering different scenarios and outcomes.
  • The concept of “high road architecture” is introduced, which involves designing systems to be adaptable and maintainable.
  • The speaker emphasizes the importance of learning from mistakes and being able to reflect on past experiences.