The Philosophy of Architecture - Barry O'Reilly - NDC Oslo 2024

Explore how philosophical thinking impacts software architecture, challenging traditional engineering approaches and embracing uncertainty to build more adaptable systems.

Key takeaways
  • Default philosophical thinking from computer science education shapes how architects approach problems, often limiting their perspective

  • Software architecture faces key challenges around time, change, and uncertainty that cannot be solved through code or traditional engineering approaches alone

  • Linear thinking works well for programming but architects need lateral thinking skills to handle complexity and ambiguity

  • Process philosophy (focusing on change and movement) is more suitable for architecture than substance philosophy (focusing on fixed essences)

  • Models and diagrams shouldn’t control reality - they should serve as tools while recognizing the underlying complexity and constant change

  • Architects need to embrace speculation, criticality, and difference rather than seeking absolute correctness

  • The goal of architecture is not correctness but rather creating systems that can adapt to unforeseen circumstances

  • Many architectural problems are philosophical in nature and require questioning fundamental assumptions about knowledge and reality

  • Reading outside of STEM disciplines and exposing yourself to different ways of thinking is crucial for architects

  • Architecture requires balancing both linear/engineering thinking and lateral/philosophical thinking rather than purely focusing on technical solutions