Agile Produktentwicklung

Fotolia | Massimo Cavallo

Der Einsatz neuer Technologien verändert auch die Arbeitsweise in den Projekten und damit auch die Zusammenarbeit mit dem Kunden. Heute spielen Methoden wie das Wasserfall bzw. V-Modell nicht mehr in der ersten Liga des Projektsettings mit.

Heutzutage wird agil gearbeitet. Agilität basiert auf der Arbeit in kleinen Intervallen unter starker Einbeziehung verschiedener gruppendynamischer Prozesse und unter enger Begleitung durch fachliche nicht-technische Stakeholder. Hierbei haben sich mehrere Vorgehensmodelle wie Scrum oder Kanban entwickelt.

Agile Vorgehensmodelle wie Scrum oder Kanban eignen sich besonders gut, um User in die Entwicklung einzubinden und die wichtigsten Bereiche der Software von Iteration zu Iteration immer besser und nutzerfreundlicher zu gestalten. Am Ende einer jeden Iteration steht ein fertiges Produkt, das potenziell auslieferungsfähig ist.

Das ist dann vorteilhaft, wenn es in die ganz heiße Phase vor dem Go-Live geht. Wurde konsequent entsprechend den Prioritäten gearbeitet, sind die elementaren Bereiche der Anwendung schon seit einigen Iterationen lauffähig in der Software vorhanden.

Bedeutung für das Entwicklungs-Team

Moderne Software-Entwicklung ist ein ausgesprochen dynamischer und auf menschlicher Interaktion basierender Vorgang. Als Dienstleister in der Software-Entwicklung bedeutet das, ein Projekt mit einem Team am Standort des Kunden durchzuführen. Vorgehensmodelle wie Scrum favorisiert die Co-Location, also die räumliche Nähe aller Teammitglieder. Darauf bestehen sehr viele Kunden.

Das Team steht bei der agilen Produktentwicklung im Vordergrund. Enge, interdisziplinäre Zusammenarbeit ist gefordert. Agile Methoden fördern den Austausch, es wird nicht von oben herab diktiert, die Mitarbeit aller Beteiligten ist ausdrücklich erwünscht. Das schweißt das Team noch stärker zusammen. Dank agiler Entwicklungsmethoden wird aus einem Kompromiss aus Kosten, Zeit und Qualität ein Kompromiss aus Kosten, Zeit und Funktionalität.

Agile Vorgehensweisen setzen auf ein verantwortungsbewusstes Team, das seine Aufgaben kennt und selbstorganisiert arbeitet. Ein klassischer Projektleiter existiert nicht mehr. Daher werden Aspekte wie die tägliche Arbeitszeit oder die Vereinbarung über Urlaube innerhalb des Teams in direkter Absprache mit dem Kunden vorgenommen.

Der agile Ansatz akzeptiert die komplexe Natur der Innovationen als gegeben. Er teilt die eine Management-Rolle (Projektleitung) in vier Rollen auf, die von vier verschiedenen Personen wahrgenommen werden:

Führungskraft, Product Owner, Scrum Master und Development Team.

  • Für die Personalentwicklung und das Weiterentwickeln der Rahmenbedingungen hin zu einer agilen Organisation ist die Führungskraft in der Linie verantwortlich – die Führungskraft ist der „servant leader“ für mehrere Scrum Teams und deren direkte Umgebung.
  • Der Product Owner ist für den „Wow-Effekt“ und damit die Attraktivität des entstehenden Produktes verantwortlich.
  • Die Wirtschaftlichkeit liegt in der Verantwortung des Scrum Masters, der als „servant leader“ innerhalb des Scrum Teams die notwendigen Veränderungen vorantreibt, um die Produktivität nachhaltig zu steigern bzw. auf einem hohen Niveau zu halten.
  • Die funktionale Zuverlässigkeit verantwortet das Development Team.

Die Beschreibung dieser Rollen ist im Scrum Guide hinterlegt, der unter www.scrumguides.org frei verfügbar ist.

Herausforderung für das klassische Führungsverständnis

Diese Umstellung stellt das klassische Führungsverständnis vor eine große Herausforderung:

Statt einer klaren Hierarchie der Verantwortlichkeit stehen vier voneinander abhängige verantwortliche Personen in einem ausbalancierten Gleichgewicht miteinander in Beziehung. Das Kontrollinstrument „plan-driven“ verliert in der agilen Welt seinen Sinn und wird durch einen „value-driven“ Ansatz ersetzt.

Anstelle eines in mehreren Jahresplanungsrunden erarbeiteten und auf jeden Mitarbeiter heruntergebrochenen Zielvereinbarungs-Systems rückt nun ein gemeinsames Ziel für alle Mitarbeiter und Führungskräfte in den Vordergrund.

 

Wettbewerbsvorteil
Es werden stets diejenigen Elemente des Systems zuerst fertig gestellt, die dem Kunden am wichtigsten sind – die also den höchsten Geschäftswert erzielen. So können große Teile der neuen Software schon lange vor Ende des Gesamtprojektes produktiv eingesetzt werden.

Qualitätsarbeit

Der Aufwand wird von den Entwicklern selbst eingeschätzt. Durch das zyklische Vorgehen können immer wieder individuelle Messungen für das jeweilige Projekt vorgenommen werden, so dass jeder im Entwicklungsteam direkt aus seinen eigenen Erfahrungen lernen kann und stets eine realistische Vorstellung der tatsächlichen Entwicklungsgeschwindigkeit besteht.

Intensive Kommunikation mit dem Kunden: Flexibilität und kürzere Entwicklungszeiten

Die Kommunikation mit dem Kunden ist beim agilen Arbeiten stets sehr eng und im stetigen Austausch. Diese direkte Kommunikation führt nicht nur dazu, dass die Entwickler besser verstehen, was die Anwender tatsächlich für eine Software benötigen - gleichzeitig wächst auch das Verständnis der Anwender, wenn eine Schätzung von den Entwicklern korrigiert werden muss.

Bei einem agilen Projekt gibt es keine Pflichtenhefte. Während des Projektverlaufs können jederzeit neue oder geänderte Anforderungen definiert werden, z.B. weil festgestellt wurde, dass die Software andere Merkmale haben muss als bisher angenommen. Durch dieses iterative Vorgehen können Erfahrungen aus dem laufenden Projekt in den weiteren Entwicklungsprozess mit einfließen. So wird nur das entwickelt, was tatsächlich von Nutzen für den Anwender ist. 

Effiziente Kommunikation zwischen Entwickler und Anwender als auch im Team untereinander ist bei agilen Entwicklungen mindestens so bedeutend wie die eingesetzten Technologien. Deswegen arbeiten die Entwickler in agilen Projekten grundsätzlich beim Kunden vor Ort und stehen im ständigen Kontakt mit ihm.

Details können so schnell geklärt und Missverständnisse sofort beseitigt werden. Auf der anderen Seite kann sich der Kunde jederzeit den aktuellen Systemzustand vorführen lassen, er behält so stets den Überblick und die Kontrolle über das Projekt.

Downloads