Clean Architecture
Chapter 2 - A tale of two values
-
Developers must maintain two values, behaviour and structure
-
Behaviour requires developers to develop a functional specification / document and implement it, either saving or making money for stakeholders
-
Structure / architecture refers to the structure of the software and its adaptability to changes
-
Stakeholders think they provide a stream of changes of similar scope, a developer thinks they have to fit a stream of jigsaw pieces into a puzzle of increasing complexity
- The required changes are hard to implement because the shape of the system does not match the shape of the request
-
There should be more priority for a system to adapt than for it to work
- If a system can't change but it works, it will become obsolete with future requirements
- If a system is adaptable but doesn't work, it can be updated as requirements change
Eisenhower's matrix
-
The urgent are not important, and the important are never urgent
- Behaviour is urgent but not particularly important
- Architecture is important but never particularly urgent
-
Priorities:
- Urgent and important
- Not urgent and not important
- Urgent and not important
- Not urgent and not important
Fight for the architecture
- Developers have a responsibility to assert the important of architecture over the urgency of features
- The developer should provide expertise and their judgement to stakeholders
- It's a necessary struggle