Forum: Mikrocontroller und Digitale Elektronik HW Dateien unter Versionskontrolle?


von H. R. (hacker_r)


Lesenswert?

Hi
Stellt ein HW Entwicklungsingenieur seine files unter git/svn/...?

Danke

von mmhm (Gast)


Lesenswert?

H. R. schrieb:
> Hi
> Stellt ein HW Entwicklungsingenieur seine files unter git/svn/...?
>
> Danke
Es ist  nicht verboten, aber auch nicht üblich.

von Frank K. (fchk)


Lesenswert?

Altium Designer hat einen sehr brauchbaren svn-Support.

fchk

von Markus F. (mfro)


Lesenswert?

VCS-Systeme verwalten Versionsstände üblicherweise als textueller diff 
zu ihrem Vorgänger.

Wenn Du mit dem diff nichts mehr anfangen kannst (weil die grafische 
Software die fast identische Datei komplett neu - und irgendwie anders - 
schreibt), wird das zum Datengrab.

Dann funktioniert kein merge mehr und Du kannst dir dein VCS an den Hut 
stecken. Mit einem PLM-System bist Du da besser bedient.

von Fpgakuechle K. (Gast)


Lesenswert?

H. R. schrieb:

> Stellt ein HW Entwicklungsingenieur seine files unter git/svn/...?

Ein Hardwareentwickler dokumentiert seine Änderung auch und legt 
ebenfalls Versionsstände an auf die er ggf zurückgehen kann. Dazu sind 
aber die Tools der Softwerker weniger geeignet, weil sie auf der 
Verwaltung von Textdateien basieren.

Stattdessen legt man für jeden Versionsstand ein Bävkupverzeichniss an 
und beschreibt Änderungen in einer Textdatei.
Oder man kopiert/druckt die Zeichnung aus und markiert Änderungen in 
einer besonderen Farbe und archiviert diese (als Papier oder Scan).

Man kann auch versuchen die Änderung computergestützt zu ermitteln, 
indem man am Computer nachstellt, wie man verschiedene 
Zeichnungsversionen quasi auf Transparentpapier übereinanderlegt sodas 
die Versionsunterschiede durchschimmern. Also Schematics/Layouts/etc. 
als verlustfreies Bitmap abspeichern (notfalls Screenshoot per 
"Druck-Taste") (bspw PNG) und dann mit gimp oder einer anderen 
Bildverarbeitung ein Differenzbild (Ebenen subtrahieren) erzeugt.

PS:
Wird heute die Traditionelle Versionsverwaltung mit Papier, Stift und 
Mappe nicht mehr gelehrt?! Oder sogar verboten?

von 6a66 (Gast)


Lesenswert?

H. R. schrieb:
> Hi
> Stellt ein HW Entwicklungsingenieur seine files unter git/svn/...?
>
> Danke

Es stellen sich immer vier Fragen:
Woher?
Warum?
Wohin?
Wie?

Woher: Es gibt genügend Möglichkeiten, vernünfitg saubere 
Versionskontrolle auch ohne SVN zu machen. S_oftware A_us P_olen kennt 
das ja auch nicht und trotzdem wird damit Beschaffung und Produktion 
damit gehandhabt.

Warum: Wenn die übliche Prozesslandschaft diese Versionierung schlecht 
abbildet wird häufig schnell nach irgendeiner Versionskontrolle 
geschrien. DAs macht partiell Sinn aber nur solange die umgebenden 
prozesse damit mitspielen oder nachgezogen werden. Ist aber vom "Woher" 
abhängig.

Wohin: Was will ich erreichen? Wenn as warum nicht geklärt ist ist auch 
schlecht das Wohin zu definieren da man den Ausgangspunkt und die 
Defizite schlecht kennt. Einfach die Dateien in ein SVN zu schieben 
hilft zwar zur Speicherung. Aber ich kann meinen HW-Entwicklungsstand 
bei einer Gruppe von 10 Entwicklern jeden Tag speichern, dann wird das 
schnell unübersichtlich. Oder jeden Meilenstein, dann kann das durchaus 
Sinn machen. Was mache ich dazwischen? Was passiert wenn ein Mann 
dazwischen ausfällt, ... Ist alles zwar abbildbar abedr zu walche 
Kosten.

Und damit sind wir beim Wie:
Es wurde schon angesprochen: Altium kann mit SVN oder Vaults (im Prinzip 
das gleiche) umgehen. Es verfügt aber auch über eine Historie jeder 
Änderung. Klar kannst Du einem SW-Entwickler dazu verdonnern jede Stunde 
oder jeden Tag Aus- und Einzuchecken. Wieviel Sinn das macht ist von der 
Umgebung abhängig. USW.

Du siehst: Möglich? Ja. Sinnvoll? Hängt von Deinen Umständen ab.

Bei uns wurde da schon mal drüber diskutiert. Wir machen KEIN SVN 
(Altium, Speicherung offline auf Server, Sicherung bei Meilensteinen).

rgds

rgds

von Andreas (Gast)


Lesenswert?

