Agile Praktiken
Innerhalb der Agile Software Factory hat codecentric schon seit Jahren Erfahrung im Bereich der agilen Praktiken gesammelt. Diese sind zwingend notwendig, um erfolgreich in kleinen Schritten Software entwickeln zu können, denn Methoden wie Scrum und Kanban selbst sagen dazu nichts aus. Sehr häufig sehen wir deshalb, dass Kunden beispielsweise mit Scrum scheitern, weil man in jeder Iteration so genannte technische Schulden aufbaut, die schnell zu einer schlecht wartbaren Applikation führen.
Wir empfehlen deshalb die Einführung von sechs unterschiedlichen agilen Praktiken, um mit Agilität erfolgreich zu sein.
Kontinuierliches Feedback
Ständiges Feedback über den aktuellen Entwicklungsstand und die Qualität sind unerlässlich, um in kurzen Iterationen lauffähige Software auszuliefern. Hierfür sind drei agile Praktiken erforderlich:
- Continuous Integration
Kontinuierliche Integration ist wichtig um in der Entwicklung im Team schnelles Feedback über Integrationsprobleme zu erhalten. So verhindert man böse Überraschungen am Ende eines Releases. - Agile Testing
Die Automatisierung der Entwickler (Unit Tests) und Fachtests ist wichtiger Bestandteil der Definition of Done jeder Anforderung, die man in einem agilen Projekt umsetzt. Ohne Tests würden die Testaufwände mit der Zeit explodieren und die Wartung der Codebasis schwierig werden. - Continuous Deployment
Die Automatisierung der Bereitstellung einer Software in den unterschiedlichen Stages wie Test oder Produktion inkl. unterschiedlicher Konfigurationen ist unerlässlich, damit das Team sich auf die Umsetzung von fachlichen Funktionen konzentrieren kann.
Software Handwerk
Wie schon in unserem Blog Eintrag Der Agile Entwickler beschrieben, fordert Agilität viel vom Umsetzungsteam. Das Team muss deshalb Experten im Umgang mit Architektur, Anforderungen, Implementierung und Test im agilen Umfeld haben, um erfolgreich zu sein. Dafür müssen sie Ihr Handwerk verstehen und mindestens die drei nachfolgenden Praktiken beherrschen:
- Agile Requirements Engineering
Epics und User Stories in einem Backlog zu pflegen und zu priorisieren. Story Points schätzen und verstehen lernen. Abnahmekriterien zu definieren und Mockups mit dem Fachbereich zur erstellen. Nur einige der Fertigkeiten, die man erlernen muss, um erfolgreich die Anforderungen in agilen Projekten zu pflegen. - Agile Architecture
Evolutionäre Architekuren und emergentes Design stehen im Mittelpunkt bei agilen Architekturen. - Coding Culture
Kollektives Eigentum der Codebasis, Refactoring, Testgetriebene Entwicklung, Pair Programming, Coding Standards und einfaches Design sind nicht nur wichtige Techniken, um in kurzen Zyklen Software auszuliefern, sondern erfordern in der Regel auch ein Umdenken in der Anwendungsentwicklung.
Ganz konkret können die Praktiken auch in unserem Professional Scrum Developer-Training erlernt werden – erfordern aber neben einer Schulung auch viel praktische Erfahrung, um am Ende ein “Meister” seines Handwerks zu sein.