Managing complexity in software system design.

Clackamette Park Bridge, Oregon City, Oregon

Every software development team struggles to identify and address complexity in the systems they design, develop, and operate. In my experience, many of these teams either ignore complexity or try to reinvent the wheel when they could be learning about containing complexity from leading industry experts. John Ousterhout, professor of computer science at Stanford University, is one of those experts. Everyone in the software industry has a lot to learn and gain from his experience.

John joined me recently on Software Engineering Radio for a conversation about his book, A Philosophy of Software Design. We discussed the history and ongoing challenges of software system design, especially the nature of complexity and the difficulties handling it. We also explored various design concepts from the book, such as modularity, layering, abstraction, information hiding, maintainability, and readability.

I highly recommend you listen to this episode and share it with your colleagues in the software industry. And don’t forget to grab a copy of John’s Book!

A Philosophy of Software Design with John Ousterhout on Software Engineering Radio.

Go give it a listen and be sure to share with your colleagues.


Don’t miss all the great episodes of Software Engineering Radio! You can catch the show on Spotify, YouTube (audio only), or by adding the podcast feed to your favorite podcasting app.