Boss ist skeptisch, ein Versionskontrollsystem für ein neues Projekt zu verwenden, sollte ich das trotzdem tun?

9

Siehe /software/109817/superior-refusing-to-use-subversion

Meine Frage ist ähnlich, aber hier sind die Hauptunterschiede in meinem Szenario:

  • Wir starten ein neues Projekt von Grund auf mit PHP und Web-Technologie. Es würde keine Ausfallzeit in der Entwicklung geben, da wir sie von Anfang an übernehmen würden, wenn ich meinen Willen hätte.

  • Mein Entwicklerteam besteht aus mir und meinem Chef. Wir sind die "IT" -Abteilung eines relativ kleinen Unternehmens.

Die Web-App ersetzt eine Legacy-Anwendung ohne Quellcodeverwaltung. Aufgrund unterschiedlicher geografischer gesetzlicher Anforderungen wurde (bevor ich eingestellt wurde) die Entscheidung getroffen, die App für jede Version in 7 vollständig separate Verzeichnisse zu unterteilen. Danach haben verschiedene Entwickler zu unterschiedlichen Zeiten an verschiedenen Orten unterschiedliche Dinge getan. Patches über sie hinweg patchen, nun, ich denke, es könnte besser gemacht werden, ich denke, deshalb poste ich.

Der Vorschlag meines Chefs, direkt aus einer E-Mail eingefügt:

  • Aktualisierungen sollten als Pakete im Ordner SUBMISSIONS eingereicht werden. Das Paket sollte alle relevanten Dateien sowie eine 'UPDATE.NFO'-Datei enthalten, die eine Beschreibung des Updates, eine Liste aller neuen Dateien (mit Beschreibungen) und eine Liste aller geänderten Dateien mit Änderungsdetails enthält.

  • Aktualisierungspakete sollten sich auf ein einzelnes Element konzentrieren und nicht vom beabsichtigten Zweck abweichen. Der Code sollte modular aufgebaut und nach Möglichkeit wiederverwendbar sein.

  • Alle eingereichten Pakete sollten kurz nach der Übermittlung in der Testumgebung jedes Entwicklers installiert werden. Jeder Entwickler muss den neuen Zusatz überprüfen und alle Bedenken hinsichtlich seiner Installation in der Produktionsumgebung äußern. Ein Standardpaket-Update sollte für diesen Überprüfungsprozess mindestens 3 Werktage lang aufbewahrt werden, bevor es in die Produktionsumgebung geladen wird. Updates / Fixes mit hoher Priorität können diese Anforderung überspringen.

Der Grund, warum die Quellcodeverwaltung erfunden wurde, ist, all das automatisch zu machen, oder? Ich schlug Subversion vor, weil ich das im College verwendet habe. Boss mag Subversion nicht, weil "es den Code durcheinander bringt" (dh binäre Magie verwendet und nicht klar lesbar ist). Wir haben es einmal versucht, aber ich denke, der Versuch, es unter Windows zu verwenden, hat seltsame Fehler in Klein- / Großbuchstaben verursacht und wir konnten unsere Dateien nicht auschecken. Ich weiß nicht, ob nur Subversion oder alle Quellcodeverwaltungsprodukte zu beanstanden sind.

Also, welche Art von Argument sollte ich meinem Chef vorbringen? Oder hat er recht und es besteht die Gefahr, dass wir all unsere Arbeit durch einen seltsamen Fehler verlieren?

Oder irre ich mich überhaupt? Ist eine Quellcodeverwaltung in meiner Situation wirklich notwendig? Dies ist unsere wichtigste geschäftskritische Software, über die wir sprechen. Sie wird also zweifellos sehr groß ausfallen. Aber es gibt nur 2 Entwickler (jetzt).

Wenn ich ihn nicht überzeugen kann, hätte es dann Sinn, es nur für mich selbst zu verwenden? Ich spreche als jemand mit sehr begrenzter Erfahrung, der tatsächlich svn benutzt. Alles was ich wirklich weiß ist Auschecken und Festschreiben. Welche Funktionen der Quellcodeverwaltung (möglicherweise auch andere Produkte als svn) unterstützen meine individuellen Entwicklungsanstrengungen?

