Agile Produktentwicklung

Kernpunkte:

  • Der agile, hoch iterative Entwicklungsprozess ist auf Geschwindigkeit und Durchsatz optimiert, um neue oder veränderte Funktionen schnell auf dem Markt bringen zu können.
  • Neuerungen werden ganzheitlich (von der Idee bzw. der Anforderung bis Anwendung im einsatzfähigen Produkt) entwickelt und in einem kontinuierlichen Strom an den Kunden geliefert.
  • Die durch den Kunden geforderte Funktion spielt eine übergeordnete Rolle im Produktentstehungsprozess. Die zu erfüllende Funktion wird kontinuierlich überprüft. Technische Änderungen werden ggfs. Automatisch abgeleitet.
  • Die Anwendung wird im Gesamtsystem beobachtet und das Feedback für die Weiterentwicklung analysiert.
  • Unterstützt wird der Prozess durch eine integrierte Toolkette die einen hohen Grad an Automation, ein extrem schnelles Feedback im Gesamtkontext und gemeinsames Arbeiten von verschiedenen Standorten ermöglicht. 
Welche Produktlebenszyklen, Entwicklungsphasen, -methoden, -tools unterstützen oder fördern Agilität?

Der agile, hoch iterative Entwicklungsprozess ist auf Geschwindigkeit, Durchsatz und Wert optimiert, um neue oder veränderte Funktionen schnell auf den Markt zu bringen. Zentrales Ziel ist die optimale Funktion für den Kunden in möglichst kurzer Entwicklungszeit zu erreichen. Innovationen werden ganzheitlich konzipiert: von der Idee oder der Anforderung bis zur Anwendung im Produkt.  Die Innovation wird in einem kontinuierlichen Strom an den Kunden geliefert. Neue Features werden während der Integration analysiert und im Gesamtkontext getestet. Die Analyseergebnisse werden als Feedback zur Verbesserung der weiteren Entwicklung verwendet. Der Lebenszyklus des Produktes wird an die Kundenbedürfnisse und das Marktgeschehen adaptiv angepasst. Neue Funktionen werden abhängig von Kundenwünschen und technischen Möglichkeiten geliefert. Die funktionsorientierte Entwicklung fordert Prozesse für die Funktionsabprüfung und Funktionsfreigabe. 

Wie sieht der eigentliche Entwicklungsprozess aus?

Der eigentliche Entwicklungsprozess ist von einer kontinuierlichen Feedback-Schleife geprägt. Die Hauptentwicklungsaufgaben werden in kleinere „ToDos“ aufgeteilt. Diese werden kontinuierlich „getrackt“.  Es werden möglichst häufige Rückkopplungsprozesse eingesetzt. Bei der Systementwicklung wird auf allen Ebenen und somit in allen physikalischen Domänen (Mechanik, Elektronik und Elektrik) ein zyklisches/iteratives Vorgehen verwendet. Die Planungsphasen werden möglichst kurz angelegt und kontinuierlich den Markbedürfnissen angepasst. Anforderungen an „Safety – Funktionale Sicherheit“, „Security-Datensicherheit“ und/oder Branchen-Spezifischen Regulatorien werden in diesem Prozess kontinuierlich parallel zu den Hauptaufgaben berücksichtigt. Im Vordergrund steht der Kunde und die zu erreichende Funktion. 

Welche agilen oder unterstützenden Methoden werden eingesetzt?

Agile Methoden sollen helfen die festgelegten/definierten agilen Prinzipien in der Praxis möglichst effizient umzusetzen. Aus grundsätzlichen Techniken für die Zielerreichung, wie beispielsweise „Task Boards, „Daily-Standup-Meetings“ und “User Stories“ haben sich Methoden entwickelt. Diese Methoden bedienen sich verschiedener Techniken und Werkzeuge. Methoden liefern die Gesamtstruktur um die agilen Prinzipien während der Entwicklung umzusetzen. Häufig in der Softwareentwicklung verwendete Methoden sind „Unified Process“, „Extreme Programming“, „Scrum“ oder auch „Kanban“.  Mittlerweile werden auch zusammengesetzte Methoden auf Unternehmensebene eingesetzt.

Welche Tools und Entwicklungsumgebungen unterstützen agiles, verteiltes Arbeiten?

Wie bereits weiter oben beschrieben werden Tools wie „User Stories“ oder „Task Boards“ verwendet um die Umsetzung während dem Entwicklungsprozess für alle beteiligten Entwickler möglichst einfach und strukturiert zu ermöglichen. Mittlerweile haben sich auch verschiedene Software-Pakete mit integrierten Toolsets am Markt durchgesetzt. Für die verschiedenen Phasen stehen entsprechende Werkzeuge bereit. Unterstützt wird das agile, verteilte Arbeiten durch sogenannte Co-Working-Areas oder auch gemeinsame Projektflächen. Diese Projektflächen können entweder in einem Unternehmen als ein physischer Raum existieren oder aber digital auf Plattformen eingerichtet sein. Auch Entwicklungsprojekte, welche über verschiedene Standorte in verschiedenen Ländern organisiert sind, können auf diese Art und Weise miteinander agile durchgeführt werden. Wichtig ist hierbei, dass alle Projektbeteiligten zu jederzeit Zugang zur „virtuellen/physischen“ Projektfläche haben.