Sollten wir die Spezifikationsdokumente in ein Quellcodeverwaltungssystem wie svn einfügen?

11

Heute haben einer meiner Kollegen und ich eine Debatte über "Sollten wir die Spezifikationsdokumente in ein Quellcodeverwaltungssystem wie SVN einfügen?". Meiner Meinung nach sollte es sein. Alles, was mit der Entwicklung eines Projekts zu tun hat, sollte sorgfältig mit dem Quellcodeverwaltungssystem kontrolliert werden. Ist es ein falsches Konzept im Softwareentwicklungsprozess?

Edison Chuang
quelle

Antworten:

4

Was ist, wenn die meisten Versionsverwaltungssysteme sie nur als Blobs speichern? Die meisten Leute geben keinen Hinweis auf die Unterschiede zwischen den Dokumenten, aber wenn Sie dies tun, können Sie immer zwei Versionen erhalten und die Funktion des Authoring-Systems verwenden, um sie zu unterscheiden.

SnoopDougieDoug
quelle
2
Es stimmt, ich bin froh, wenn SVN nur sicherstellt, dass ich immer die aktuelle Version habe. Diffs sind die meiste Zeit weniger wichtig.
Zachary K
Das ist nicht das einzige Problem. Das Sperren und Überschreiben von Änderungen ist ein Problem, wenn mehrere Editoren vorhanden sind
Nicole
1
Unterschiedliche Dokumente sind für Sie nicht wichtig. Für einen PM ist es jedoch sehr wichtig, Änderungen in den Spezifikationen zu erkennen.
Martin York
Diese Antwort scheint eher ein Kommentar zu einer anderen Antwort zu sein. Zum Beispiel erwähnt die Frage nichts über Blobs.
Bryan Oakley
15

Bei einem Festplattenspeicher von ein paar Cent pro Gigabyte und Monat gibt es keinen guten Grund, keine Dokumente in das Quellcodeverwaltungssystem zu stellen, und dies ist wahrscheinlich nützlich. Meine persönliche Präferenz ist es, Dokumente mit Inline-Markup zu schreiben, z. B. Wiki-Markup oder DocBook . Dies ermöglicht die Verwendung leistungsstarker Tools zum Vergleichen und Überarbeiten von Dokumenten.

Kevin Cline
quelle
3
Wenn nichts anderes, ist es amüsant zu sehen, wie v1.0 der Spezifikationen im Vergleich zu welchen Schiffen aussah!
Martin Beckett
8

Die Versionierung von Spezifikationsdokumenten ist definitiv ein würdiges Ziel.

Sind Ihre Spezifikationsdokumente jedoch nur in Textform und in einer Nur- Text-Datei ? Wenn ja, kann dies eine gute Lösung sein.

Wenn nicht, ist die Quellcodeverwaltung wahrscheinlich nicht der richtige Ort für sie - die Quellcodeverwaltung ist schlecht für Binärdateien .

Normalerweise eignen sich Nur-Text-Dateien weder zum Formatieren noch zum schnellen Anzeigen. Daher ist ein Wiki mit Versionierung wahrscheinlich die bessere Idee.