Bitte keine "einen anderen Job bekommen" -Kommentare. Das ist für die Debatte nicht hilfreich.

DFPercush
quelle
25
"Und bitte keine" Holen Sie sich einen anderen Job "-Kommentare." Warum nicht? Ihr Chef ist zum Scheitern verurteilt.
S.Lott
9
Auch wenn Sie ihn nicht überzeugen können, ist es dennoch nützlich, es privat für sich selbst zu verwenden. So können Sie Ihre Dateien ohne Angst frei bearbeiten. Sie haben eine Reihe von "Speicherpunkten" für die Dateien, an denen Sie arbeiten. Selbst wenn Sie SVN auf Ihrer lokalen Box haben müssen ... besser als gar nichts.
Lord Tydus
10
@ S.Lott, ich denke, das OP hat das Recht, die Grenzen der Frage festzulegen. "Einen anderen Job bekommen" ist zum Beispiel nicht möglich, wenn das OP in einem kleinen Land lebt und sein / ihr Vater / ihre Schwiegermutter der Chef eines Jobs ist, bei dem das OP doppelt oder dreifach bezahlt wird, was sie ' auf dem freien Markt wert. Kurz gesagt, es ist nicht Teil der Frage.
Dan Rosenstark
8
@ S.Lott I, on the other hand, think that the OP is being silly in trying to specify the bounds on the answer....Nun, die spezifische Grenze ist überhaupt nicht albern. Karriereberatung ist kein Thema, und obwohl eine Antwort, die die Frage beantwortet und Karriereberatung anbietet, für mich vollkommen in Ordnung ist, halte ich es nicht für dumm , wenn OP angibt, dass er sich nicht für Karriereberatung interessiert.
Yannis
9
@ S.Lott Was ich andererseits albern finde, ist Karriereberatung an sich, besonders wenn es "nach einem anderen Job suchen" ist. Es gibt so viele unbekannte Variablen, dass ich es unmöglich finde, solche Ratschläge ernst zu nehmen.
Yannis

Antworten:

35

Frag ihn nicht. Sag es ihm nicht. Zeige ihm.

Installieren Sie svn oder git oder was auch immer Sie möchten auf einem zusätzlichen Computer. Üben Sie es selbst, bis Sie sich wohl fühlen, es nicht nur zu benutzen, sondern es zu erklären. Wenn Sie ihn mit Ihrem neuen System vertraut machen möchten, müssen Sie selbst mehr als vertraut damit sein. Sie müssen ihm helfen können, sich leicht zu erholen, wenn er eine Zusammenführung vermasselt oder etwas an der falschen Stelle eincheckt.

Wenn Sie bereit sind, zeigen Sie ihm genau, wovon Sie sprechen. Zeigen Sie ihm, dass es nichts "durcheinander bringt". Weisen Sie darauf hin, dass Sie damit nicht nur problemlos eine frühere Version Ihres Codes abrufen können, sondern auch genau wissen können, was sich zwischen zwei Versionen geändert hat.

Weisen Sie darauf hin, dass Sie beide wie Helden aussehen , wenn dem Server jemals etwas passiert (schwerwiegender Fehler, Virus, Hacker, Festplattenabsturz ...) , wenn Sie die erforderliche Version sofort rekonstruieren können. Weisen Sie auch darauf hin, dass Sie doppelt so gut aussehen, wenn Sie eine beliebige Version auf Anfrage produzieren können. Durchsuchen Sie Ihre alte E-Mail und stellen Sie eine Liste der Probleme zusammen, die Sie im letzten Jahr hatten und die Sie mit der Versionskontrolle hätten vermeiden können.

Geben Sie ihm einen Spickzettel, der ihm die Verwendung Ihres Versionskontrollsystems erleichtert .

Schlagen Sie schließlich einige Optionen vor, aber überlassen Sie die Entscheidung ihm . Sollten Sie Ihren eigenen Server einrichten oder einen der vielen gehosteten Dienste verwenden ? Solltest du svn, git oder etwas anderes verwenden? Sollten Sie alle sieben Projekte auf das System migrieren oder es zunächst mit einem oder zwei versuchen?