Es spricht nichts dagegen, aber sehr viel dafür: die gesamte Historie 
ist an einem Ort, alte Stände können nicht verloren gehen oder 
manipuliert werden, es ist immer klar wer für welche Änderung 
verantwortlich ist, Backup von Projektdaten wird trivial. Das Argument, 
es gingen keine merges, lasse ich nicht gelten - manuell mergen kann man 
immer, und muss man auch bei Code oft genug. Und immerhin hat man einen 
exakt definierten Stand, was war in Branch 1 und was in Branch 2, und 
was danach, und kann im Zweifelsfall zurückverfolgen wann und warum eine 
Änderung gemacht wurde - auch wenn das ein bisschen Handarbeit 
erfordert. Dass hier „Backupverzeichnisse“ oder Papier vorgeschlagen 
wird lässt mir als zur Software konvertiertem E~Techniker die Haare zu 
Berge stehen, aber hat wohl den Grund, dass Hardwerker das Arbeiten mit 
diesen Tools einfach nicht gewöhnt sind.

von Axel S. (a-za-z0-9)


Lesenswert?

Fpga K. schrieb:
> H. R. schrieb:
>
>> Stellt ein HW Entwicklungsingenieur seine files unter git/svn/...?
>
> Ein Hardwareentwickler dokumentiert seine Änderung auch und legt
> ebenfalls Versionsstände an auf die er ggf zurückgehen kann. Dazu sind
> aber die Tools der Softwerker weniger geeignet, weil sie auf der
> Verwaltung von Textdateien basieren.

Jein. Diff und Merge funktionieren zwar nur mit Text bzw. zeigen nur für 
Text verwertbare Informationen. Aber praktisch alle VCS können auch mit 
Binärdateien umgehen. Und viele EDA Tools legen ihre Daten auch in einem 
Textformat (z.B. XML) ab.

> Stattdessen legt man für jeden Versionsstand ein Bävkupverzeichniss an
> und beschreibt Änderungen in einer Textdatei.

Das hat keinerlei Vorteil gegenüber einem Commit in einem VCS. Im 
Gegenteil. Das VCS kümmert sich z.B. automatisch darum, Duplikate zu 
vermeiden. Es kann Commit-Mails verschicken. Es kann den 
Commit-Kommentar erzwingen und Plausibilitätsprüfungen vornehmen (z.B. 
einen DRC über das Layout laufen lassen).

Nicht zuletzt kann man im VCS Hard- und Software-Teil zu den gleichen 
Zeitpunkten committen. Bei mir liegen immer beide Teile in einem 
gemeinsamen Projektverzeichnis und das gesamte Verzeichnis steht unter 
Versionskontrolle.

> Oder man kopiert/druckt die Zeichnung aus und markiert Änderungen in
> einer besonderen Farbe und archiviert diese (als Papier oder Scan).

Das sollte hoffentlich ein Scherz sein.

von Dominik S. (dasd)


Lesenswert?

Fpga K. schrieb:
> Stattdessen legt man für jeden Versionsstand ein Bävkupverzeichniss an
> und beschreibt Änderungen in einer Textdatei.

Mit anderen Wort: Er pfuscht...
Sorry aber diese hundertfachen Datei- und Verzeichniskopien zur 
"Versionierung" sind einfach nur murks.
Dafür gibt es Tools. Wenn kein VCS dann eben ein PLM oder 
Dokumentenmanagementsystem.

von Micha (nichtgast)


Lesenswert?

Fpga K. schrieb:
> H. R. schrieb:
>
>> Stellt ein HW Entwicklungsingenieur seine files unter git/svn/...?
>
> Ein Hardwareentwickler dokumentiert seine Änderung auch und legt
> ebenfalls Versionsstände an auf die er ggf zurückgehen kann. Dazu sind
> aber die Tools der Softwerker weniger geeignet, weil sie auf der
> Verwaltung von Textdateien basieren.
>
> Stattdessen legt man für jeden Versionsstand ein Bävkupverzeichniss an
> und beschreibt Änderungen in einer Textdatei.
> Oder man kopiert/druckt die Zeichnung aus und markiert Änderungen in
> einer besonderen Farbe und archiviert diese (als Papier oder Scan).
>
> Man kann auch versuchen die Änderung computergestützt zu ermitteln,
> indem man am Computer nachstellt, wie man verschiedene
> Zeichnungsversionen quasi auf Transparentpapier übereinanderlegt sodas
> die Versionsunterschiede durchschimmern. Also Schematics/Layouts/etc.
> als verlustfreies Bitmap abspeichern (notfalls Screenshoot per
> "Druck-Taste") (bspw PNG) und dann mit gimp oder einer anderen
> Bildverarbeitung ein Differenzbild (Ebenen subtrahieren) erzeugt.
>
> PS:
> Wird heute die Traditionelle Versionsverwaltung mit Papier, Stift und
> Mappe nicht mehr gelehrt?! Oder sogar verboten?

Alternativ kann man auch seinen Feuerstein nehmen, ein Lagerfeuer 
anzünden und der Diff-Gottheit ein Tieropfer bringen.

Es gibts schon einen Grund, warum man den Müll mit Stift, Papier und 
Mappe nicht mehr macht. Oder routest du auch noch mit Abziehbildchen und 
optischer Verkleinerung?