Nicole
quelle
Normalerweise enthält unser Dokument nicht nur Nur-Text-Inhalte, sondern auch Bilder wie UML-Diagramme oder ähnliches. Ich stimme voll und ganz zu, dass binär formatierte Dateien nicht für das Quellcodeverwaltungssystem geeignet sind. Ich denke jedoch, dass es besser als nichts ist. richtig? Wenn es ein Wiki gäbe, könnten wir es übernehmen. Das wäre toll. Aber ich mache mir darüber Sorgen. Unsere Leute wären "zu beschäftigt", um zu lernen, wie man Wiki benutzt. (Traurig)
Edison Chuang
1
Es gibt heutzutage viele Wikis mit WYSIWYG-Editoren. Ich bin ein sehr widerstrebender Sharepoint-Konverter. Als Entwickler hasste ich Sharepoint aus Leidenschaft. Dann habe ich mich bei Microsoft BPOS angemeldet, das mit Sharepoint geliefert wird, und es für die Zusammenarbeit bei Projekten mit Remote-Teammitgliedern verwendet. Es verfügt über Wiki, Foren, Kalender und Dokumentbibliotheken (die die Nachverfolgung von Microsoft Office-Dokumenten durchführen) und eine Reihe anderer Dinge, die die Projektzusammenarbeit zum Kinderspiel machen. Ich denke, ein Wiki als lebendige Spezifikation ist aufgrund der Geschichte, die es bietet, perfekt.
Michael Brown
Genau genommen ist die Quellcodeverwaltung für Binärdateien nicht schlecht. Es ist nicht so, dass es sie auf irgendeine Weise zerstört oder mutiert. Binärdateien sind jedoch möglicherweise schlecht für die Quellcodeverwaltung, aber nur, weil sie viel Speicherplatz beanspruchen und das Klonen verlangsamen. Der Speicherplatz ist jedoch billig, daher ist er nicht so schlecht wie noch vor fünf Jahren.
Bryan Oakley
1

Alle Dokumente sollten in irgendeiner Form archiviert sein (vorzugsweise mit Revisionskontrollen).

Versionsverwaltungssysteme sind eine Lösung. Normalerweise sind diese Systeme jedoch für Nur-Text-Dokumente ausgelegt. Daher passen Dinge wie Word- oder RTF-Dokumente usw. nicht so gut (insbesondere, wenn Sie versuchen, verschiedene Versionen zu vergleichen).

Es gibt jedoch auch andere Lösungen, die speziell für Dokumente entwickelt wurden. SharePoint fällt mir ein, aber ich bin mir sicher, dass es noch andere gibt.

Martin York
quelle
0

Bestimmt. Das Problem, dass Dokumente als Binärdateien gespeichert werden (z. B. Word-Dokumente), ist ärgerlich. Eine gute Problemumgehung ist, wenn Sie eines der Tortoise-Tools verwenden (ich habe SVN und Mercurial ausprobiert), können Sie "Visual Diff" auswählen, mit dem Sie docdiff auswählen können. Mit docdiff können Sie alle Änderungen mit Farben und Sachen sehen :-). Der Hauptnachteil besteht darin, dass jedes Mal, wenn Sie eine Änderung vornehmen, das gesamte Dokument erneut festgeschrieben wird (nicht nur die Änderung). Aber wenn man bedenkt, dass Textdokumente normalerweise nicht sehr groß sind und der Speicherplatz wahrscheinlich nicht Ihr Hauptproblem ist, ist dies kein Problem.

Ich bin sicher, Sie können docdiff ohne Tortoise verwenden. Ich habe es nur nicht ausprobiert.

Omar Kohl
quelle
Das Problem "Änderungen von mehreren Editoren überschreiben" wird jedoch nicht behoben.
Omar Kohl
0

Es gibt einen alternativen Ansatz, den Sie diskutieren sollten: BDD

Bitte berücksichtigen Sie die verhaltensgesteuerte Entwicklung mit ausführbaren Spezifikationen. Ihre Spezifikationen werden in eine Reihe von Given - When - Then-Anweisungen vereinfacht, die in Textdateien gespeichert sind. Ein BDD-Tool wie Cucumber oder SpecFlow konvertiert diese Textdateien in ausführbare Tests, die Ihr Build-Tool ausführen kann.

Gurke: http://cukes.info/ - BDD für Ruby

SpecFlow: http://www.specflow.org/ - BDD für .Net

Eine schnelle Demo des Workflows mit einem Tool wie SpecFlow finden Sie in Rob Conerys SpecFlow-Anleitung: http://tekpub.com/view/concepts/5

Jetzt versionieren Sie nicht nur Ihren Code, sondern auch Ihre Spezifikationen, und Ihr Continuous Integration-Tool (denken Sie an TeamCity, CruiseControl, Hudson usw.) erzwingt, dass alle Spezifikationen für JEDEN Build noch gültig sind ... Ist das für Sie wertvoll?

Jeff Fritz
quelle