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 Entwicklern 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 letzen Jahrtausend: 8-bit Prozessoren, keine EMV-Vorschriften, die den Namen verdienen, 1K EPROM, 256 Byte RAM, die Sprache hiess Assembler, die Entwicklungsumgebung hiess "Monitor"... Diese Zeit ist definitiv vorbei!
Wenn eine oder zwei Personen heute alleine alle diese Aufgaben übernehmen, dann ist häufig das Desaster vorprogrammiert. Es entsteht eine Steuerung die eigentlich funktioniert. Und dann kurz vor Produktionsstart die EMV-Tests nicht besteht, weil Layout- und EMV-Grundlagen nicht beachtet wurden. Beim Produktions-Ramp-Up zeigt sich, dass die Ausbeute beim Löten unterirdisch ist, weil Footprints schlecht sind. Der erste Prototyp beim Kunden stürzt ab, und niemand weiss wieso (der erste Parameter, den der Kunde veränderte, hatte keine Fehlerbehandlung, wie alle anderen auch...). Die Sicherheitsprüfung erfordert 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 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 nur einem Generalisten zu geben, ist wohl eines der am weitesten verbreiteten und für den Projekterfolg folgenschwersten Entscheide. Und leider der, welcher alle embedded Entwickler in ein schlechtes Licht rückt: "Es geht alles sowieso immer viel länger und funktioniert dann doch nicht".
Was heisst das?
Wir finden, dass embedded Entwicklung Team-Arbeit ist. Keiner kann alles, stellen Sie ein Team für das Projekt zusammen, in dem alle embedded Fachbereiche mit einem echten Spezialisten vertreten sind.