Eine Frage der Methode – Software-Entwicklung im Wandel

Neue Technologien, wie Cloud, Big Data oder Mobile, verbreiten sich in allen Lebens- und Arbeitsbereichen. Für die Softwareentwicklung bringen sie neben einer Vielfalt an neuen Möglichkeiten auch eine neue Qualität der Aufgaben und Herausforderungen mit sich. Daher entwickelt sich nicht nur die Software selbst mit rasender Geschwindigkeit weiter, wird komplexer, vernetzt sich mit anderer Software und steuert Systeme „intelligent“, sondern es verändern sich vor allen Dingen die Methoden ihrer Entwicklung. Effizienz und Schnelligkeit sind hier die Stichworte. – Eine notwendige Konsequenz aus den wachsenden Anforderungen an das Entwicklungsergebnis.

Denn am Anfang eines Software-Projektes steht immer die Anforderung – beispielsweise die Bedürfnisse eines Kunden. Sie werden über die Anforderungsanalyse bestimmt und festgehalten. Für den weiteren Ablauf haben sich im Laufe der vergangenen Jahrzehnte eine Vielzahl an Prozess- bzw. Vorgehensmodellen entwickelt, nach denen die Programmierung organisiert werden kann.

Und hier wird ein Wandel deutlich, der mit den rasanten Entwicklungen in der IT einhergeht: Waren bis vor 10-15 Jahren klassische Methoden, wie beispielsweise das so genannte Wasserfallmodell, in der Entwicklung vorherrschend, so setzten sich heute verstärkt die so genannten „agilen“ Methoden durch, die unter dem Aspekt der extrem kurzen Lebenszyklen der modernen IT-Produkte ein besseres Ergebnis liefern. Aber warum ist das so?

Moderne IT erfordert moderne Software-Entwicklung
Wie der Name schon andeutet, teilt das Wasserfallmodell die einzelnen Entwicklungsschritte in Phasen auf, die linear hintereinandergeschaltet sind. Das Einhalten der Reihenfolge der einzelnen Prozessphasen ist entscheidend, da die Ergebnisse einer Phase jeweils die Vorgabe für die folgende Phase liefern. Die vorherige Phase muss also erst abgeschlossen werden, bevor die nächste beginnen kann. Zu Projektbeginn definierte Anforderungen lassen sich während des Prozesses kaum ändern, es sei denn, man springt zurück in vorherige Phasen und verwirft die bisherige Arbeit. Die Kosten solcher Änderungen können bei sehr weit fortgeschrittenen Projekten hoch sein.

Das bedeutet in der Praxis: Lange Vorlaufzeiten bis die Entwickler das fertige Produkt abliefern. Der Kunde ist nur in der Anforderungsphase eingebunden und sieht das Ergebnis im Extremfall erst am Ende des Projektes. Doch das kann schon zu spät sein. Denn natürlich ist die Akzeptanz des Ergebnisses durch den Anwender der entscheidende Faktor für den Erfolg. Eine Entwicklung, die nicht das kann, was ein Unternehmen benötigt, hat keinen Wert.

Darüber hinaus sind Projekte oft zu komplex, um sie bereits zu Beginn in ein festes, unumstößliches Konzept zu gießen, zumal sich die Anforderungen in dieser Phase nur selten vollständig überblicken lassen oder sogar unklar sind. Daher kommen im Laufe eines Projektes häufig neue Anforderungen hinzu.

Nicht-lineare Lösungen für komplexe Aufgabenstellungen
Aus der Kritik an dem eher langsamen und schwerfälligen Wasserfallmodell ist Anfang der 2000er Jahre mit den agilen Entwicklungsmethoden eine Art Gegenbewegung entstanden. Auch hier lässt sich aus der Bezeichnung auf die Methode schließen: Agil bedeutet beweglich und flink. Und tatsächlich ist es das Ziel agiler Softwareentwicklung, den Entwicklungsprozess flexibler und schlanker zu gestalten. Hierzu gehören beispielsweise die Vorgehensweisen des Extreme Programming, von Scrum oder Kanban.

