What makes software complex?
- Too many moving part - is the complexity worthed? (ex: microservices)
- Excessive configuration
- Unnecessary components
- Too many layers
- Brittle
- Error prone
- Hard to deploy
- Hard to test
- Hard to reason
- Uncontrollable mutability
- Excessive dependencies - dependencies are hard to maintain and become incompatible
- Technology infatuation & Resume driven development - frequently adding new technologies without business value
- Lack of reversibility - The ability to back out of design/architectural decisions
- Frameworks - the framework calls to your code and your code calls to the. framework
- Libraries - easier to reverse than a framework
- “Using a library is like dating, using a framework is like a marriage”
Resource