A former colleague of mine referred me to the book A Philosophy of Software Design. These are some of my thoughts, as I enjoy reading this book.
The first chapter discusses the concept of complexity and describes it as such: “Complexity is anything related to the structure of a software system that makes it hard to understand and modify the system.” I think this is a good description of complexity in relation to software, as it does not focus on a specific part of a software system. The author continues by also mentioning that complex software systems are hard to understand and modify, while simple software systems are easy to understand and modify.
Complex software can come in different forms and sizes. A small section of code can be complex, or a large software system could be simple. I personally have come across platforms where the idea of the software itself is complex.
When designing and building software, it is our job to understand that it is in our best interest to build simple software for ourselves and the future maintainers of the software. Everyone will be thankful for that foresight.