Agile Methoden
Aktualisiert (Sonntag, den 20. Juni 2010 um 22:42 Uhr) Geschrieben von: Thomas Schütz Montag, den 05. April 2010 um 19:19 Uhr
Scrum und Extreme Programming (XP)
Scrum und Extreme Programming gehören zu den agilen Methoden und bilden eine ideale organisatorische Grundlage für unsere Projekte.
Das Agile Manifest (2001) definiert die Werte der agilen Softwareentwicklung wie folgt:
- Individuen und Interaktionen gelten mehr als Prozesse und Tools
- Funktionierende Programme gelten mehr als ausführliche Dokumentation
- Die stetige Zusammenarbeit mit dem Kunden steht über Verträgen
- Der Mut und die Offenheit für Änderungen stehen über dem Befolgen eines festgelegten Plans
Unterschiede zwischen Scrum und XP
Während XP sich mehr mit den Engineering Aspekten beschäftigt, liegt der Fokus bei Scrum eher auf den Management Aspekten. Je nach Projekt kann eine von beiden Methoden oder eine Kombination beider verwendet werden.
Agile Praktiken
Protos praktiziert seit Jahren Kernideen der agilen Methoden. Darunter sind vor allem folgende zu nennen.
Inkrementelles Design
Meist ist es am sinnvollsten mit dem Wissen, das man zu einem Zeitpunkt hat, zu starten. So entsteht sehr bald ein Prototyp, der nach und nach ausgeweitet wird. Mit dem Protoyp und den neuen Erkenntnisgewinnen wird auch das Design verfeinert. Refactoring ist ein integraler Bestandteil dieser Vorgehensweise und garantiert ein sauberes Design zu jedem Zeitpunkt. Inkrementelles Design hat einen hohen Nutzen für den Kunden, der oft selbst noch nicht so ganz genau weiß, was die Software alles können soll. So erhält auch er sehr bald ein Produkt, mit dem er weitere Erfahrungen sammeln kann und das Schritt für Schritt die jeweils wichtigsten Features umsetzt.
Kurze Zyklen
Wir arbeiten so, dass wir ständig lauffähige Software aus dem Quellcode bauen können. Für jeden Zyklus werden in Absprache mit dem Kunden Features ausgewählt, die bis zum Ende des Zyklus umgesetzt werden. Die Länge der Zyklen kann dabei von wenigen Tagen bis maximal zwei bis drei Wochen dauern. Der Kunde bekommt dann den aktuellen Stand und kann sich die neuen Features ansehen und Verbesserunsgvorschläge einbringen. So entsteht jeweils eine neue Grundlage auf der die als nächstes umzusetzenden Features erst sinnvoll bestimmt werden können.
Testgetriebene Programmierung
Unit Tests, modellbasierte Integrationstests und virtuelle Inbetriebnahme sorgen für Qualität und geben jederzeit die Sicherheit, dass neue Features oder Bugfixes keine unerwünschten Nebeneffekte produzieren. Die Implementierung beginnt mit dem Schreiben eines Tests oder einer Simulation und dann erst mit der Umsetzung des eigentlichen Codes.
Stories
Stories sind kurze, informelle Beschreibungen einzelner Eigenschaften und Fähigkeiten, die eine Software haben soll. Stories werden benutzt, um den Stoff zu sammeln und zu priorisieren. Sie beschreiben ihren Gegenstand in einfacher Sprache aus der Nutzerperspektive. Technische Details haben dort nichts zu suchen. Stories werden für ihre Umsetzung im jeweils nächsten Entwicklungszyklus mit dem Kunden priorisiert und dann im Zuge der Implementierung verfeinert.