SVN eignet sich ganz gut für PCB-Projekte. Einen Merge wirst du mit 
keinem Programm vernünftig hinbekommen. Mit dem Zähler hast du eine 
direkte Hausnummer über welchen Stand man redet, in den Kommentaren 
kannst du Veränderungen Dokumentieren, für die Produktion kannst du den 
Stand taggen.

Eine Verzeichnisstruktur artet meistens aus:

Ordner
->Projekt aktuell
->Projet neuer
->Projekt backup
->projekt backup backup
->projekt older
u.s.w

: Bearbeitet durch User
von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Bei uns wird alles versioniert, d.h. sowohl die entsprechenden 
Beschreibungsdateien für Software, Hardware, FPGA, usw. als auch Fotos, 
Protokolle und sonstige Dokumente. Durch die Kopplung von Subversion und 
Trac lassen sich dann auch die Verknüpfungen von Checkins mit Ticket 
realisieren. Trac-Tickets werden nicht nur für Fehler verwendet, sondern 
auch für anstehende Aufgaben und Verbesserungen.

Es erfordert allerdings auch einen gewissen Planungsaufwand und die 
gewisse Weitsicht, wie die Repositories und daraus resultierenden 
Sandboxes aufzubauen sind. Dies betrifft vor allem auch die 
Mehrfachverwendung versionierter Elemente, z.B. Bibliotheken.

Eines der wichtigsten Elemente bei der Verwendung von 
Versionskontrollsystemen sind aussagekräftige Checkin-Kommentare. Auch 
den Checkin-Vorgang als solchen sollte man wirklich ernstnehmen und 
sämtliche durchgeführte Arbeiten noch einmal kontrollieren. Die absolute 
Katastrophe sind Projektmitarbeiter, die völlig unreflektiert sämtlichen 
Scheiß in ihren Arbeitsverzeichnisse und darüber hinaus einchecken.

Ein ganz wichtiges Thema ist auch die Versionierung von Artefakten wie 
z.B. Kompilaten und Logfiles. Natürlich ist es ungünstig, wenn nach 
jedem Compilerlauf tausende Dateien als geändert angezeigt werden, so 
dass die wirklich wichtigen Änderungen dabei in Vergessenheit geraten 
können. Daher hat es sich sehr bewährt, hier sparsam vorzugesehen. 
Allerdings müssen bei der Generierung offizieller Releases schon 
sämtliche generierten Dateien enthalten sein, damit man ggf. auch nach 
Jahren noch jeden Vorgang nachvollziehen kann. Ich hatte gerade erst 
gestern die Situation, dass ich in ein paar Builds von 2014 und 2015 
hineinschauen musste, weil er Kunde ein paar Fragen zu alten 
Firmwareständen hatte. Solche Builds sollten aber vorzugsweise abseits 
der Arbeitsverzeichnisse versioniert bzw. archiviert werden. Und da 
hängt es auch gewaltig von den Konzepten des jeweiligen VCS ab. 
Subversion bildet Vorgänge wie das Vergeben von Tags oder Anlegen von 
Branches auf normale Kopiervorgänge ab. Das hat zwar den Nachteil, dass 
man einer Datei nicht sofort ansieht, wo sie sonst noch verwendet wird, 
aber dafür kann man eben sehr einfach außerhalb der normalen 
Verzeichnisse komplette Builds ablegen. Es hat sich durchaus bewährt, 
neben der von den Subversion-Autoren vorgeschlagenen Aufteilung in die 
Verzeichnisstrukturen trunk/tags/branches auch noch releases zu 
verwenden. Ein typischer Workflow sieht dann so aus, dass die 
Entwicklung auf trunk oder branches/<branchname> erfolgt und dann ein 
Versionsstand dann nach tags/<tagname> kopiert. Somit hat man dann einen 
Quellcodestand in Stein gemeißelt. Anschließend kopiert man solch ein 
Tag nach releases/<releasename> und führt dort die Erzeugung der 
Artekfakte durch, die selbstverständlich auch eingecheckt werden, d.h. 
inklusive Logfiles. Ggf. checkt man aber keine Einzeldateien ein, z.B. 
ein gezipptes Abbild der Sandbox. Auf diese Art und Weise kann man ggf. 
auch mehrere Builds eines Quellcodestandes durchführen, z.B. in 
unterschiedlichen Umgebungen.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Keiner N. schrieb:
> SVN eignet sich ganz gut für PCB-Projekte. Einen Merge wirst du mit
> keinem Programm vernünftig hinbekommen.

Erstaunlicherweise funktioniert aber z.B. bei Altium Designer das 
Betrachten von Diffs ganz passabel. Besonders gut gelöst ist dabei, dass 
der Storage Manager die gespeicherten Zwischenstände und die per 
CVS/Subversion versionierten Stände in einer gemeinsamen Historie 
darstellt. Man kann sich dann beliebige Diffs zwischen lokaler und 
versionierter Historie anzeigen lassen.

Seit AD 18 wird auch Git unterstützt, aber das habe ich noch nicht 
selbst ausprobiert.

von Soul E. (Gast)


Lesenswert?

H. R. schrieb:

> Stellt ein HW Entwicklungsingenieur seine files unter git/svn/...?

Das sind eher Tools für die SW-Entwicklung.

Systeme zur Versionierung von Mechanik und Elektronik(-HW) laufen unter 
dem Begriff Computer-Integrated Manufacturing (CIM). Ein bekannter 
Hersteller wäre https://www.contact-software.com/de/

