Structural and Cross-cutting Characteristics Quiz¶
15 questions on the characteristics felt by the people changing the system, and on the ones that constrain all of it: maintainability, modularity, testability, deployability, configurability, security, observability, usability, portability and interoperability.
Structure¶
Which measurement is the most honest proxy for maintainability?
A feature request consistently requires edits in the controller layer, the service layer, and the repository layer. What does this indicate?
Connascence of position is discovered between two modules that communicate across a service boundary. What is the recommended direction of change?
A "common" library is shared by every service and changes weekly. What has effectively happened?
A team's test suite is dominated by slow end-to-end tests, and unit tests are rare. What is the most likely architectural cause?
Which change most improves controllability and determinism in tests?
Why is building one artefact and promoting it through environments better than rebuilding per environment?
The four DORA metrics measure throughput and stability. What does the evidence say about their relationship?
Which schema change is safe to deploy alongside a rolling release?
What is the main testability cost of adding many independent feature flags?
Cross-cutting¶
An authenticated request from user A asks for order 5001, which belongs to user B. Where must this be stopped?
An authorisation check throws an unexpected exception. What must the outcome be?
During an incident, what makes logs from a distributed system actually usable?
Which alerting policy is most likely to keep on-call engineers responsive?
A team builds a full database abstraction layer so they "could switch engines later", with no migration planned. Which characteristic did they over-buy, and at what cost?