Natty test for adaptive OO systems.
This is a simple test that I use to get basic insight whether system is built on solid OO approach, and adaptive to further changes. Using those questions while interviewing system owner gives me indication about OO level of the system and system adaptively level.
The test is based on 10 questions:
1) Is your system class diagram contains generalization relationship (inheritance) between classes?
2) Is your system class diagram contains Interfaces and/or abstract classes?
3) Is your system contains configuration files holding definitions that might be use to change system sub-system and system behavior?
4) Is your system following structure behavior pattern such as MVC?
5) Is your system implement transaction scripts, domain model or table module?
6) Can you add services to your business logic and data access layer classes without changing existing class’s code?
7) Do you use design patterns in your system?
8) Is there any use of attribute (your own implementation) in the system?
9) Do you use any application blocks or open source projects in your system?
10) Is your classes hold state, has few methods with few parameters and serve just one system need?