Principles
1. estimates variation (Value Variation (VV))
Values: Changeability, Continuous improvement
2. do only what's necessary (DOWN)
Values: production efficiency, changeability
Beware of optimizations! (Principle of the red degrees)
You Ain't Gonna Need It (YAGNI) (Principle of the blue grade)
Keep it simple, stupid (KISS) (principle of the red degrees)
3. isolate aspects (IA)
Values: Changeability
Don't Repeat Yourself (DRY) (principle of the red degrees)
Separation of Concerns (SoC) (principle of orange grade)
Single Level of Abstraction (SLA) (principle of orange grade)
Single Responsibility Principle (SRP) (principle of orange grade)
Interface Segregation Principle (ISP) (principle of yellow grade)
Design and implementation do not overlap (principle of blue grade)
Integration Operation Segregation Principle (IOSP) (principle of red degrees)
4. minimize dependencies (Minimize Dependencies (MD))
Values: Changeability
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) (principle of red degrees)
5. keep promises (Honor Pledges (HP))
Values: Changeability
or also: Minimize Surprises
Liskov Substitution Principle
Principle of Least Astonishment
Implementation mirrors design
Favour Composition over Inheritance (FCoI)
Practical
1. embrace uncertainty (Embrace Uncertainty (EU))
Values: Changeability, Continuous improvement
Use a version control system
Automated integration tests
Automated unit tests
Mockups (test dummies)
Continuous Integration
Inversion of Control Container
2. focus (Focus (F))
Values: Production efficiency
Component orientation
Test first
Limit WIP // new
3. value quality (VQ)
Values: Production efficiency
Accept only high quality // new
Automated unit tests
Reviews
4. get things done (GTD)
Values: Production efficiency
Iterative development
Continuous Delivery
Limit WIP
5. stay clean (SC)
Values: Changeability, correctness, production efficiency
Observe the scout rule
Complex refactoring
Apply simple refactoring patterns
Static code analysis (metrics)
Code Coverage Analysis
Source code conventions // formerly principle
6. keep the ball rolling (Keep Moving (KM))
Values: Continuous improvement
Read, read, read
Participation in specialist events
Passing on experience
Reflect daily
Root Cause Analysis
Measuring errors
Issue Tracking
Regular retrospectives // new