code-for-a-living January 17, 2022 Plan for tradeoffs: You can’t optimize all software quality attributes An essential part of requirements analysis is understanding which quality characteristics are the most important so that designers can address them appropriately. Karl Wiegers