Experience Embedded

Professionelle Schulungen, Beratung und Projektunterstützung

Vorsprung durch Qualität

Autoren: Sebastian Rummler, Dr. Daniel Simon, Axivion GmbH

Beitrag - Embedded Software Engineering Kongress 2015

 

Dieser Beitrag beantwortet die Frage, wie deutsche und europäische Unternehmen langfristig im globalen Wettbewerb mit ihren Produkten bestehen können. Es ist von folgenden Fakten auszugehen:

  1. Die Differenzierung kann nicht über den Preis, sondern muss über Innovation und Qualität erfolgen.
  2. Ohne Software geht heute in der Produktentwicklung nichts mehr.
  3. Die Produktqualität lässt sich symbolisch in eine einfache Formel fassen: Produktqualität = Hardwarequalität mal Softwarequalität. In anderen Worten: Softwarequalität wirkt sich direkt auf die Gesamtqualität des Produkts aus.


Die Konsequenz daraus ist, dass egal ob man Software nur als "notwendiges Übel" oder als Innovationstreiber begreift, man nicht darum herumkommt, die Softwareentwicklung "richtig" anzugehen. Dies gelingt nur, wenn wir die Stärken der bewährten und unübertroffenen Ingenieurdisziplin in Deutschland und Europa nutzen und auf die Entwicklung von Embedded-Software übertragen. Stand heute werden deren bewährte Prinzipien in der (Embedded) Software-Entwicklung noch nicht adäquat eingesetzt. Doch was macht erfolgreiches Software Engineering aus?

Im Folgenden zeigt dieser Beitrag einige Wege auf, wie Software Engineering als Ingenieurdisziplin in der Praxis umgesetzt werden kann und damit zum Gesamtprodukterfolg beiträgt.

Ziele und Herausforderungen

Das Ziel, innovative und wettbewerbsfähige Produkte auf dem globalen Markt zu platzieren und die Marktposition zu verteidigen, kann für Unternehmen aus Hochlohnländern nur durch Differenzierung über Qualität und nicht über den Preis erfolgen. Global gesehen: "Billig" können andere besser, sei es durch niedrigere Lohnkosten oder durch Nachbau und Imitation von hochwertigen Produkten anderer Hersteller. Die ausschlaggebenden Eigenschaften – die auch nur schwer zu kopieren sind – sind Innovationen und hohe Innovationsgeschwindigkeit gepaart mit Zuverlässigkeit, Flexibilität und Anpassbarkeit an Kundenwünsche.

Wie können also Unternehmen auf Dauer im globalen Wettbewerb bestehen? Die Lösung liegt zunächst darin, die Stärken des Standorts Deutschland und Europa zu nutzen. Hierzu zählt in allen wichtigen Branchen das Anknüpfen an die bewährten und unübertroffenen Ingenieursleistungen, die unsere Position als eine der weltweit führenden Industrienationen ausmachen. Die herausragenden Ingenieursleistungen waren und sind ein entscheidendes Alleinstellungsmerkmal für europäische und ganz besonders für deutsche Unternehmen. Ebenso wie in der Entwicklung von Maschinen und Hardware sind ingenieursmäßige Vorgehensweisen bei der Entwicklung von Software mehr als nur wünschenswert – zum Bestehen auf den globalisierten Märkten sind sie schlicht lebensnotwendig. Gerade aber in der Praxis der Software-Entwicklung in Branchen mit starken Ingenieurshintergrund werden die bewährten Methoden noch nicht adäquat auf die Software-Entwicklung übertragen. Im Gegenteil, es ist oft in derartigen Betrieben so, dass das Thema Software Engineering oft noch ein Schattendasein führt.

Der Weg bei der Entwicklung von Systemen geht ganz klar in eine Richtung: Immer mehr Software hält Einzug in klassische "Hardware"-Produkte – ohne einen gewissen Anteil an "weicher" Steuerung kommt eigentlich niemand mehr aus. Dass Software hier nicht nur das notwendige Übel ist, sondern vielmehr auch neue Möglichkeiten eröffnet, haben die ersten Hersteller bereits erkannt. Die Produktqualität lässt sich symbolisch in eine einfache Formel fassen: Produkt-Qualität = Hardware-Qualität mal Software-Qualität. In anderen Worten: Software-Qualität wirkt sich direkt auf die Gesamt-Qualität des Produkts aus. Die Sicht auf die Gesamt-Qualität eines Produkts lässt sich mit Hilfe von Abb. 1 (siehe PDF) veranschaulichen.

