Der Entwicklungsprozess ist in vier Phasen aufgeteilt: Discover, Define, Develop und Deliver.
Im Fokus: Das Problem so genau wie möglich zu spezifizieren.
Bei jedem Projekt oder Ticket durchlaufen wir die vier Schritte. Dadurch stellen wir sicher, dass die Entwicklung auf den richtigen Anforderungen basiert und der Entwicklungsprozess effizient ist.
Die beiden ersten Phasen, Discover und Define, finden zb. in einem gemeinsamen Meeting statt.
Bevor im letzten Schritt wirklich das neue Feature ausgeliefert wird, wird noch ein Abnahmetest und ggf. weitere Änderungen gemacht.
Um zu einer guten Lösung kommen können, ist es wichtig das Problem zu verstehen.
Nicht jede Individualsoftware ist direkt eine Verbesserung. Manchmal bedarf es auch gar keiner Programmierung um ein Problem zu lösen. Wir finden es gemeinsam heraus. In dieser ersten Phase stellen wir eine Menge Fragen um zu verstehen, was das Problem ist und wie wir es am besten lösen können.
Durch die Planung der einzelnen Entwicklungsschritte machen wir zum einen für uns selbst aber auch für dich als unseren Kunden die Schritte sichtbar, die gegangen werden müssen um am Ziel anzukommen. Es gibt außerdem allen die Möglichkeit, zu jeder Zeit Auskunft über den Stand des Projekts zu erfahren.
Die Planung ist alles
agilität beudeutet, schnell auf Änderungen reagieren zu können. Dazu passen wir stets unsere Planung an um beurteilen zu können, wie unser Fortschritt beeinflusst wird.
Diese Phase ist die kontinuierliche Abfolge von Entwicklung und Feedback. Das schnelle ausliefern von Ergebnissen mit anschließendem Feedback stellt sicher, dass wir uns in die richtige Rickung bewegen. Dadurch können wir auch verwertbare Ergebnisse erzielen wenn die Anforderungen Mal nicht ganz klar sind.
Den Projektabschluss gilt es von Anfang an im Blick zu halten. Neben den Meilensteinen die es auf dem Weg zu erreichen gibt, ist das Gesamtziel natürlich am bedeutsamsten. Es muss geprüft werden: Wurde der Zeitrahmen und der Kostenrahmen eingehalten? Haben wir alle Features erfolgreich umgesetzt?
Wir stehen auch nach der Übergabe für dich bereit. Denn Software ist nie fertig.
Ein Manko der Individualsoftware ist ihr nicht zu leugnender Wartungsaufwand. Es ist kein Produkt von der Stange und erfordert damit spezielle Aufmerksamkeit. Das Gute daran ist: Wir wollen dir nicht zur Last fallen und stehen daher flexibel für dich zur Verfügung. Ob für neue Features oder die regelmäßigen Wartungsarbeiten.
Das iterative Vorgehen bei der Umsetzung von Projekten wird agile genannt. Dabei ist es nicht das Ziel ein Pflichtenheft in einem Anlauf abzuarbeiten, sondern kleine Entwicklungsschritte in kurzen Zeitabständen mit dem Kunden abzustimmen und stetig neue Ziele zu definieren. Das populärste Modell ist mit großem Abstand Scrum, welches auch wir für unsere Projekte einsetzen.
Durch das regelmäßige überprüfen der Anforderungen und Ergebnisse, kann das Team auch während der Umsetzung des Projekts noch auf Änderungen reagieren.
Wie hilft agile Softwareentwicklung unseren Kunden?
Die vermutlich schwierigste Aufgabe in der Softwareentwicklung ist nicht die Softwareentwicklung sondern die Kommunikation. Jeder Gedanke der im Gespräch zwischen Entwickler und Kunde verloren oder verfälscht wird, kostet zusätzliche Zeit und Ressourcen.
Der agile Arbeitsprozess hilft, diese Missverständnisse frühzeitig aufzudecken. Im besten Fall kommen solche Verluste gar nicht vor weil die anderen, zusätzlichen Projektmanagement-Methoden greifen. Darunter zählen z.B. die regelmäßige Definition und Abstimmung von Akzeptanzkriterien.
Kurzum: agile spart Geld!
Die Zusammenstellung eines agilen Entwicklungsteams ist von Projekt zu Projekt unterschiedlich und richtet sich nach den Anforderungen des Projekts. Für dieses Beispiel gehen wir davon aus, dass wir ein Digitalisierungsprojekt für ein Mittelständisches Unternehmen durchführen. Dabei setzen wir im Backend Laravel und im Frontend VueJs ein.
Aufgabe: Für den Kunden ist der Projektleiter der zentrale Ansprechpartner. Er hat genug technische und branchenspezifische Expertise um die Anforderungen gemeinsam mit dem Kunden zu besprechen und die nächsten Entwicklungsschritte zu planen. Innerhalb des Teams unterstützt er die Entwickler bei ihrer Arbeit indem er die Anforderungen klar definiert und den Großteil der Kommunikation mit dem Kunden übernimmt.
Aufgabe: Sie setzen die Kundenwünsche um und leisten die Implementierungsarbeit. Sie sind auf die Vorbereitungen und Dokumentationen des Projektleiters angewiesen. Damit sie ungestört ihrer Arbeit nachgehen können, nehmen sie nur nach Bedarf an Meetings Teil.
Wir verstehen unseren Kunden als eine Erweiterung des Teams weil wir das Ziel des Projekts nur gemeinsam erreichen können. Optimaler Weise haben wir während des Projekts nicht nur mit den Auftraggebern (Projektleiter oder Manager) zu tun, sondern lernen auch die eigentlichen Anwender der neuen Software kennen. So teilt sie die Rolle des Stakeholders auf in Kunde, Anwender und Manager. Nach Bedarf nehmen die jeweiligen Stakeholder an Meetings teil um ihre Erfahrungen zu teilen.
Das Projekt startet mit der Analysephase. In einem oder mehreren gemeinsamen Terminen die idR. als Videomeetings stattfinden, lernt unser Team das Projekt kennen. Wenn es sich um ein größeres Projekt handelt, ist von jeder Rolle (Front-/Backendentwickler) nur ein Kollege dabei. Die Analysephase dient dazu, das Projektziel zu verstehen und einen Plan für die Entwicklung zu erstellen: das Backlog.
Im Backlog werden alle Aufgaben erfasst, die zur Erreichung des Projektziels abgearbeitet werden müssen. Diese Aufgaben können z.B. lauten "Design der Frontpage erstellen" oder "Ein Freunde-werben-Freunde System implementieren". Aus diesen Aufgaben ergibt sich dann ein Sprint: Ein Entwicklungszyklus der üblicherweise eine oder zwei Wochen dauert. Am Ende des Sprints werden die Ergebnisse diskutiert und der nächste Sprint (= die nächsten zu erledigenden Aufgaben) geplant. D.h. es sollte mindestens alle zwei Wochen ein Meeting zwischen Projektleiter und Kunden stattfinden.
Dieser Zyklus wiederholt sich über den Gesamten Entwicklungszeitraum. Dadrurch stellen wir sicher, dass wir immer an den für unseren Kunden wichtigsten Stellen der Software arbeiten.