Da hast Du dann auch gleich eine Anbindung an SAP für Logistik und 
(Finanz-)Controlling.

von Yalu X. (yalu) (Moderator)


Lesenswert?

Stellt der Hersteller der EDA-Software ein Diff- und ein Merge-Tool zur
Verfügung, können Schaltpläne mit den meisten VCSen genauso komfortabel
wie Textdateien verwaltet werden. Die Bereitstellung dieser Tools muss
aber durch den EDA-Hersteller erfolgen, da ein VCS unmöglich jedes
(evtl. sogar undokumentierte) Grafikformat unterstützen kann.

Aber auch ohne diese Tools ist die Verwaltung von Schaltplänen sinnvoll,
insbesondere dann, wenn das Hardwareprodukt auch Softwarekomponenten
beionhaltet.

Aber auch ohne diese Tools ist die Verwaltung von Schaltplänen mit einem
"Software-VCS" durchaus sinnvoll, insbesondere dann, wenn das Produkt
auch Softwarekomponenten (bspw. Firmware oder Treibersoftware für PCs)
beinhaltet, weil mit jeder Hardwareänderung oft auch Softwareänderungen
einhergehen. Wird beides mit demselben System verwaltet, sind die
Änderungen automatisch miteinander synchronisiert.

von bitwurschtler (Gast)


Lesenswert?

Keiner N. schrieb:
> Es gibts schon einen Grund, warum man den Müll mit Stift, Papier und
> Mappe nicht mehr macht. Oder routest du auch noch mit Abziehbildchen und
> optischer Verkleinerung?

Wenn ich dem Servicetechniker/Handbestücker die Änderung als diff-Paket 
rüberschicke und nicht als Bebilderte Arbeitsanweisung, erschlägt der 
mich ;-)- das ist für mich ein guter Grund Unterschiede immer so zu 
dokumentieren, das der der diese kennen muss, was damit anfangen kann.

von QA is for Quality Art (Gast)


Lesenswert?

Andreas S. schrieb:
> Bei uns wird alles versioniert, d.h. sowohl die entsprechenden
> Beschreibungsdateien für Software, Hardware, FPGA, usw. als auch Fotos,
> Protokolle und sonstige Dokumente. Durch die Kopplung von Subversion und
> Trac lassen sich dann auch die Verknüpfungen von Checkins mit Ticket
> realisieren. Trac-Tickets werden nicht nur für Fehler verwendet, sondern
> auch für anstehende Aufgaben und Verbesserungen.
ACK

> Es erfordert allerdings auch einen gewissen Planungsaufwand und die
> gewisse Weitsicht, wie die Repositories und daraus resultierenden
> Sandboxes aufzubauen sind. Dies betrifft vor allem auch die
> Mehrfachverwendung versionierter Elemente, z.B. Bibliotheken.
ACK

> Eines der wichtigsten Elemente bei der Verwendung von
> Versionskontrollsystemen sind aussagekräftige Checkin-Kommentare. Auch
> den Checkin-Vorgang als solchen sollte man wirklich ernstnehmen und
> sämtliche durchgeführte Arbeiten noch einmal kontrollieren. Die absolute
> Katastrophe sind Projektmitarbeiter, die völlig unreflektiert sämtlichen
> Scheiß in ihren Arbeitsverzeichnisse und darüber hinaus einchecken.
ACK

> Ein ganz wichtiges Thema ist auch die Versionierung von Artefakten wie
> z.B. Kompilaten und Logfiles. Natürlich ist es ungünstig, wenn nach
> jedem Compilerlauf tausende Dateien als geändert angezeigt werden, so
> dass die wirklich wichtigen Änderungen dabei in Vergessenheit geraten
> können. Daher hat es sich sehr bewährt, hier sparsam vorzugesehen.
> Allerdings müssen bei der Generierung offizieller Releases schon
> sämtliche generierten Dateien enthalten sein, damit man ggf. auch nach
> Jahren noch jeden Vorgang nachvollziehen kann. Ich hatte gerade erst
> gestern die Situation, dass ich in ein paar Builds von 2014 und 2015
> hineinschauen musste, weil er Kunde ein paar Fragen zu alten
> Firmwareständen hatte. Solche Builds sollten aber vorzugsweise abseits
> der Arbeitsverzeichnisse versioniert bzw. archiviert werden. Und da
> hängt es auch gewaltig von den Konzepten des jeweiligen VCS ab.
> Subversion bildet Vorgänge wie das Vergeben von Tags oder Anlegen von
> Branches auf normale Kopiervorgänge ab. Das hat zwar den Nachteil, dass
> man einer Datei nicht sofort ansieht, wo sie sonst noch verwendet wird,
> aber dafür kann man eben sehr einfach außerhalb der normalen
> Verzeichnisse komplette Builds ablegen. Es hat sich durchaus bewährt,
> neben der von den Subversion-Autoren vorgeschlagenen Aufteilung in die
> Verzeichnisstrukturen trunk/tags/branches auch noch releases zu
> verwenden. Ein typischer Workflow sieht dann so aus, dass die
> Entwicklung auf trunk oder branches/<branchname> erfolgt und dann ein
> Versionsstand dann nach tags/<tagname> kopiert. Somit hat man dann einen
> Quellcodestand in Stein gemeißelt. Anschließend kopiert man solch ein
> Tag nach releases/<releasename> und führt dort die Erzeugung der
> Artekfakte durch, die selbstverständlich auch eingecheckt werden, d.h.
> inklusive Logfiles. Ggf. checkt man aber keine Einzeldateien ein, z.B.
> ein gezipptes Abbild der Sandbox. Auf diese Art und Weise kann man ggf.
> auch mehrere Builds eines Quellcodestandes durchführen, z.B. in
> unterschiedlichen Umgebungen.