Hierbei werden Anforderungen an das Produkt (sowohl explizite als auch implizite Erwartungen und zusätzlich unbekannte, künftige Anforderungen) den Eigenschaften gegenübergestellt. Die Eigenschaften eines typischen Produkts umfassen dabei sowohl Hardware- als auch Software-Komponenten. Für die Qualitätsbewertung spielen dabei langfristig die bekannten und auch die "unbekannten" Eigenschaften eines Produkts eine Rolle.

Lösungsansätze: Systematik, Disziplin und Messbarkeit!

Konsequenterweise muss für die Zukunft der Begriff "Software Engineering" ernst genommen werden. Was macht Engineering (auch in der Software-Entwicklung) aus? Es sind vor allem Systematik, Disziplin und Messbarkeit!

Systematik
Die Software-Entwicklung muss mit ingenieursmäßigen Vorgaben ganz klar den Prinzipien Zuverlässigkeit, Reproduzierbarkeit, Lernbarkeit, Rationalität und Anwendbarkeit folgen. Vielfach sind Lösungsansätze zur Unterstützung dieser Prinzipien bereits bekannt und können als Stand der Technik in auch in der Entwicklung von Embedded-Software eingesetzt werden.

Die hier zu nennenden Schlagworte sind Variantenmanagement mittels Software-Produktlinien, Einsatz von Modellen wie Software-Architekturen als Mittel zur Planung und Steuerung, Identifikation und Nutzung wiederverwendbarer Komponenten, Plattformen, Frameworks.

Gerade im Ingenieursbereich ist die Verwendung von Standards anerkannt und üblich. Entsprechende Vorgaben sind mittlerweile auch im Softwarebereich vorhanden (z.B. Misra C/C++, Normen wie die ISO 26262 oder 62304, Best Practise-Kataloge...).

Disziplin
Für viele repetitive und langweilige Aufgaben gibt es geeignete Werkzeuge, die maschinell erledigen, was den menschlichen Intellekt der Entwickler von innovativen Themen abhält. Auch angesichts des anhaltenden Fachkräftemangels muss in der Software-Entwicklung verstärkt auf Automatisierung geachtet werden. Diesbezüglich zählen Continuous-Integration-Plattformen und Werkzeuge zur Architekturprüfung (siehe Abbildung 2, PDF) bereits zum Stand der Technik. Code-Reviews zu unterlassen oder ohne entsprechende Codeanalyse-Werkzeuge durchzuführen, ist produktionshemmend und gehört der Vergangenheit an. So wie es bei der Hardware selbstverständlich ist zu prüfen, ob die Designs korrekt umgesetzt wurden, muss in der Software-Entwicklung ebenfalls ingenieursmäßig geprüft und nachgewiesen werden, dass gewünschten Eigenschaften (z.B. die Architekturen) eingehalten sind.

Messbarkeit
Für die erstellten Artefakte der Software-Entwicklung muss demnach z.B. mit Hilfe von Metriken und Architektur-Prüfungen nachvollziehbar Transparenz hinsichtlich der Güte geschaffen werden, um die Qualität kontinuierlich zu verbessern.

Weiche Faktoren berücksichtigen

Neben den oben genannten Bereichen der Systematik, Disziplin und Messbarkeit gilt es aber auch in den Ingenieursdisziplinen, den "menschlichen Faktor" zu berücksichtigen: In allen Prozessen müssen die Projektbeteiligten und Entwickler "mitgenommen" werden, also nicht nur eingebunden, sondern auch informiert und in ihren persönlichen Bedürfnissen ernst genommen werden. Ein Lösungsansatz ist es, die Maßnahmen schrittweise auszubauen. Denn wenn es darum geht, die Qualität einer Embedded-Software zu verbessern, ist es immer besser, klein anzufangen, als aus Angst vor möglichen Widerständen nichts zu tun.

 

Beitrag als PDF downloaden


Software Engineering Management - unsere Trainings & Coachings

Wollen Sie sich auf den aktuellen Stand der Technik bringen?

Dann informieren Sie sich hier zu Schulungen/ Seminaren/ Trainings/ Workshops und individuellen Coachings von MircoConsult zum Thema Software Engineering Management /Prozess-, Projekt- und Produktmanagement.

Training & Coaching zu den weiteren Themen unseren Portfolios finden Sie hier.


Software Engineering Management - Fachwissen

Wertvolles Fachwissen zum Thema Software Engineering Management /Prozess-, Projekt- und Produktmanagement steht hier für Sie zum kostenfreien Download bereit.

Zu den Fachinformationen


Fachwissen zu weiteren Themen unseren Portfolios finden Sie hier.