Software Craftsmanship
Die beste agile Praxis der Codebereinigung – im laufenden Projekt
Es gibt mehrere Gründe für Software Craftsmanship (in etwa „Software-Handwerkskunst“ oder „Softwerkskunst“): Stolz auf die eigene Arbeit, nachhaltiges Entwicklungstempo, vertrauensvolle Deployments, respektvoller Umgang mit Teammitgliedern.
Diese Bewegung in der Softwareentwicklung packt mehrere Praktiken zusammen, die die Qualität der Softwareentwicklung rundum verbessern und einander synergetisch stärken und der nachhaltigen und verantwortungsvollen Erstellung nützlicher Software dienen. Der ultimative Booster vom fachlichen Können für Softwareentwickler:innen.
Prozesse
- Iterative und inkrementelle Entwicklung
- Zerkleinern von User-Stories
- Definition of Done
- Domänensprache, Namensgebung
- Code-Review, Pull/Merge-Request-Review
- Dokumentation, Code-Kommentare
Architektur und Code
- Makrostrukturen und Mikrostrukturen: System, Service, Component, Library, Class, Function
- Abstraktion (Levels of Abstraction), Kohäsion und Kopplung, Single-Responsibility
- Code-Metriken, Komplexität, Abdeckung, Abhängigkeiten, Code Forensics
- Code-Smells
- S.O.L.I.D.-Designprinzipien
- Fehlerbehandlung
Testen
- Test-Strategie und -Pyramide
- Testautomatisierung, Testabdeckung und was nicht zu testen ist
- Testbarkeit, „untestbaren“ Code unter Test bringen, Mocks
- Refactoring und Patterns für Testbarkeit
- Test-First als Paradigma bei testgetriebener Entwicklung (TDD)