Von ganzem Herzen & Hirn ein 100% FULL ACK
Darum auch eine vollständige Zitierung und obendrauf extra den Hinweis 
dass dies auch f. HW, Produktionsunterlagen, Anleitungen, Manuale, 
Architektur- & Designdokumente, Vorträge, Schulungen etc. pp. sinnvoll 
und praktikabel ist.

von Axel S. (a-za-z0-9)


Lesenswert?

bitwurschtler schrieb:
> Keiner N. schrieb:
>> Es gibts schon einen Grund, warum man den Müll mit Stift, Papier und
>> Mappe nicht mehr macht. Oder routest du auch noch mit Abziehbildchen und
>> optischer Verkleinerung?
>
> Wenn ich dem Servicetechniker/Handbestücker die Änderung als diff-Paket
> rüberschicke und nicht als Bebilderte Arbeitsanweisung, erschlägt der
> mich ;-)- das ist für mich ein guter Grund Unterschiede immer so zu
> dokumentieren, das der der diese kennen muss, was damit anfangen kann.

Was für ein dümmliches Nicht-Argument.

Ich darf meinen Workflow nicht omptimieren, weil irgendwo am Ende der 
Kette jemand sitzen könnte, der noch in der Steinzeit lebt?

Entweder sucht man sich jemand, der schon auf elektronische 
Datenverarbeitung <hüstel> umgestellt hat. Oder man konvertiert seine 
Daten (den Laser im Drucker "hochskillen", damit er auf Steintafeln 
brennen kann?)

Die Entscheidung ist am Ende eine betriebswirtschaftliche.

von bitwurschtler (Gast)


Lesenswert?

Axel S. schrieb:
> bitwurschtler schrieb:
>> Keiner N. schrieb:
>>> Es gibts schon einen Grund, warum man den Müll mit Stift, Papier und
>>> Mappe nicht mehr macht. Oder routest du auch noch mit Abziehbildchen und
>>> optischer Verkleinerung?
>>
>> Wenn ich dem Servicetechniker/Handbestücker die Änderung als diff-Paket
>> rüberschicke und nicht als Bebilderte Arbeitsanweisung, erschlägt der
>> mich ;-)- das ist für mich ein guter Grund Unterschiede immer so zu
>> dokumentieren, das der der diese kennen muss, was damit anfangen kann.
>
> Was für ein dümmliches Nicht-Argument.

Häh? Form follows function ist "dümmlich"? Erklär mal!
Vielleicht wirds an einem andere beispiel verständlicher:
Firmware auf Gerät mit Hardwarestand A funktioniert, selber Software auf 
Hardwarestand B nicht. Jetzt wird der Hardwerker nach den den 
Unterschieden zwischen A und B gefragt. Mit welcher Antwort sind die 
Fragestellender eher zufrieden:
a) Diff-Auszug aus CVS/svn der Speicherstände
b) Ausdruck/PDF von Schaltplan mit Markierung
c) textuelle Beschreibung der Unterschiede

Es heisst ja nicht das CVS/SVN komplett untauglich ist, man kann damit 
schon Datensätze zeitstempel basiert erhalten und rekonstruieren. Aber 
zur Dokumentation von Änderungen ist es in der Hardwareentwicklung oft 
unzureichend, da bedient man sich doch der klassischen tools. Nicht 
jedes Problem wird durch Computereinsatz kleiner, manchmal entsteht es 
erst durch eine Sklavische Fixierung auf Softwaretools.

Auch in der Softwareentwicklung ist IMHO eine Änderung besser in Worten 
beschrieben (Optimierung auf Systeme mit weniger Speicher) als mit 
(nackten) Diff-Auszug.

von A. (Gast)


Lesenswert?

Es gibt ggf.(!) einen/mehrere aktuelle Arbeitsstände. Jede individuell 
an einen Kunden/Öffentlichkeit gebrachte Version wird 
versioniert/archiviert und nur bei Bugs oder Änderungswünschen 
angefasst. Und dann wird auch nur diese archivierte Version bearbeitet 
und unter einer neuen Versionsnummer archiviert nach Herausgabe.

Damit sind alle herausgegebenen Versionen (inkl. Dokumentation, Manual 
etc.) archiviert. Wird eine neue Version erstellt, passiert dies unter 
einem neuen Arbeitstitel mit anschließender Archivierung.

SVN und ähnliches lohnt sich mMn erst bei großen Teams, was sich bei 
verschiedenen Arbeitsgebern gezeigt hat. Hierunter fallen 20 Mann 
Klitschen definiv nicht, sondern eher ab 200 Personen aufwärts, wo dann 
in der Entwicklung für eine Produktgruppe z.B. bis 50 Personen 
herangezogen werden könnten.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

