O'Reilly logo
live online training icon Live Online training

System Design Fundamentals: Righting Software

Topic: Software Development
Juval Lowy

For software architects, the correct design of your system is the key to the success of any project and ultimately, your career. And yet, the majority of software systems are designed in literally the worst possible way, which impacts the business, customers, investors, and users. In this densely packed course, Juval Lowy will explain his proven approach to system analysis and design, using volatility to decompose a system into its comprising services. Juval will contrast this approach with the most common mistake made in architecture--using functionality to identify services. Juval will highlight universal design principles and will use examples from software and non-software systems alike. You will also learn how to overcome the real hurdles architects face pursuing volatility-based decomposing, simple and practical techniques for identifying areas of volatility, and a structured approach for defining the components of the architecture.

The training will show how to correctly define the architecture of software systems. With the wrong architecture (which is the norm) the system will be very complex to build, horrendously expensive compared with what it should cost, rife with defects, unable to meet the ever changing requirements, take forever to complete, and will cost so much during maintenance that it will force its owners to abandon it in favor of a new, often even messier solution. In its wake the system will leave broken commitments, teams, and frustrated customers. All of that is avoidable when the system is designed properly, and yet the majority of architects simply do not know how to do their job. This session will show participants how righting software can also point them in the right direction to fix their careers.

What you'll learn-and how you can apply it

  • What not to do
  • How to design software systems
  • Simple analytical tools
  • Structure and validation

This training course is for you because...

Any software architect will benefit greatly from this session or developers transitioning to the role of architects. Project managers can see what they need to look for in architects.


An open mind. This session goes against everything you have seen or practiced. Past pain is a plus, but is not required.

Recommended Follow-up

About your instructor

  • Juval Löwy is the founder of IDesign and a master software architect specializing in system and project design. He has helped countless companies deliver quality software on schedule and on budget. Juval participated in the Microsoft internal strategic design reviews and is a frequent speaker at the major international software development conferences. Juval published several bestsellers, and his recent book is Righting Software (Addison-Wesley, 2019). Juval published numerous articles, regarding almost every aspect of modern software development and architecture. Juval conducts Master Classes around the world, teaching thousands of professionals the skills required of modern software architects. Microsoft recognized Juval as a Software Legend as one of the world’s top experts and industry leaders.


The timeframes are only estimates and may vary according to how the class is progressing

Segment 1: Avoid Functional Decomposition (60 minutes)

  • Perils of functional decomposition
  • Design and value
  • Demonstrating futility
  • Anti-design example

Break and Q&A (10 minutes)

Segment 2: Volatility-Based Decomposition (90 minutes)

  • Universal principle
  • The volatility challenge
  • Solutions as requirements
  • Design example
  • Resisting bad habits
  • Decomposition and the business

Break and Q&A (10 minutes)

Segment 3: Structure (90 minutes)

  • Design and layers
  • Client volatility
  • Business logic volatility
  • Resource access volatility
  • Utilities
  • Open and closed architecture
  • Architecture validation
  • Containing changes

Break and Q&A (10 minutes)

Course wrap-up and next steps (10 minutes)