Unsere Arbeitsweise


Unsere Arbeitsweise

So funktioniert agile Softwareentwicklung
mit reflect.media

Agile Softwareentwicklung nach Scrum

In einem Entwicklungsprozess können nicht alle Gegebenheiten und Eventualitäten im Vorhinein berücksichtigt und spezifiziert werden. So haben kleine technische Änderungen im klassischen Wasserfallmodell große Auswirkungen auf den gesamten Projektverlauf.

Durch die Anwendung der agilen Softwareentwicklung nach Scrum wird dem Entwicklungsprozess ein höheres Maß an Flexibilität und Transparenz verliehen. Dabei wird der gesamte Entwicklungszeitraum in kleine Iterationen unterteilt, sog. Sprints. Diese können, je nach Wunsch, zwischen 2-4 Wochen variieren. 

Durch die Einteilung des Entwicklungsprozesses in Sprints mit einer Dauer von 2 Wochen und die damit verbundene Sprintplanung gemeinsam mit dem Auftragnehmer, erhält der Auftraggeber einen sehr detaillierten Einblick, was genau im nächsten Entwicklungsschritt implementiert wird.

So erhält der Kunde einen frühestmöglichen Einblick in den aktuellen Fortschritt im Entwicklungsprozess und kann die Entwicklungsergebnisse des Sprints direkt nach Sprintende einsehen. Gleichermaßen hat der Auftraggeber die Möglichkeit die Priorisierung von Features in der Sprintplanung einzubringen.

Gerade bei öffentlichen Auftraggebern in Deutschland ist das V-Modell-XT ein beliebtes Vorgehensmodell zur Steuerung von Projekten. Die im Modell definierten Verbindlichkeiten zur Projektdurchführung und den entsprechenden Verantwortlichkeiten geben Auftraggeber und Auftragnehmer notwendige Sicherheiten als solides Fundament für die Projektdurchführung.


Wir kombinieren dieses Modell mit dem agilen Entwicklungsprozess, um die nach dem V-Modell XT definierten Iteration noch feingliedriger zu unterteilen. Auf diese Weise ergibt sich ein Entwicklungsprozess, in welchem der Auftraggeber möglichst früh Einblick in die Entwicklung erhält aber gleichermaßen nicht auf die notwendigen Sicherheiten verzichten muss.


Die Verwendung von User-Stories

Für jeden Sprint wird eine Funktion der Software in sog. User-Stories aufgeteilt und aus der Sichtweise des Benutzers beschrieben: 

“Als Administrator muss ich alle Beiträge auf der Webseite freigeben, bevor diese für den Gast (nicht authentifiziert) erscheinen.” 

Im Anschluss wird eine User-Story gemeinsam mit dem Entwicklerteam in kleine Tasks aufgeteilt und einem Entwickler für die Bearbeitung zugeteilt. Die Summe aller User-Stories im System wird Backlog genannt und wird von der Projektleitung und den sog. Product-Ownern auf Auftraggeberseite gepflegt. Ein Product-Owner kann sich dabei um eine ganze Webseite oder nur um einen Teilbereich verpflichten. 

Der Entwicklungsprozess innerhalb eines Sprints wird vom sog. Scrum-Master überwacht und moderiert. Er ist dafür verantwortlich, dass der Scrum Prozess ohne Störung ablaufen kann.

Zur Qualitätssicherung werden die Ergebnisse des Sprints nach jedem Sprint zunächst auf Auftragnehmerseite und danach auf Auftraggeberseite geprüft. So gibt es auf Auftragnehmerseite ein QS-Team, welches die Ergebnisse als letzte Instanz für den Auftraggeber freigibt. Hier ist als Besonderheit noch zu erwähnen, dass aufgrund eines Interessenkonflikts das QS-Team nicht durch die Projektleitung besetzt werden darf. 

Qualitätssicherung

Zur Sicherung der Qualität im Bereich der Entwicklung, des Designs und des Supports durchlaufen alle Aufgaben einen internen zweistufigen Qualitätssicherungsprozess bevor sie auf dem Testsystem zur Abnahme zur Verfügung gestellt werden.

Der erste Test findet intern von einem im Projekt beteiligten Entwickler (nicht ausführender Entwickler im Ticket) statt (Status “Internal DEV Review”). Der zweite interne Test wird von einem Mitglied des QS-Teams durchgeführt (Status “Internal STAGE Review”), welcher selbst nicht mit den Details des Projektes vertraut ist. Dieser prüft die Anforderungen gemäß Ticketbeschreibung, Ergebnis und aus Sicht der Usability. Erst dann wird das Ticket zum Review an den Auftraggeber (Status “Client STAGE Review”) übergeben. Die folgende Abbildung zeigt alle Ticket-Status zur Übersicht.

Projektmanagement mit Open-Project

Um eine möglichst gute Wartbarkeit und Änderbarkeit der Software zu gewährleisten, werden Aufbau und Quellcode der Plattform auf mehreren Ebenen dokumentiert. Die Dokumentation erfolgt hierbei kontinuierlich während der Entwicklung und nicht erst nachgelagert.

Auf diese Weise können sich hinzukommende Entwickler schnell in das System und den Code einarbeiten. Um eine zeitnahe Dokumentation des Quellcodes zu gewährleisten, werden der Projektleitung entsprechende Werkzeuge zur Überwachung des Dokumentationsstatus an die Hand gegeben.

Eine zentrale Rolle in der technischen Dokumentation spielt das System “Open-Project” welches als internes Wiki- und Ticketsystem zum Einsatz kommen soll. Auf das System haben sowohl die Entwickler wie auch der Auftraggeber Zugriff.

Im Wiki werden der Grundaufbau des Systems, die einzelnen Module sowie deren Zusammenspiel beschrieben. Neu hinzukommende Entwickler können sich damit schnell einen Gesamtüberblick über das System verschaffen. Durch die Möglichkeit, Tabellen und Grafiken in die Wiki-Seiten zu integrieren, bietet sich das System auch zur Dokumentation von Schnittstellen, Abläufen, etc. an.

Versionsmanagement mit git

Zur Verwaltung der einzelnen Versionsstände der Software wird das Versionsverwaltungssystem “Git” verwendet. Ein solches System ermöglicht eine lückenlose Dokumentation der Programmierung sowie die gleichzeitige Arbeit mehrerer Personen an der Software, ohne dass es zu unnötigen Konflikten kommt. 

Mit Einschränkungen ist sogar das gleichzeitige Bearbeiten der gleichen Datei durch mehrere Personen möglich. Git führt am Ende alle Änderungen automatisch zusammen (“merge”). Zusätzlich ist es möglich, einzelne Änderungen (“commits”) wieder rückgängig zu machen, Versionsstände beliebigen Datums wiederherzustellen oder größere Änderungen in separaten Entwicklungszweigen (“branches”) voranzutreiben und ggf. anschließend wieder in den Hauptentwicklungszweig zu überführen.
Git ist Open Source Software und derzeit eines der am weitesten verbreiteten Versionsverwaltungssysteme.

Share by: