As an architect in the world of software development, I’ve often encountered business stakeholders who, despite their expertise in their respective domains, find themselves out of depth when discussing the nitty-gritty of software requirements. The challenge isn’t their lack of understanding; it’s about bridging the gap between their business needs and the technical solutions we can provide.
In this blog post, I’ll share a couple of conversations starters for each of the ISO 25010 quality attributes (also known as non-functional requirements), which will eventually drive a lot of the software architecture and associated cost.

Functional Suitability
- Functional Completeness: “Can you describe the tasks and functions you expect the software to perform for your business?”
- Functional Correctness: “What does ideal performance of these tasks look like in your view?”
- Functional Appropriateness: “How do you envision these features fitting into your daily business activities?”
Performance Efficiency
- Time Behavior: “What are your expectations about the time it takes for the software to complete various tasks?”
- Resource Utilization: “What are your thoughts on how the software should use the existing resources of your computers or systems?”
- Capacity: “Could you explain the volume of data and the number of users the software should handle?”
- Scalability: “How do you see the software adapting to the growth of your business in terms of users and workload?”
Compatibility
- Co-existence: “What other systems or software do you use, and how do you expect this new software to function alongside them?”
- Interoperability: “What are the types of interactions or data exchanges you expect the software to have with other systems?”
Usability
- Appropriateness Recognizability: “What are your thoughts on how new users should experience learning and using the software?”
- Operability: “What are your expectations regarding the ease of managing and customizing the software?”
- User Error Protection: “How do you think the software should handle mistakes made by users?”
- User Interface Aesthetics: “What are your preferences or expectations for the software’s visual design and user interface?”
- Accessibility: “What are your requirements or expectations for the software’s accessibility for users with disabilities?”
- Maturity: “What is your tolerance for minor bugs or issues in the software, and how often do you think they should occur?”
Reliability
- Availability: “What are your thoughts on the acceptable amount of downtime, if any, for the software?”
- Fault Tolerance: “In what ways do you expect the software to handle unexpected errors or failures?”
- Recoverability: “How do you envision the process of recovering data or regaining functionality after a system failure?”
Security
- Confidentiality: “Can you describe the types of sensitive information the software will handle and your expectations for its protection?”
- Integrity: “What is your perspective on maintaining the accuracy and consistency of data within the software?”
- Non-repudiation: “How important is it for the software to provide proof of transactions or actions that cannot be disputed later?”
- Authenticity: “What are your expectations for verifying the identities of users accessing the software?”
- Accountability: “What kind of tracking or auditing of user actions within the software would you consider necessary?”
Maintainability
- Modularity: “How do you view the importance of being able to update or modify parts of the software independently?”
- Reusability: “What are your thoughts on the potential to reuse parts of this software for different functions in the future?”
- Analysability: “How do you see the process of identifying and addressing issues within the software?”
- Modifiability: “How do you anticipate your business needs changing, and what would that mean for the software?”
- Testability: “What are your thoughts on how the software should be tested for its functionality and performance?”
- Deployability: “What are your expectations or preferences regarding the ease of deploying the software in your environment?”
Portability
- Adaptability: “How do you envision the software adapting to different types of devices or operating systems?”
- Installability: “What are your thoughts on the installation process of the software?”
- Replaceability: “How do you feel about the ability to replace this software with a different one in the future, if needed?”