Kann eine Person alles, wirklich alles?
"...entwickelt C++ Software und VHDL programmierbare Logik. Erstellt Schemas und Layouts und nimmt dann die Hardware gerade auch selbst in Betrieb. Führt zusätzlich die EMV und CE Zertifizierung durch und übernimmt die Zertifizierung für funktionale Sicherheit und IoT Security..." Das ist die nicht untypische Stellenbeschreibung für einen Entwickler oder die Selbst-Beschreibung von Ein-Mann Entwicklungsanbietern.
Geht das überhaupt? Sicher, es gab mal eine Zeit, da war das so ähnlich möglich. Aber: das war im letzten Jahrtausend: 8-bit Prozessoren, keine EMV-Vorschriften, die den Namen verdienen, 1K EPROM, 256 Byte RAM, die Sprache hiess Assembler, die Entwicklungsumgebung hiess "Monitor"... Wir glauben, dass diese Zeit definitiv vorbei ist!
Aber wir sehen heute noch, dass eine oder zwei Personen alleine alle diese Aufgaben übernehmen. Und leider sehen wir immer wieder Beispiele, wo das Projekt im Desaster endet: Es entstand eine Steuerung die eigentlich funktionierte. Und dann kurz vor Produktionsstart die EMV-Tests nicht bestand, weil Layout- und EMV-Grundlagen nicht beachtet wurden. Beim Produktions-Ramp-Up zeigte sich, dass die Ausbeute beim Löten unterirdisch war, weil Footprints fehlerhaft waren. Der erste Prototyp beim Kunden stürzte ab, und niemand wusste wieso (der erste Parameter, den der Kunde veränderte, hatte keine Fehlerbehandlung, wie alle anderen auch...). Die Sicherheitsprüfung erforderte ein komplettes Redesign. Und so weiter...
Wieso ist das heute so? Wieso ging das früher? Dafür gibt es drei Gründe:
- Komplexitäts-Zuwachs: In embedded Elektronik und Software sind heute Systeme im Einsatz, welche vor einigen Jahren als Server durchgegangen wären. Deren inhärente Komplexität sorgt dafür, dass nur noch gut zusammenarbeitende Spezialisten solche Entwicklungen auch effizient durchführen können.
- Time-to-Market: Wie schnell mussten neue Produkte auf dem Markt sein? Es gab Projekte, die dauerten zehn Jahre. Würde das heute akzeptiert? Die Bauteile wären schon obsolet, wenn die Produktion beginnt...
- Nicht-funktionale Anforderungen: Die meisten Lastenhefte denken in den funktionalen Anforderungen, im Geradeaus-Fall. Das war beim 8-bit Mikrocontroller auch genügend, jeder war froh, wenn man die Funktion in den vorhandenen Speicher quetschen konnte. Dreissig Jahre später sind die funktionalen Ansprüche an ein System innert 20% der Entwicklungszeit erfüllt. Dann kommen die nicht-funktionalen Anforderungen: Zertifizierung für CE, EMV, Betriebssicherheit, funktionale Sicherheit. Die meisten Geräte haben grafische Oberflächen mit Touch-Bedienung, daraus folgen Forderungen nach Usability und Mehrsprachigkeit. Und auch die Industrie 4.0 fordert IoT Funktionen, welche sofort Cyber-Security nach sich ziehen...
Alle Arbeit für die Elektronik- und Softwareentwicklung nur einem Generalisten zu geben ist wohl einer der für den Projekterfolg folgenschwersten Entscheide. Und leider der, welcher embedded Entwickler in ein schlechtes Licht rückt: "Es geht alles sowieso immer viel länger und funktioniert dann doch nicht".
Was heisst das?
Für uns ist Embedded Development Teamarbeit. Keiner kann alles, stellen Sie ein Team für das Projekt zusammen, in dem alle embedded Fachbereiche mit einem echten Spezialisten vertreten sind.