Für die Entwickler von Software gibt es zahlreiche gute Lösungen zur Versionsverwaltung. Wir suchten dagegen nach einem entsprechenden Ansatz für kombinierte Hard- und Software-Projekte.
Es sollen verschiedene Versionen von Platinenlayouts, Schaltplänen, Stücklisten und der jeweils dazugehörigen Firmware eindeutig und nachvollziehbar dokumentiert werden.
Dies ist ganz besonders wichtig bei Projekten mit langer Laufzeit, die kontinuierlich verbessert werden. Ebenfalls dann, wenn während der Entwicklung der Kunde schon mal einen Prototypen zum Testen bekommt. Jeder Stand und jeder Fortschritt sollte genau dokumentiert sein.
Die Versionsnummern sollten einfach aufgebaut, logisch, behaltbar und einigermaßen zukunftssicher sein. Dazu gehört auch, daß sie möglichst kurz sind und dezimal gezählt werden. Wir verwenden dazu einen projektübergreifenden Änderungsindex, der im folgenden erläutert wird.
Die Versionsnummern sind in der Form LL.CC.SS (Layout . Components . Software) strukturiert.
LL, die 1. + 2. Ziffer, kennzeichnen das Platinenlayout
CC, die 3. + 4. Ziffer, bezeichnen den Schaltplan und die Bauteilwerte (Components) zu einem Layout
SS, die 5. + 6. Ziffer, referenzieren die Software
Die Reihenfolge der Ziffern LL.CC.SS ist dadurch bestimmt, was in welcher Reihenfolge variiert werden kann. Ein Platinenlayout bestimmt die Verbindungen zwischen den Bauelementen. Die Bauteilwerte können jedoch verändert werden, ohne das Layout zu bearbeiten. Genauso können auf jedem Layout mit einer bestimmten Bestückung wiederum verschiedene Softwareversionen laufen.
Die feste Stellenzahl mit Vornullen mag vielleicht etwas altmodisch wirken, ist aber besser sortierbar.
Ein Produkt besteht u.U. aus mehreren elektronischen Baugruppen. Der hier beschriebene Änderungsindex bezieht sich nur auf eine einzelne Baugruppe, nicht auf das ganze Gerät.
Ein Variantenmanagement ist mit dieser Methode nur schwer zu realisieren und hängt davon ab, auf welcher Ebene (Layout, Bestückung oder Software) variiert wird. Im einfachsten Fall bekommt das Kind einen neuen Namen, der die geänderte Funktion beschreibt.
Die Sicherung der Versionen obliegt dem Benutzer. Es ist kein Projektarchiv oder Repositorium implementiert. Dafür stehen zahlreiche ausgereifte Versionsverwaltungs-Systeme zur Verfügung, genannt seien Subversion oder Git. Eine sinnvolle Integration von CAD-Daten in diese Systeme ist jedoch nicht immer möglich. Wenn ein binäres Format verwendet wird, scheidet ein Dateivergleich oder ein Merge aus. Bei Layouts und Schaltplänen kann man dann nur auf eine alte Version zurückspringen. Diverse CAD-Programme bringen schon eigene Sicherungssyteme mit und so bleibt nichts, als die Versionsnummer hochzuzählen und das Ganze zu dokumentieren.
Es hat sich als hilfreich erwiesen, ein Formular mit folgenden Punkten abzuarbeiten:
Um die Formulare zu verwalten, eignet sich z.B. CUEcards. Diese Software ist auch in einer kostenlosen Einzelplatz-Version erhältlich.
Und so sieht es aus:
Letztendlich steht und fällt das Verfahren natürlich mit der konsequenten Umsetzung. Wer schreibt, der bleibt.