1. Program Organization
2. Major classes
3. Data Design
4. Business Rules
5. User Interface Design
6. Resource Management
7. Security
8. Performance
9. Scalability
10. Interoperability
11. Internationalization/Localization
12. Input/Output
13. Error Processing
14. Fault Tolerance
15. Architectural Feasiblility
16. Overengineering
17. Buy- vs. -Build Decisions
18. Reuse Decisions
19. Change Strategies
-- quote from <Code Complete>