A software architecture can both enable and inhibit software quality attributes. We learned about quality attributes in Chapter 4, Software Quality Attributes. Examples of software quality attributes include maintainability, availability, performance, and security. A software architect has to communicate details of how design decisions will affect the quality attributes of a software system. Communication with product owners, business analysts, and other stakeholders might be necessary to make design decisions based on quality attribute tradeoffs.