Caleb
quelle
9
+1 für "nicht erzählen, zeigen (nach dem Training)"
Javier
2
Aber wie jemand sagte, verwenden Sie es für Ihre eigene Kopie
0fnt
3
+1 fürsearch your old e-mail and compile a list of problems you've had over the past year that you could have avoided with version control.
Daenyth
Außerdem ist das Anzeigen möglicherweise einfacher, wenn etwas zu zeigen ist. Ich würde empfehlen, etwas mit einer GUI zu verwenden, wie z . B. SourceTree für Git. Auf diese Weise sieht es weniger einschüchternd aus, es ist einfacher zu lernen, niemand muss befürchten, das gesamte System mit einem kleinen Tippfehler durcheinander zu bringen, und es ist so ziemlich bereits eine grafische Version des von Ihnen erwähnten Spickzettel.
R. Schmitz
28

Die Vorteile der Quellcodeverwaltung gehen weit über die Möglichkeit hinaus, dass mehrere Entwickler an einem einzigen Code arbeiten. Eric Sink, der Gründer von SourceGear , nennt einige überzeugende Gründe, die Quellcodeverwaltung als alleinigen Entwickler zu verwenden :

- It's an undo mechanism.
- It's a historical archive.
- It's a reference point for diff.
- It's a backup.
- It's a journal of my progress. 
- It's a server. 

Eric hat auch eine sehr nette Anleitung zur Quellcodeverwaltung für Anfänger . Es gibt ein kostenloses Online- Mercurial-Tutorial von Joel Spolsky. Mercurial ist ein beliebtes verteiltes Versionskontrollsystem.

Als nächsten Schritt empfehle ich Ihnen, die Quellcodeverwaltung als alleiniger Entwickler lokal auf Ihrem Computer zu verwenden. Sehr bald wird Ihr Chef bemerken, dass Sie zu purer Magie fähig sind, beispielsweise innerhalb von Minuten, wenn nicht Sekunden, zu sagen, wie weit ein überkritischer Fehler zurückreicht, und dann würden Sie ihm genau sagen, welche Kundenkonten betroffen waren und vor allem behoben werden müssen Hölle bricht los. Oder in der Lage zu sein, Änderungen rückgängig zu machen, missbilligt der CEO superschnell.

Und bevor Sie versuchen, Ihren Chef zu überzeugen, möchten Sie sich vielleicht mit dem Thema Umgang mit Einwänden befassen . Es sind 101 Verkäufe.

Wenn dies nicht gelingt, fahren Sie so schnell wie möglich fort. Es macht nicht viel Sinn, Ihre Zeit damit zu verschwenden, an Windmühlen zu kippen.

Vlad Gudim
quelle
1
+1 für den Artikel von Eric Sink. +1 für den Vorschlag von hg. git ist der letzte Schrei, aber die Frage besagt eindeutig, dass op ein Anfänger in der Quellcodeverwaltung ist und hg ein bisschen einfacher zu erlernen ist als git. +1 für das hg-Tutorial. +1 für die Bereitstellung einer vertriebsorientierten Referenz. So gehen Sie am besten mit spitzen Bossen um (-0,5, da dies ein Google-Suchlink ist). +1 für die Don Quijote Referenz. Dies ist die Art von Antwort, die mich dazu bringt, doppelte Konten zu erstellen, damit ich mehr als einmal abstimmen kann.
Yannis
1
Diese Antwort sagt im Grunde alles. Nur ein weiterer Grund, warum Sie die Quellcodeverwaltung selbst verwenden sollten: Wenn Sie fortfahren, werden einige Erfahrungen mit der Quellcodeverwaltung in Ihrem Lebenslauf gut aussehen. Keine solche Erfahrung zu haben, wird nicht gut aussehen.
Mike Nakis
10

Ja, die Verwendung der Quellcodeverwaltung, auch wenn nur für Sie, lohnt sich auf jeden Fall. Git zum Beispiel funktioniert sehr gut für einen eigenständigen Entwickler und ermöglicht es Ihnen, Dinge wie Verzweigen und Zusammenführen (mit möglichst geringen Kosten) zu tun und Ihre Änderungen zu versionieren, während Sie fortfahren.

