Nach der Auftragserteilung beginnt die eigentliche Arbeit, deren Endergebnis allerdings stark von der Qualität der Vorarbeiten abhängt. Daneben ist das Team, das die Arbeiten durchführt, ein wesentliches Element für den gemeinen Erfolg: Unser Entwicklungsteam besteht aus erfahrenen und jungen agilen Entwicklern mit Begeisterung für ihren Beruf und großem Interesse am Verstehen unserer Kunden-Geschäftsfelder und ist daher ein Garant und ein Eckpfeiler dafür. Unsere Kunden bestätigen uns das immer wieder.
Ein weiteres Element ist die Umsetzungsmethodik, die in ihren Ausprägungen Waterfall Method und Agile Development Method durchaus unterschiedliche Philosophien bereithält. Die Praxis zeigt, dass es wenig sinnvoll ist, die Vor- und Nachteile beider Vorgehensweisen ohne den Bezug auf das konkrete Entwicklungsvorhaben zu diskutieren.
Entwicklung und Umsetzung
Konzept „Waterfall“
Bei der Wasserfallmethode wird ein vorliegendes ausspezifiziertes Lastenheft in eine Geschäftsanwendung (Business Application) umgesetzt. Dieses Verfahren kommt typischerweise bei solchen Projekten zum Einsatz, deren Zwecke und Anforderungen klar, transparent und nachvollziehbar präsentiert werden können. In der Regel liegen in diesem Falle bereits Vorgaben für die Bedienung (User Journey) vor, sodass die Umsetzung unspektakulär erfolgen kann. Am ehesten werden Aufgabenstellungen dieser Vorgehensweise unterworfen, bei denen der Ablauf klar ist und auf vorhandene Standards und Best Practices fußt. In dieser Art der Entwicklung ist es nicht möglich, die Benutzer bereits in die Umsetzung selbst einzubeziehen. Meist wurden sie bereits bei der Produktion des Pflichten- und Lastenhefts integriert.
Eine Einbindung gelingt erst, wenn im Entwicklungsprozess nach der Vorlage eines ersten Releases ein Feldtest integriert ist und die darin gewonnenen Erfahrungen in einem zweiten Projekt in das Produktionsrelease einfließen. Die Spezialisten der SYSTAG haben solche Projekte angeboten und erfolgreich zur Zufriedenheit der Kunden umgesetzt. Bei Bedarf binden wir für das Bedienungsdesign eine entsprechende Agentur ein oder arbeiten mit dem Partner der Wahl unseres Kunden zusammen.
Konzept „Agile Software Development“
Die Umsetzung erfolgt in dieser Methodik typischerweise in Sprints und umfasst die Erstellung und Programmierung von Formeln und Algorithmen, zeitlichen Abläufen, Datenmodellen und Datenhaltung. Agile Entwicklung führt zu einer Aufteilung des Entwicklungsprojekts in Sprints, die wiederum zur Folge haben, dass über regelmäßige Meetings zur Präsentation, Diskussion und Abnahme der Zwischenschritte eine engmaschige Interaktion mit dem Kunden und seinen Fachleuten erreicht wird. Im Angebot sind Change Punkte (auch: Story Points) enthalten, deren Volumen je nach Projektgröße und -zuschnitt variieren kann.
Durch die Einräumung von Story Points sind wesentliche Änderungen durch den Kunden im agilen Prozess möglich. Neue Features und starke Abweichungen von der Grobspezifikation werden mit Punkten bewertet, die ihren Komplexitätsgrad und den zeitlichen Implementierungsaufwand reflektieren. Verzögerungen im Projektplan werden so weitgehend vermieden, weil bereits von Anfang Puffer für die Changes auf Basis von Erfahrungswerten enthalten sind. Dadurch werden die Projekte transparenter und für den Kunden besser managebar.
Die Sprints, denen geplante Deliverables und Entwicklungsstände zugrunde liegen, erlauben neben der Variabilität zugleich ein Projektmanagement, das auf handfesten und nachprüfbaren Ergebnissen basiert. Nach jedem Sprint wird das Ergebnis ausgeliefert. Die bestehenden und evtl. neuen Anforderungen bilden die Basis für die nächsten Sprints. Ergebnis: Kunden-Feedback zum aktuellen Stand der Arbeit. Da die Abrechnung nach Sprints geführt wird, verringert sich das Kundenrisiko einer Fehlentwicklung – aus welchen Gründen auch immer diese entstanden sein sollten. Der Kunde kann nach jedem Sprint das Projekt anhalten. Ergebnis: eine neue Version der Anwendung. Die SYSTAG kann mit einem gewissen Stolz festhalten, dass es ein solches Ereignis bisher nicht gegeben hat. Alle agilen Projekte wurden zur vollsten Zufriedenheit unserer Kunden zum gemeinsamen Erfolg gebracht.
Im Kickoff Meeting werden die Rahmenbedingungen besprochen und die Mitwirkenden werden einander vorgestellt. Aufgaben und Termin für den ersten Sprint werden vereinbart. Bei diesem Termin sind die Benutzervertreter noch nicht anwesend.
Im ersten Sprint wird vom Projektteam der SYSTAG ein klickbarer Prototyp erarbeitet. Oberfläche, Farbe und Design werden aus den finalen Mockups übertragen. Einige wenige einfache Funktionen werden bereits implementiert. Dieser Prototyp wird in einer Session mit dem Kunden präsentiert, besprochen, Änderungswünsche werden notiert. Hier können bei Bedarf Benutzervertreter teilnehmen. Dadurch entsteht die Steuerungsmöglichkeit durch den Kunden. Im folgenden zweiten Sprint findet nach gleichem Verfahren eine Präsentation des endgültigen Prototyps vom Design her statt. Wieder kann der Kunde aktiv eingreifen und seine Vorschläge einbringen.
In den folgenden Sprints – das kann je nach Umfang der Anwendungsentwicklung einer oder auch mehrere sein – werden nach und nach die Funktionen gem. Angebot in die Anwendung integriert, präsentiert und abgenommen. Der Kunde entscheidet an jeder Stelle mit, die Endbenutzer können in den Prozess bis zur endgültigen Fertigstellung einbezogen werden. Es hat sich gezeigt, dass dadurch das Feedback bereits des ersten Releases der Software im Praxiseinsatz dadurch erheblich optimiert wird und die Benutzerzufriedenheit gleich auf einem sehr hohen Niveau liegt.
Nach Fertigstellung erfolgen Integration und Inbetriebnahme. Die Spezialisten der SYSTAG stehen den Kunden dabei professionell zur Seite.
KI und Robotik
Unser Web-DEV Team hat Erfahrungen in den Feldern KI und Robotik. Falls diese neuen Ansätze in einem Kundenvorhaben zur Anwendung kommen sollten, ist die SYSTAG bereits darauf vorbereitet.
Interne Qualitätssicherung
Auf interne Qualitätssicherung legen wir großen Wert. Regelmäßige Meetings zur Fortschrittssicherung und Klärung von Fragen gehören zur Strukturierung der Arbeiten als Selbstverständlichkeiten. Für interne Abnahmen werden Testfälle definiert und Abnahmekriterien vereinbart. Es versteht sich, dass die Programmierung der Komponenten durch die Experten in den jeweiligen Technologien übernommen wird. Der diskursive Arbeitsstil der SYSTAG Entwicklungsteams umfasst die Diskussion von Schnittstellen, Modellen und zentralen Konzepten im Team.
Daneben sorgen Coding Guidelines, Testing und Code Reviews sowie die Dokumentation der Arbeiten für Nachhaltigkeit in Entwicklung und Programmierqualität. Die kontinuierliche Weiterbildung ist uns besonders wichtig. Auch sie erfolgt arbeitsteilig, indem Teammitglieder Fragestellungen über Tutorials und Recherche sowie die Einarbeitung in neue Technologien übernehmen und dafür Zeitkontingente bereitgestellt sind und eine anschließende Wissensweitergabe im Team eingeplant wird. Schulungen und Trainings durch externe Wissensträger gehören natürlich ebenfalls dazu.