This document discusses what makes for a great software architecture and the role of the software architect. It argues that while architecture is important, other factors like automated tests, deployment practices, and understanding customer priorities are also critical for building changeable software. Cyclic dependencies alone do not determine how problematic a codebase is. The software architect's role is to create an architecture that supports business needs while also enabling qualities like changeability, performance and security. There are no universal rules and each project's context is unique.