bitwurschtler schrieb:
> a) Diff-Auszug aus CVS/svn der Speicherstände

Ja, indem man je nach Dokument diese Diffs tatsächlich in Textform (z.B. 
Stücklisten, Bestückungsdaten, Signallisten o.ä.) oder grafisch 
weiterverarbeitet, z.B. mittels Gerber Viewer Layoutunterschiede 
darstellt.

> b) Ausdruck/PDF von Schaltplan mit Markierung

Es wäre eine Katastrophe, nur Schaltpläne mit händischen Markierungen 
weiterzuverwenden. Wichtig ist doch, dass auch die Änderungen in dem 
betreffenden EDA-System vorgenommen *und als solche kenntlichgemacht 
werden*.

Natürlich kritzele auch in während der Hardwareinbetriebnahme auf 
ausgedruckten Schaltplänen herum, ebenso auch andere Akteure. Solch ein 
wichtiges Dokument wird anschließend natürlich gescannt (oder 
behelfsweise mit der Digitalkamera fotografiert) und ins 
Versionskontrollsystem eingecheckt.

> c) textuelle Beschreibung der Unterschiede

Diese textuellen Beschreibungen gehören in den Checkin-Kommentar. 
Natürlich kann und soll man auch separate Textdokumente versionieren. 
Ein weiterer, sich als äußerst praktikabel erweisender Weg besteht 
darin, solche Beschreibungen in einem Wiki zu pflegen. Wenn das Wiki mit 
dem Versionskontrollsystem gekoppelt ist (z.B. Trac mit Subversion, 
JIRA/Confluence mit div. VCS), sieht man auch gleich den Zusammenhang 
zwischen Originalstand, nachträglichen Änderungen, zugehörigen Tickets 
und Checkins.

> Es heisst ja nicht das CVS/SVN komplett untauglich ist, man kann damit
> schon Datensätze zeitstempel basiert erhalten und rekonstruieren.

So etwas sollte man aber nur im Sinne einer Lamport-Uhr betrachten.

> Aber
> zur Dokumentation von Änderungen ist es in der Hardwareentwicklung oft
> unzureichend, da bedient man sich doch der klassischen tools.

Was nützt es, irgendwelche Änderungen nur in Papierform zu notieren, 
wenn sie z.B. auch für künftige Layoutversionen benötigt werden? Ach ja, 
man kann versuchen, sich wichtig oder unersetzbar zu machen, indem man 
solche Änderungslisten nur in seinem eigenen Schrank hortet, so dass 
Dritte nicht erfahren, was geändert wurde. Wenn ich so etwas bemerke, 
werde ich etwas ungehalten.

> Nicht
> jedes Problem wird durch Computereinsatz kleiner, manchmal entsteht es
> erst durch eine Sklavische Fixierung auf Softwaretools.

Das stimmt durchaus. Auf den konkreten Fall angewandt ist es jedoch 
Unsinn. Handschriftliche Notizen sind wichtig für kurzfristige Zwecke, 
aber nicht für die langfristige Pflege eines Projektes.

> Auch in der Softwareentwicklung ist IMHO eine Änderung besser in Worten
> beschrieben

Klar, der Compiler kann natürlich unglaublich viel mit einem 
ausgedruckten Quellcode anfangen, auf dem handschriftliche Notizen 
angebracht sind...

> (Optimierung auf Systeme mit weniger Speicher) als mit
> (nackten) Diff-Auszug.

Speicherplatz ist auf Entwicklungsrechnern heutzutage überhaupt kein 
Problem mehr. Da geht es vielmehr um Nachverfolgbarkeit von Änderungen.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

A. schrieb:
> SVN und ähnliches lohnt sich mMn erst bei großen Teams, was sich bei
> verschiedenen Arbeitsgebern gezeigt hat. Hierunter fallen 20 Mann
> Klitschen definiv nicht, sondern eher ab 200 Personen aufwärts, wo dann
> in der Entwicklung für eine Produktgruppe z.B. bis 50 Personen
> herangezogen werden könnten.

Völliger Unsinn. Gerade SVN ist sogar für Einzelkämpfer sehr gut 
einsetzbar, da es einen vernachlässigbaren Administrationsaufwand 
bedeutet.

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

A. schrieb:
> SVN und ähnliches lohnt sich mMn erst bei großen Teams, was sich bei
> verschiedenen Arbeitsgebern gezeigt hat. Hierunter fallen 20 Mann
> Klitschen definiv nicht, sondern eher ab 200 Personen aufwärts, wo dann
> in der Entwicklung für eine Produktgruppe z.B. bis 50 Personen
> herangezogen werden könnten.

Huh?

CM (Configuration Management) lohnt ab einer Person. Sogar im 
Privat-/Bastel-Bereich ;-)

von C.R. (Gast)


Lesenswert?

Einfach eine aufsteigende Zahl hinter den Dateinamen packen, mit jeder 
Änderung/Version wird um 1 hochgezählt und dann abspeichern.
Schon klappt es mit der Versionsverwaltung, es ist digital abgespeichert 
und man kann trotz allem noch alles nachvollziehen.

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

