SCRUM

Agile Software-Entwicklung und SCRUM bei TTC Informatik

TTC Informatik GmbH hat in 2012 die Methoden der Software-Entwicklung umgestellt und Konzepte der agilen Software-Entwicklung und Teile des SCRUM-Konzeptes eingeführt. 

Seit Unternehmensgründung 1997 haben Rückmeldungen unserer Anwender und Kunden einen hohen Stellenwert. Bei der agilen Software-Entwicklung geht es auch um möglichst zahlreiche Rückkopplungsprozesse und zyklisches (iteratives) Vorgehen auf allen Ebenen: bei der Programmierung, im Team und beim Management.

In der klassischen Vorgehensweise zur Software-Entwicklung wird ein neues System oder eine neue Funktion im Voraus in allen Einzelheiten genau geplant und dann in einem einzigen langen Durchgang entwickelt. Diese Vorgehensweise ist im Markt der Wärmebehandlungsbranche nicht anwendbar, denn schließlich können sich die Anforderungen während der Projektlaufzeit noch ändern, oft sind sie zu Projektbeginn noch gar nicht vollständig bekannt und in den allermeisten Fällen verfügt der Anwender nicht über die Kapazität und / oder die Zeit die Anforderungen vollumfänglich zu definieren. 

Stattdessen wechseln sich beim agilen Vorgehen kurze Planungs- und Entwicklungsphasen ab. Nachdem eine erste Vorstellung für das neue Produkt oder den neuen Programmbereich entworfen wurde, also die Ziele festgelegt und bewertet wurden, die mit der Software-Entwicklung erreicht werden sollen, wird ein Plan für eine erste Version ausgearbeitet, und das Programmierteam beginnt die Entwicklung. Im Laufe der Arbeiten werden notwendige Anpassungen vorgenommen. 

Sie benötigen Beratung oder Support?
Gerne für Sie per Telefon, E-Mail, Servicedesk erreichbar...

Kontakt aufnehmen

Vorteil

Mit jeder neuen Software, mit jedem neuen Programmteil sollen Geschäftsziele erreicht oder Arbeitsabläufe abgebildet werden, die in der Regel vom Management / Kunden / Anwender vorgegeben werden. Die langjährige Praxis lehrt uns, die Geschäftsziele können oftmals nicht präzise definiert werden. Mehr noch, häufig erkennt der Anwender in seinem Arbeitsumfeld die Notwendigkeit einer (Ver-)änderung nicht.  Die so erkannten Geschäftsziele werden in (Software-)Anforderungen überführt, denen dann wiederum das Ergebnis der Programmierarbeiten entsprechen soll. Es findet also ein mehrfacher Übersetzungsprozess statt: von den Anwendern zu den Entwicklern, von den Geschäftszielen zu den Anforderungen und von den Anforderungen zur programmierten Software. Eben diese Übersetzungsprozesse verursachen erhebliche Anforderungen in der Softwareentwicklung, denn es ist weder trivial, für ein Geschäftsziel oder einen bestimmten Arbeitsablauf präsize Anforderungen zu definieren, noch vorgegebene Anforderungen in eine neue Software zu überführen. Eine nicht zu unterschätzende Aufgabe ist die Überprüfung der Ergebnisse dieser Übersetzungsprozesse und die Festlegung, wann diese Überprüfung idealerweise erfolgen sollte. 

Agile Methodik

Die agile Software-Methodik sieht ein anderes System vor. Dabei wird eine neue Funktion möglichst früh eingesetzt und außerhalb der Laborumgebung, also im Praxisumfeld, gegen die angestrebten Geschäftsziele und Arbeitsabläufe geprüft.

Eine Überprüfung am Projektende (wie in der konventionellen Software-Entwicklung) führt im Falle von Korrekturen und Umstellungen zu erheblichem Mehraufwand. Im ungünstigsten Fall sind Änderungen gänzlich unmöglich.

Bei einer frühzeitigen Erkennung kann bei Fehlentwicklungen noch während der Projektlaufzeit eingegriffen und entsprechend gegengesteuert werden. Der Kunde / Anwender kann auf diese Art und Weise noch während der Entwicklung das erreichte Endergebnis positiv beeinflussen. Kerngedanke also ist es, eine Aufgabenstellung vor der eigentlichen Programmierung nicht vollständig durchzuplanen, sondern die Programmentwicklung iterativ in kurzen Feedback-Schleifen, im SCRUM Sprachgebrauch sogenannten "Sprints",  auszuführen. Zum einen ermöglicht dies, in regelmäßigen Intervallen gemeinsam mit dem Anwender den aktuellen Stand der Programmentwicklung zu überprüfen, um ggf. steuerend eingreifen zu können. Zum anderen können die beteiligten Projektmitarbeiter durch die iterative Vorgehensweise auf Änderungen oder Probleme kurzfristig reagieren. 

Konkrete Anwendung

Regelmäßige Scrum - MeetingsIm täglichen Standup (Daily Scrum) berichten alle Teammitglieder vom aktuellen Stand der Arbeiten, Problemen und dem Plan für den aktuellen Tag. Darüber hinaus werden Sprint-Plannings und Sprint-Retrospektiven durchgeführt. Bei ersterem planen Teammitglieder den möglichen Umfang eines Entwicklungszyklus, ermöglichen so verläßliche Terminaussagen. Bei letzterem werden Erkenntnisse des vergangenen Sprints nutzbringend ausgewertet. 

Scrum-Artefakte sind nützliche Repräsentationen von Teilergebnissen/Arbeiten, um Transparenz und Möglichkeit zur Überprüfung und Anpassung zu schaffen. Scrum-Artefakte bei TTC sind z.B. das Product-Backlog und das Sprint-Backlog, welche umgangssprachlich als eine Liste von Programmieraufgaben verstanden werden können

Einteilung von Rollen. Die Einhaltung der Regeln, die Kontrolle über die Produktvision (der rote Faden der Entwicklung), das Entwicklungsteam, die Auftraggeber, der Anwender und das Management werden in Rollen eingeteilt und mit besonderen Aufgaben und Verantwortungen betraut.