There are six key non-functional requirements that we need to keep in mind when designing solutions. A great mnemonic to remember those is PASSME. I first encountered it at jfdeclerq.biz and it served me very well. PASSME stands for Performance, Availability, Scalability, Security, Maintainability, Extensibility