Contents
1. Value Variation (VV)
Values: Evolvability, Continuous Improvement
2. Do Only What’s Necessary (DOWN)
Values: Production Efficiency, Evolvability
- Beware of optimizations
- You Ain’t Gonna Need It (YAGNI)
- Keep it simple, stupid (KISS)
3. Isolate Aspects (IA)
Values: Evolvability
- Don’t Repeat Yourself (DRY)
- Separation of Concerns (SoC)
- Single Level of Abstraction (SLA)
- Single Responsibility Principle (SRP)
- Interface Segregation Principle (ISP)
- Design and Implementation don’t overlap
- Integration Operation Segregation Principle (IOSP)
4. Minimize Dependencies (MD)
Values: Evolvability
- Dependency Inversion Principle
- Information Hiding Principle
- Law of Demeter
- Open Closed Principle
- Tell, don´t ask
- Interface Segregation Principle (ISP)
- Integration Operation Segregation Principle (IOSP)
5. Honor Pledges (HP)
Values: Evolvability
aka: Minimize Surprises
- Liskov Substitution Principle
- Principle of Least Astonishment
- Implementation mirrors Design+
- Favour Composition over Inheritance (FCoI)
Practical
1. Embrace Uncertainty (EU)
Values: Evolvability, Continuous Improvement
- Version Control
- Automatized Integration Tests
- Automatized Unit Tests
- Mockups (test dummies)
- Continuous Integration (CI)
- Inversion of Control Container (IoC)
2. Focus (F)
Values: Production Efficiency
- Component Orientation
- Test First
- Limit WIP
3. Value Quality (VQ)
Values: Production Efficiency
- Accept High Quality Only
- Automatized Unit Tests
- Reviews
4. Get Things Done (GTD)
Values: Production Efficiency
- Iterative Development
- Continuous Delivery
- Limit WIP
5. Stay Clean (SC)
Values: Evolvability, Correctness, Production Efficiency
- Path Finder Rule
- Complex Refactorings
- Simple Refactoring Patterns
- Static Code Analysis (Metrics)
- Code Coverage Analysis
- Source Code Conventions
6. Keep Moving (KM)
Values: Evolvability, Continuous Improvement
- Read, Read, Read
- Professional Event Participation
- Knowledge Transfer
- Reflect Every Day
- Root Cause Analysis
- Error Measurement
- Issue Tracking
- Regular Retrospectives