The Eric Normand Podcast

Why taming complex software?

Jul 1, 2019
Explore the challenges of managing software complexity and how functional programming offers solutions. Discover the journey behind the book title 'Taming Complex Software' and its significance in addressing these issues. Learn about the intricacies of scaling software systems, including the impacts of conditionals and parallel processing. Find out how functional programming can enhance communication and streamline data modeling in complex environments.
Ask episode
AI Snips
Chapters
Transcript
Episode notes
INSIGHT

Software's Kingdom Problem

  • Software complexity makes development harder as projects grow, similar to how managing larger kingdoms gets complex.
  • Communication and record-keeping systems become crucial for handling this increasing complexity.
INSIGHT

Conditionals and Code Paths

  • Every conditional (if statement) at least doubles the number of code paths, increasing testing needs and potential issues.
  • Typical software contains millions of code paths, making complexity reduction feel insignificant despite its importance.
INSIGHT

Complexity in Parallel Systems

  • In parallel or distributed systems, each sequential action increases complexity due to different interleaving possibilities.
  • Developers must ensure all interleavings produce correct results, as they cannot fully control execution order.
Get the Snipd Podcast app to discover more snips from this episode
Get the app