Agilität in der Softwareentwicklung? Ein alter Hut und in den meisten Organisationen Standard. Bei der Hardwareentwicklung tut sich eine andere Welt auf. „Geht das überhaupt und wenn ja, wie?“ ist die Frage, die sich viele Organisationen stellen, und fürchten sich regelrecht vor Agilität in der Hardwareentwicklung. Dabei könnte es doch so schön und einfach sein, wenn das gesamte System, bestehend aus Hard- und Software, agil entwickelt wird.
Das Zauberwort lautet: Agiles Systems Engineering. Sie lesen richtig. Agilität und Systems Engineering schließen sich nicht aus. Ganz im Gegenteil. Agilität und Systems Engineering ergänzen sich sogar ganz hervorragend und es gibt eine Menge, was beide Seiten voneinander lernen können. Vor allem die Hardwareentwicklung und die agile Softwareentwicklung lassen sich mit agilem Systems Engineering wunderbar miteinander in Einklang bringen.
Zwei der aus unserer Erfahrung heraus wichtigsten Good Practices, um Hardwareentwicklung und Agilität miteinander vereinen zu können, sind zum einen die systemische Betrachtung des Gesamtprodukts mit all seinen Bestandteilen (Hard- und Software) und darauf aufbauend die Modularisierung der Systemarchitektur mit „Loose Coupling“ und stabilen Schnittstellen und zum anderen das Paradigma „Separation of Concerns“, also die klare Trennung der Systembestandteile gemäß Ihres Zwecks.
Die konsequente Anwendung dieser beiden Good Practices ermöglicht es Ihnen, die Einzelteile Ihres Produktes weitestgehend unabhängig voneinander (weiter) zu entwickeln. Solange die Schnittstellen stabil bleiben, ist die Integration des Gesamtprodukts gewährleistet. Und inwieweit sich das Bauteil zwischen den Schnittstellen ändert, hat zunächst wenig bis keine Auswirkung auf die anderen Bestandteile Ihres Produktes/Ihrer Hardware. Somit haben Sie die Möglichkeit, die Einzelteile Ihrer Hardware in kurzen Iterationen weiterzuentwickeln und zu integrieren. Je stärker Abhängigkeiten in Ihrer Architektur sind, also je höher die Kopplung Ihrer Produktbestandteile ist, desto länger sind in der Regel die Entwicklungszyklen aufgrund der erhöhten Aufwände für die Integration.
Wichtig ist dabei vor allem, dass Sie Ihre Komponenten sowie die dazugehörigen Schnittstellen klar definieren, voneinander abgrenzen und die Anforderungen an die Schnittstellen vollständig definieren. Ein weiterer essenzieller Punkt ist, dass die Architektur Ihre Anforderungen erfüllt (und nicht mehr) und Sie Ihre Constraints/Randbedingungen kennen.
Möchten Sie mehr über agiles Systems Engineering und Good Practices aus der agilen Hardwareentwicklung erfahren? Melden Sie sich zu unserem brandneuen Training „Agiles Systems Engineering“ an – die ersten Termine stehen bereits fest – oder schreiben Sie uns eine E-Mail an vertrieb@sophist.de. Oder hinterlassen Sie uns gerne einen Kommentar zu diesem Blogbeitrag.
PS: Wir waren mit diesem Thema („Als ob Agilität in der Hardware hart wär‘!“) als Vortrag auf der diesjährigen Agile World Konferenz mit von der Partie.
Top Zusammenfassung, besten Dank;)
VG
Ruben