Prinzipielles
1. Schätze Variation (Value Variation (VV))
Werte: Evolvierbarkeit, Kontinuierliche Verbesserung
2. Tue nur das Nötigste (Do Only What´s Neccessary (DOWN))
Werte: Produktionseffizienz, Evolvierbarkeit
- Vorsicht vor Optimierungen!
- You Ain´t Gonna Need It (YAGNI)
- Keep it simple, stupid (KISS)
3. Isoliere Aspekte (Isolate Aspects (IA))
Werte: Evolvierbarkeit
- Don´t Repeat Yourself (DRY)
- Separation of Concerns (SoC)
- Single Level of Abstraction (SLA)
- Single Responsibility Principle (SRP)
- Entwurf und Implementation überlappen nicht
4. Minimiere Abhängigkeiten (Minimize Dependencies (MD))
Werte: Evolvierbarkeit
- Dependency Inversion Principle
- Information Hiding Principle
- Law of Demeter
- Open Closed Principle
- Tell, don´t ask
- Interface Segregation Principle (ISP)
5. Halte Versprechen ein (Honor Pledges (HP)
Werte: Evolvierbarkeit
oder auch: Minimize Surprises
- Liskov Substitution Principle
- Principle of Least Astonishment
- Implementation spiegelt Entwurf
- Favour Composition over Inheritance (FCoI)
Praktisches
1. Umarme Unsicherheit (Embrace Uncertainty (EU))
Werte: Evolvierbarkeit, Kontinuierliche Verbesserung
- Ein Versionskontrollsystem einsetzen
- Automatisierte Integrationstests
- Automatisierte Unit Tests
- Mockups (Testattrappen)
- Continuous Integration
- Inversion of Control Container
2. Fokussiere (Focus (F))
Werte: Produktionseffizienz
- Komponentenorientierung
- Test first
- Limit WIP // neu
3. Wertschätze Qualität (Value Quality (VQ))
Werte: Produktionseffizienz
- Akzeptiere nur hohe Qualität // neu
- Automatisierte Unit Tests
- Reviews
4. Mach fertig (Get Things Done (GTD))
Werte: Produktionseffizienz
- Iterative Entwicklung
- Continuous Delivery
- Limit WIP
5. Halte Ordnung (Stay Clean (SC))
Werte: Evolvierbarkeit, Korrektheit, Produktionseffizienz
- Die Pfadfinderregel beachten
- Komplexe Refaktorisierungen
- Einfache Refaktorisierungsmuster anwenden
- Statische Codeanalyse (Metriken)
- Code Coverage Analyse
- Source Code Konventionen // ehemals Prinzip
6. Bleib am Ball (Keep Moving (KM))
Werte: Kontinuierliche Verbesserung
- Lesen, Lesen, Lesen
- Teilnahme an Fachveranstaltungen
- Erfahrung weitergeben
- Täglich reflektieren
- Root Cause Analysis
- Messen von Fehlern
- Issue Tracking
- Regelmäßige Retrospektiven // neu