Agil bezeichnet Ansätze im Software- und Hardware Engineering, die darauf abzielen, die Transparenz und Veränderungsgeschwindigkeit zu erhöhen und zu einem schnelleren Einsatz des entwickelten Systems zu führen. Das Ziel ist es, Risiken und Fehlentwicklungen im Entwicklungsprozess zu minimieren. Dabei wird versucht, die Entwurfsphase auf ein Mindestmass zu reduzieren und im Entwicklungsprozess so früh wie möglich zu ausführbarer Software oder Hardware zu gelangen.
Im Fokus steht die regelmässige Abstimmung der entwickelten Produkte mit den Kunden in kurzen Abständen. Diese enge Zusammenarbeit ermöglicht es, flexibel auf Kundenwünsche einzugehen und somit die Kundenzufriedenheit insgesamt zu erhöhen. Agile Methoden wie Scrum, Kanban und Extreme Programming (XP) sind gängige Frameworks, die die Selbstorganisation von Teams, regelmässige Anpassung an Feedback und die schnelle Bereitstellung von Wertschöpfung betonen.
Agiles Software Engineering ist eine Methode, die Flexibilität, Zusammenarbeit und Effizienz in der Softwareentwicklung betont. Der Fokus liegt auf der kontinuierlichen und frühzeitigen Bereitstellung wertvoller Software für Kunden. Diese Methodik begrüsst auch späte Änderungen in den Anforderungen und erfordert eine kulturelle Veränderung, um die saubere Lieferung einzelner Softwareteile zu priorisieren. Die iterative und inkrementelle Vorgehensweise betont die Bedeutung der schnellen und häufigen Bereitstellung eines funktionierenden Produkts. Eine enge Zusammenarbeit zwischen dem Entwicklungsteam und dem Kunden gewährleistet, dass das Produkt seinen Bedürfnissen und Erwartungen entspricht.
Agiles Hardware Engineering bezieht sich auf die Anwendung agiler Prinzipien und Methoden bei der Entwicklung von nicht-softwarebasierten, physischen oder hardware-basierten Produkten. Es zielt darauf ab, die Vorteile agiler Methoden auf die Hardwareentwicklung zu übertragen, um Teams zu ermöglichen, Produkte schneller zu entwickeln und stärker auf den Kundennutzen zu fokussieren. Das Modified Agile for Hardware Development (MAHD) Framework, das 2016 eingeführt wurde, hat zahlreichen Teams geholfen, agile Methoden auf die Hardwareentwicklung anzuwenden und nachgewiesene Vorteile für Projekte von inkrementellen Produktverbesserungen bis hin zu komplexen innovativen Lösungen zu bieten. Während der traditionelle agile Ansatz häufiger mit der Softwareentwicklung in Verbindung gebracht wird, kann Agile auch in der Entwicklung von Hardware Produkten, einschliesslich Systemen, die Hardware und (eingebettete) Software kombinieren, eingesetzt werden. Dieser Ansatz kann zu schnellen Lern- und Entscheidungszyklen führen, was letztendlich die Time-to-Market, Qualitätsprobleme und Komplexitäts Fragen verringert und gleichzeitig die Produktivität, Vorhersagbarkeit und Mitarbeiterzufriedenheit erhöht.
Flexibilität und Iterative Entwicklung: Agile Methoden, wie Scrum, legen einen starken Fokus auf iterative Entwicklung und die Fähigkeit, sich schnell an sich ändernde Anforderungen anzupassen. Im Gegensatz zu traditionellen, sequenziellen Entwicklungsmethoden wie dem Wasserfallmodell erlauben agile Methoden die Anpassung an die sich entwickelnde Natur der Produktentwicklung.
Zusammenarbeit und Kommunikation: Agile Methodologien fördern kollaborative, interdisziplinäre Teams und ständige Kommunikation zwischen den Teammitgliedern. Dies steht im Gegensatz zu nicht-agilen Ansätzen, bei denen die Zusammenarbeit aufgrund der linearen Natur des Entwicklungsprozesses eingeschränkt sein kann.
Kultureller Wandel und Fokus auf den Kunden: Agiles Software und Hardware Engineering erfordern einen kulturellen Wandel innerhalb von Organisationen und legen einen starken Schwerpunkt darauf, Wert für den Kunden durch frühzeitige und kontinuierliche Bereitstellung wertvoller Software oder Hardware zu schaffen. Dieser kundenorientierte Ansatz unterscheidet sich deutlich von traditionellen Methoden.
Anpassungsfähigkeit und Effizienz: Agile Methoden priorisieren Anpassungsfähigkeit und Effizienz, mit dem Ziel, qualitativ hochwertige Produkte in einer sich ständig verändernden Landschaft zu liefern. Dies wird durch die Konzentration auf einzelne Teile der Software oder Hardware, kontinuierliches Testen und die Möglichkeit zur Anpassung erreicht.
Zusammenfassend zeichnen sich agiles Software und Hardware Engineering durch ihre Betonung von Flexibilität, Zusammenarbeit, iterative Entwicklung und einen kundenorientierten Ansatz aus, was es von traditionellen, nicht-agilen Methoden unterscheidet.