A. schrieb:
> Es gibt ggf.(!) einen/mehrere aktuelle Arbeitsstände. Jede individuell
> an einen Kunden/Öffentlichkeit gebrachte Version wird
> versioniert/archiviert und nur bei Bugs oder Änderungswünschen
> angefasst. Und dann wird auch nur diese archivierte Version bearbeitet
> und unter einer neuen Versionsnummer archiviert nach Herausgabe.

Es ist (leider) nicht immer so einfach, hängt auch vom Umfeld ab. 
Compliance-Anforderungen steigen überall, QS-Anforderungen sind in 
bestimmten Bereichen (zB Luftfahrt) extrem.

Neben dem "normalen" Änderungswahnsinn ;-) gibt es noch so nette Sachen 
wie RfD, Waiver, CIDLs, ABCLs, Quality Gates, ... die der Kunde in einen 
gesicherten Prozess eingebunden sehen will (welcher auch auditiert 
wird).

Eine Tool-Unterstützung durch ein SCM (Subversion, cvs, ...) ist hier 
fast verpflichtend, genauso wichtig sind aber die darüber liegenden 
(oder begleitenden) Prozesse (und hier geraten auch die "großen" 
PDM/PLM-Systeme schon mal an ihre Grenzen).

Aber das alles funktioniert nur, wenn man schon "im Kleinen" beginnt, 
sich mit einem Tool wie Subversion oder Git zu beschäftigen. Auch und 
vor allem im HW-Bereich (und noch viel mehr wenn es die HW/SW-Kombi ist)

von A. (Gast)


Angehängte Dateien:

Lesenswert?

Für mich ist das formalistischer Overhead. Genauso wie iso9001 nur 
Formalismus ist.

von Bernd K. (prof7bit)


Lesenswert?

Ich würde es machen, es spricht nichts dagegen aber vieles dafür:

Vorteile:
* Es entsteht ein aussagekräftiges Changelog, ganz automatisch nebenbei.
* Alte Versionen gehen nicht mehr versehentlich verloren, selbst der 
größte Schusselkopf wird es nicht mehr schaffen irgendeinen alten 
Zwischenstand oder den Prototypen von letzter Woche von dem man heute 
gerne mal den Schaltplan bräuchte versehentlich zu überschreiben, 
umzubenennen, zu verwechseln oder dergleichen.

Nachteile:
* keine

: Bearbeitet durch User
von Mark W. (kram) Benutzerseite


Lesenswert?

Ein HW Entwickler macht seine Sachen fertig. Und fertig ist es wenn es 
funktioniert und alle Anforderungen erfuellt sind.
Da braucht es keine Versionskontrolle oder sonstiges Management. Ist 
alles Kindergarten und Beschaeftigungstherapie. :-)

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

Mark W. schrieb:
> Und fertig ist es ...

Nie :-) Zumindest behaupten das alle meine Kunden^^

von Bernd K. (prof7bit)


Lesenswert?

Mark W. schrieb:
> Ein HW Entwickler macht seine Sachen fertig. Und fertig ist es wenn es
> funktioniert und alle Anforderungen erfuellt sind.

Klar. Deshalb ist der erste Prototyp auch gleich das serienreife Design. 
Alles gelingt immer gleich beim ersten Wurf.

von bitwurschtler (Gast)


Lesenswert?

Andreas S. schrieb:
> bitwurschtler schrieb:
>> a) Diff-Auszug aus CVS/svn der Speicherstände
>
> Ja, indem man je nach Dokument diese Diffs tatsächlich in Textform (z.B.
> Stücklisten, Bestückungsdaten, Signallisten o.ä.) oder grafisch
> weiterverarbeitet, z.B. mittels Gerber Viewer Layoutunterschiede
> darstellt.

Bis zur Erstellung der Gerberdateien ist es ein langer Weg, manchmal 
Wochen...


>> b) Ausdruck/PDF von Schaltplan mit Markierung
>
> Es wäre eine Katastrophe, nur Schaltpläne mit händischen Markierungen
> weiterzuverwenden. Wichtig ist doch, dass auch die Änderungen in dem
> betreffenden EDA-System vorgenommen *und als solche kenntlichgemacht
> werden*.

Ich kenn kein Schaltplanprogramm bei dem das möglich ist, vielleicht 
sollte ich mich mal von einen Firmenverteter besuchen lassen. Und ich 
spreche auch nicht von der ausschliesslischen Verwendung von händischen 
Markierungen. Ein BackUp vom Datensatz gehört selbstredent dazu. Klar 
kann man CVS/svn auch als BackUp-System verwenden. Aber das ist nur ein 
Aspekt der Versionsverwaltung.

> Natürlich kritzele auch in während der Hardwareinbetriebnahme auf
> ausgedruckten Schaltplänen herum, ebenso auch andere Akteure. Solch ein
> wichtiges Dokument wird anschließend natürlich gescannt (oder
> behelfsweise mit der Digitalkamera fotografiert) und ins
> Versionskontrollsystem eingecheckt.

Jup, da unterscheidet uns nix.

>> c) textuelle Beschreibung der Unterschiede
>
> Diese textuellen Beschreibungen gehören in den Checkin-Kommentar.
> Natürlich kann und soll man auch separate Textdokumente versionieren.