Mit SVN - oder wirklich jedem Versionskontrollsystem - können Sie dies auch tun, aber das Zusammenführen ist etwas problematischer.

Dan Rosenstark
quelle
Ich bin mit der Verwendung von Git einverstanden. Ich benutze es für Projekte, auch wenn ich der EINZIGE Entwickler bin.
DanO
Ich fange auch an. Ich würde nicht mit SVN ... aber mit Git ist es so einfach, ein Repo zu erstellen und zu verwalten, ohne sich mit einem Server zu befassen, dass es schwieriger wird, zu rechtfertigen, nicht zu sagen, git initsobald Sie anfangen, an etwas zu arbeiten.
CHao
Ohne das Recht ist .gitignoreein Git Repo grundsätzlich nutzlos. Das ist das einzige , was Sie an Ort und Stelle haben , haben abgesehen vongit init
Dan Rosenstark
" Aber das Zusammenführen ist etwas problematischer " - wenn OP es nur selbst verwendet, wird es nicht viel Zusammenführen geben, oder? Vielleicht wird sein eigener Feature-Zweig wieder mit seinem eigenen Master zusammengeführt, aber jeder Code, den er von seinem Chef erhält, würde lieber ein neues Commit durchführen, oder? Ich habe allerdings keine Erfahrung mit SVN, nur Git.
R. Schmitz
1
"Es wird nicht viel Verschmelzen geben", bis es gibt. Jedes Projekt, auch wenn es sich um ein Hobbyprojekt handelt, erfordert schließlich, dass das Entwicklerteam (das eine Person sein kann) gleichzeitig an zwei Dingen arbeitet. Dann müssen Sie zusammenführen, und irgendwann treten Zusammenführungskonflikte auf.
Dan Rosenstark
5

Wenn ich ihn nicht überzeugen kann, hätte ich dann Sinn, es nur für mich selbst zu verwenden?

Ja. Es ist von Vorteil, es nur für sich selbst zu verwenden. Sie erhalten einen Änderungsverlauf, damit Sie sehen können, was anders ist.

Nein. Es gibt keinen Vorteil, weil Ihr Chef Ihr Projekt zu vielen sinnlosen Nacharbeiten verurteilt hat, weil sie die Dinge verschmutzt haben.

S.Lott
quelle
Sie können nicht nur sehen, was anders ist, sondern innerhalb von zwei Sekunden zwischen einer neuen und einer alten Version wechseln.
Gnasher729
3

Ich empfehle dringend, wie bereits vor der Verwendung von Git erwähnt. Der Grund Nr. 1 ist, dass jedes VCS im Katastrophenfall ein Sicherheitsnetz ist. Suchen Sie nach dem Aufkleber „Im Brandfall: Git Commit, Git Push, Verlassen des Gebäudes“. Der Code kann an einem anderen Ort gespeichert werden, aber nicht in einem Laptop, der kaputt gehen, gestohlen werden kann oder was auch immer ... selbst ein lokaler Netzwerkserver ist nicht der sicherste Ort für etwas so Wertvolles wie Code.

Nummer 2. Rückverfolgbarkeit von Änderungen, wer hat was wann getan usw. Zusammenführen, Rückgängig machen. Nummer 3. Diff das magische Werkzeug für # 2 und viele weitere Fälle. Nummer 4. Zweige Nummer 5. Tagging-Versionen, Releases usw.

Weitere Informationen zu einem der häufigsten Git-Workflows finden Sie hier: https://nvie.com/posts/a-successful-git-branching-model/

Ich weiß, dass die Verwendung von Git zunächst einschüchternd sein kann, aber es ist eine gute Investition für eine Fähigkeit und ein Muss für jedes Entwicklungsteam.

In Bezug auf Ihr Problem mit der Groß- und Kleinschreibung vermeiden Sie die Verwendung von Tortoise. Ich weiß, dass die meisten Leute es als GUI für Git verwenden, da es für SVN sehr häufig war. Daher ist es möglicherweise die erste Wahl, stattdessen die Befehlszeile oder eine andere GUI wie Github Desktop zu verwenden oder der SourceTree von Atlasian.

Daiki
quelle