Bei den agilen Modellen löst man sich von einer festen Abfolge von Prozessschritten. Das Produkt wird nicht im Voraus bis ins Detail geplant, sondern die Entwicklung verläuft zyklisch in mehreren kurzen Planungs- und Entwicklungsphasen und häufigen Rückkopplungen zwischen Entwicklern, Team und Kunden. Der Auftraggeber bzw. Anwender kann zu jedem Zeitpunkt des Projektes Einfluss nehmen. Für Projekte, deren Anforderungen zu Beginn noch unklar sind, ist diese Rückkopplung besonders wichtig. Die agilen Methoden sind flexibler, liefern schnellere Ergebnisse und durch nachhaltigen Code eine bessere Softwarearchitektur. Dadurch können sie besser skaliert und gewartet werden. Die Werte der agilen Softwareentwicklung wurden im „Agilen Manifest“ dargelegt.

In Scrum beispielsweise organisieren sich die Entwickler-Teams selbst. Basis ist ein Rollenmodell sowie eine Reihe von Ritualen, die die Teamorganisation unterstützen (z. B. „Daily Scrum“). Die Methode basiert auf der Grundannahme, dass Projekte aufgrund ihrer Komplexität ohnehin nicht von Anfang an detailliert planbar sind. Daher wird nur ein grober Rahmen vereinbart, in dem sich das Team bewegt.

Agile Methoden in der Praxis
Auch Sander & Doll setzt seit einiger Zeit auf agile Methoden, da die bisherigen linearen Vorgehensweisen dem wachsenden Unternehmen nicht mehr die notwendige Flexibilität ermöglichten. Die ausschließlich auf die eigenen Aufgaben fokussierte Vorgehensweise der Entwickler brachte einen großen Betreuungsaufwand und ein aufwändiges Mikromanagement mit sich. Darüber hinaus kam auch bei Sander & Doll das zuvor formulierte Problem zum Tragen, dass ein vorab zementierter Plan in der Regel nicht einzuhalten ist.

Es wurden drei spezialisierte Teams gebildet, deren erweiterter Fokus auf Teamaufgaben den Informationsaustauch erheblich verbessert. Im morgendlichen 15-minütigen Daily Scrum tauschen sich Entwickler und Tester über die letzten Ergebnisse und Tages-Ziele aus. Ein weiterer Vorteil der Teams: Jedes einzelne Mitglied besitzt durch die intensive Kommunikation das Know-how zur Umsetzung aller Teamaufgaben.

Die Arbeit innerhalb von zweiwöchigen Zyklen (genannt „Sprints“) macht den Entwicklungsprozess nicht nur besonders flexibel, da sich geänderte Anforderungen im Verlauf eines Zyklus direkt in den Entwicklungsprozess integrieren lassen. Hinzu kommt auch, dass nach den zwei Wochen ein vollständig getestetes, sogenanntes „Produkt-Inkrement“ fertiggestellt wird. Zusätzlich verbessert der Prozess des „Nightly Build“ die Ergebnisse erheblich, da nicht nur allen Teammitgliedern jeden Tag ein aktueller Entwicklungsstand des Projektes zur Verfügung steht, sondern allen Projektbeteiligten eine testfähige Version. Durch die definierten kurzen Sprints ermöglicht Scrum darüber hinaus eine gute Planbarkeit und damit eine sichere Kostenkontrolle.

Agil gleich erfolgreich?
Immer mehr Unternehmen nutzen agile Methoden, aber nur einigen von ihnen gelingt es, die neuen Möglichkeiten annähernd so eindrucksvoll und innovativ für sich zu nutzen, wie beispielsweise Google, Facebook oder Amazon es tun. Diese sind besonders „agil“ – d. h. mit Ihren Entwicklungen schnell am Markt und immer nah am Kunden. Liegt es allein an der Wahl der Entwicklungsmethode? Sicherlich nicht ausschließlich. – Diese Unternehmen verfügen darüber hinaus über eine extrem leistungsfähige IT, die den Erfordernissen komplexer webbasierter Anwendungen in höchstem Maße gerecht wird. Sie können damit wesentlich schneller neue Produkte und Dienstleistungen direkt am Kunden erproben, die Resonanz messen und anschließend weiter optimieren. Und die Kunden finden die kurzen Zyklen zwischen den Produkt-Versionen in der Regel gut, sie wollen möglichst schnell von neuen Features profitieren.

Karola Richter

Karola Richter

Karola Richter ist bei Sander & Doll für die Unternehmenskommunikation zuständig und hat mehr als 10 Jahre Erfahrung in der IT-Branche.