HM, Checkin-Kommentare haben den Nachteil das man das CVS-frontend 
braucht um sie lesen zu können. Und oft sind's halt Referenzen auf 
andere Dokumente die ein Aussenstehender nicht kennt. Beispiel "Bugfix 
für BugReport A123 (Screen-Freeze bei unvollständigen umount" Da lob ich 
mir eine Änderungbeschreibung die mit den Worten des Anwenders 
geschrieben ist.

> Ein weiterer, sich als äußerst praktikabel erweisender Weg besteht
> darin, solche Beschreibungen in einem Wiki zu pflegen. Wenn das Wiki mit
> dem Versionskontrollsystem gekoppelt ist (z.B. Trac mit Subversion,
> JIRA/Confluence mit div. VCS), sieht man auch gleich den Zusammenhang
> zwischen Originalstand, nachträglichen Änderungen, zugehörigen Tickets
> und Checkins.

Wiki hab ich nich auf dem Schirm, guter Tipp. Nachteil ist wieder das 
man Computer/Netzwerkzugang braucht um es zu lesen.

>> Es heisst ja nicht das CVS/SVN komplett untauglich ist, man kann damit
>> schon Datensätze zeitstempel basiert erhalten und rekonstruieren.
>
> So etwas sollte man aber nur im Sinne einer Lamport-Uhr betrachten.
?Kenn ich nicht!

>
>> Aber
>> zur Dokumentation von Änderungen ist es in der Hardwareentwicklung oft
>> unzureichend, da bedient man sich doch der klassischen tools.
>
> Was nützt es, irgendwelche Änderungen nur in Papierform zu notieren,
> wenn sie z.B. auch für künftige Layoutversionen benötigt werden? Ach ja,
> man kann versuchen, sich wichtig oder unersetzbar zu machen, indem man
> solche Änderungslisten nur in seinem eigenen Schrank hortet, so dass
> Dritte nicht erfahren, was geändert wurde. Wenn ich so etwas bemerke,
> werde ich etwas ungehalten.

Klare Ansage: Ich spreche hier nicht von Papier als einzige 
Datenhaltung. Auch nicht von Schrank, solche Dokumente gehören gescannt 
ins Dokumentationsverzeichniss. Alle Konstruktionsdaten müssen auch bei 
Abwesentheit verfügbar sein.

Ungehalten werde ich wenn ein Konstrukteur erst stundenlang Datensätze 
aus der Revisions/Konfigurationsverwaltung holen und mit der passende 
Software in ein verständliche Dokuement konvertieren muss um die 
Hauptunterschiede benennen zu können. Oder diesen Vorgang bei der 
nächsten Nachfrage Wochenspäter wiederholen muss.

In der Softwarentwicklung geht das noch - aus einem diff lesen zu können 
was geändert wurde. Bei Schaltplänen ist es mir noch nicht gelungen aus 
einem CVS-diff zu erkennen das beispielsweise nur die Steckerplatzierung 
leicht verändert wurde.

>> Nicht
>> jedes Problem wird durch Computereinsatz kleiner, manchmal entsteht es
>> erst durch eine Sklavische Fixierung auf Softwaretools.
>
> Das stimmt durchaus. Auf den konkreten Fall angewandt ist es jedoch
> Unsinn. Handschriftliche Notizen sind wichtig für kurzfristige Zwecke,
> aber nicht für die langfristige Pflege eines Projektes.

Doch auch langfristig muss man die Unterschiede zwischen den 
Hardwarerevisionen benennen können. Da macht man es sich mit 
persönlichen Notizen die natürlich auch gescannt abgelegt sind, 
leichter.

>> Auch in der Softwareentwicklung ist IMHO eine Änderung besser in Worten
>> beschrieben
>
> Klar, der Compiler kann natürlich unglaublich viel mit einem
> ausgedruckten Quellcode anfangen, auf dem handschriftliche Notizen
> angebracht sind...

Ich meine ja Hardware-Sourcen aka Schematic; die bekommt ja 
üblicherweise kein Compiler vorgeworfen. Das ist ja der grosse 
Unterschied zwischen Software- und Hardwareänderungsbeschreibung. Die 
Hardwareänderung macht ein Mensch oder die Maschine die von einem 
Menschen eingerichtet wird. Der muss die Änderungsbeschreibung 
verstehen, deshalb sollte es diese auch menschenlesbar geben.

>> (Optimierung auf Systeme mit weniger Speicher) als mit
>> (nackten) Diff-Auszug.
>
> Speicherplatz ist auf Entwicklungsrechnern heutzutage überhaupt kein
> Problem mehr. Da geht es vielmehr um Nachverfolgbarkeit von Änderungen.

Du hast mich falsch verstanden, ich meinte das als Beispiel für die 
textuellen Änderungsbeschreibung eine Softwareänderung.

von C.R. (Gast)


Lesenswert?

Na ja fertig ist man erst wenn man es Serienreif hat...

ABER dann hat man da noch eine Produktverbesserung da noch eine Änderung 
etc.

Es geht ja um die Versionskontrolle auf dem weg der entsprechenden 
Iterationsschritte...

Und kosten darf es auch alles nix.

Wenn man bedenkt das Pulsonix mit Vault so etwas bereits unterstützt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.