Back
John Ousterhout: A Philosophy of Software Design (Paperback, 2018, Yaknyam Press) No rating

I define “complexity” in a practical way. Complexity is anything related to the structure of a software system that makes it hard to understand and modify the system…. If a software system is hard to understand and modify, then it it is complicated; if it is easy to understand and modify, then it is simple….

Complexity is determined by the activities that are most common. If a system has a few parts that are very complicated, but those parts almost never need to be touched, then they don’t have much impact on the overall complexity of the system….

Complexity is more apparent to readers than writers. If you write a piece of code and it seems simple to you, but other people think it is complex, then it is complex. [emphasis in original]

A Philosophy of Software Design by  (Page 5 - 6)