So fördern Sie die Einführung der Versionskontrolle

21

Ich habe kürzlich begonnen, in einem Team zu arbeiten, in dem es keine Versionskontrolle gibt. Die meisten Teammitglieder sind an keinerlei Versionskontrolle gewöhnt. Ich habe Mercurial privat verwendet, um meine Arbeit zu verfolgen. Ich möchte andere dazu ermutigen, es zu übernehmen und zumindest damit zu beginnen, ihren Code zu versionieren, während sie Änderungen entwickeln. Kann mir jemand einen Rat geben, wie ich die Einführung einer verteilten Versionskontrolle wie Mercurial fördern kann? Jeder Rat, wie man Leute wie Manager für DVCS gewinnen kann, wäre sehr willkommen.

Man Wa kileleshwa
quelle
4
Ich würde eine Antwort hinzufügen, aber ich kann nicht. Ich bin sprachlos (oder eher typlos). Es ist fast 40 Jahre her, dass SCCS zum ersten Mal aufgetaucht ist. Gibt es noch Organisationen, die die Versionskontrolle nur für das einfachste Projekt einsetzen? (Heutzutage ist es das andere Extrem; einige Leute haben ihr Heimatverzeichnis als Git-Repository.)
David Hammen
11
Ermutige es nicht; Verlange es.
Steven Evers
1
Die Firma, mit der ich jetzt zusammenarbeite, konsultiert weitaus größere Firmen als wir und ich muss noch auf eine stoßen, die die Quellcodeverwaltung verwendet. Das erste, was wir normalerweise tun, ist, dass sie es einrichten, damit wir es verwenden können, um ihre und unsere Änderungen zu integrieren und zu verwalten. Wie @SnOrfus sagte, fordern Sie es. Sie können auch auf die gesamte Dokumentation verweisen, die als bewährte Methode aufgeführt ist.
Joshua Dale
7
Ich bin bei SnOrfus. Es gibt einige gute Antworten hier, aber letztlich, wenn Sie nicht über eine positive Reaktion erhalten sofort , es ist Zeit zu gehen. Wie David Hammen bin ich sprachlos, dass sich jeder Entwickler 2011 in einer Situation befindet, in der er sich mit einem solchen Problem befassen muss. Fehlende Versionskontrolle ist eine Fehlfunktion, die einfach nicht akzeptabel ist.
Carson63000
2
Schleichen Sie sich in eine Nacht und löschen Sie ihre Festplatten. Nein Entschuldigung. Vorübergehende Beeinträchtigung der Professionalität.
DJClayworth

Antworten:

7

Sie müssen die Verwendung der Versionskontrolle begründen und zuerst versuchen, sie an Ihre Mitarbeiter zu verkaufen. Wenn dies fehlschlägt, müssen Sie die Kette zur Projektleitung und höher hochfahren.

Für Kollegen, die Softwareentwickler sind, sollte sich Ihr Fall darauf konzentrieren, wie sich auf lange Sicht Zeit und Kopfschmerzen sparen lassen. Finden Sie Zeiten aus Ihrer eigenen Vergangenheit oder veröffentlichte Geschichten (Blogs, Artikel in Magazinen, Whitepapers), in denen Sie erfahren, wie die Verwendung der Versionskontrolle Ihr Leben erleichtert. Wenn Sie sich wegen fehlender Versionskontrolle verbrannt haben, machen Sie es persönlich. Wenn Ihre Kollegen in der gleichen Situation waren, sollten sie das Licht sehen und sehen, wie diese Tools ihnen helfen können.

Dies ist Ihre beste Wette. Obwohl ich die Quelle (n) derzeit nicht finden kann, habe ich (an einigen Stellen) gelesen, dass die effektivsten Änderungen an der Verarbeitung von den Entwicklern stammen, die sich mit den Änderungen befassen müssen. Wenn Sie die Entwickler einbeziehen können, erreichen Sie zwei Dinge. Erstens haben Sie bereits das Buy-in der Personen, die von der Prozessänderung betroffen sind. Zweitens gibt es eine Gruppe von Leuten, die das Management davon überzeugen, dass dies eine lohnende Anstrengung ist und das Produkt und das Projekt verbessern wird.

Wenn Sie jedoch nicht die Unterstützung des Entwicklerteams erhalten können und immer noch sehr stark an der Bereitstellung der Versionskontrolle interessiert sind, können Sie zum Management aufsteigen. Aber es wird riskanter, wenn Sie alleine unterwegs sind, da Sie sich nicht nur um den Verkauf der Verbesserung sorgen müssen, sondern auch um das Spiel Ihrer Kollegen.

Bei der Projekt-, Programm- und Organisationsverwaltung muss es darum gehen, wie durch die Bereitstellung der Versionskontrolle Zeit und Geld für die Organisation gespart werden können. Die Leute auf dieser Ebene kümmern sich darum, wie viel Geld das Projekt kostet, wo es im Vergleich zu Schätzungen steht und so weiter. Suchen Sie nach Whitepapers, Büchern, Artikeln und anderen professionellen Dokumenten und Veröffentlichungen, in denen erläutert wird, wie die Bereitstellung der Versionskontrolle anderen Organisationen auf lange Sicht Zeit und Geld gespart hat. Sie können hier auch eine Qualitätsperspektive einführen, wenn Ihre Organisation an Softwarequalität interessiert ist.

Sie haben ausdrücklich erwähnt, dass Sie ein verteiltes Versionskontrollsystem verwenden möchten. Erzwingen Sie das nicht im Team oder in der Organisation. Machen Sie sie mit der Versionskontrolle und ihren Optionen vertraut. Auch wenn Sie persönlich einen DVCS (wie Mercurial) bevorzugen, passt dieser möglicherweise nicht optimal zu Ihrem Team und Ihrer Organisation. Die Verwendung eines Werkzeugs mit falscher Passform verschlimmert die Situation nur durch Schlagen.

Beachten Sie auch die Risiken einer verspäteten Prozesseinführung . Obwohl die Verwendung der Versionskontrolle eine allgemein anerkannte bewährte Methode ist, ist es möglicherweise zu spät, sie effektiv in das aktuelle Projekt einzuführen, ohne dass ein großes Risiko für den Projektabschluss besteht. Stattdessen würde ich empfehlen, den Status Quo für zukünftige Projekte und Teams zu verbessern.

Dies ist auch ein allgemeiner Ansatz, den Sie bei der Durchführung von Prozess- oder Technologieverbesserungen verfolgen können.

Thomas Owens
quelle
5

Die erste Frage ist: Was machen sie aktuell? Sicherlich hat nicht jeder Entwickler den Quellcode auf seine eigene Box geklebt, den er nach Belieben ändert. Sobald Sie den Prozess kennen, dem sie derzeit folgen, können Sie einige Tools vorschlagen, die diesen Prozess verbessern. In der Regel ist ein SCM ideal, um sie dabei zu unterstützen, anstatt sie dazu zu bringen, einem anderen Prozess zu folgen.

Der wichtigste Punkt hier ist, wenn sie eine Pseudo-SCM-Arbeitsweise haben, vielleicht die aktuelle Version auf einem Server irgendwo speichern, dann müssen Sie feststellen, ob ein DVCS oder ein CVS angemessener ist, versuchen Sie nicht, sie Mercurial zu verkaufen wenn SVN besser passt.

gbjbaanb
quelle
3

Der schnellste Weg ist, das Management davon zu überzeugen, dass es gebraucht wird.

Mach ein paar Berechnungen:

Kosten für Software zur Versionskontrolle - kostenlos.
Hardwarekosten für die Unterstützung des Repository - ein Server.
Implementierungskosten für Software - ein paar Manntage für ein kleines Team, steigende Kosten für größere Teams.

Kosten für die Nichtimplementierung der Versionskontrolle:

Bester Fall - verlorene Tage aufgrund von fehlenden Änderungen, gegenseitigem Überschreiben von Änderungen usw., wiederkehrenden Fehlern und so weiter.
Der schlimmste Fall - wie viele Mannjahre Ihr Team bisher aufgewendet hat.

Diese letztere Zahl ist das Worst-Case-Szenario, in dem Sie Ihre gesamte Arbeit aufgrund eines Serverausfalls usw. verlieren. Aber auch die "Best-Case" -Szenarien sollten Ihnen zeigen, warum dies erforderlich ist. Die Kosten für wiederkehrende Fehler könnten höher sein, da dies zu Kundenverlusten führen könnte.

Das Entwicklungsteam sollte diese Kosten auch verstehen und angesichts der Tatsache, dass die meisten (wenn nicht alle) Softwareprodukte zur Versionskontrolle heutzutage nahtlos in IDEs integriert sind, werden sie nicht einmal bemerken, dass sie die meiste Zeit dort sind.

ChrisF
quelle
Die Kosten für die Versionskontrollsoftware sind nicht kostenlos. Die Software selbst ist möglicherweise kostenlos (abhängig von Ihrer Auswahl), aber in einer Organisation, in der es nichts gibt, müssen die Ingenieure geschult werden. Möglicherweise müssen die Repositorys über Hardware verfügen, und wenn die Organisation sie für alle bereitstellt, Erhöhung der IT-Mittel zur Unterstützung der neuen Hardware- und Softwareanforderungen. Ganz zu schweigen von dem hohen Risiko, dass Prozesse erst spät in einem Projekt bereitgestellt werden.
Thomas Owens
@ Thomas - daher meine Einschätzung der Kosten für die Implementierung (was wahrscheinlich eine Unterschätzung ist)
ChrisF
Die Bearbeitung macht es viel besser.
Thomas Owens
1

Das Management legt normalerweise größten Wert darauf, Geld zu sparen. Betonen Sie, wie die Versionskontrolle das Team finanziell unterstützen kann, und Sie werden sofort auf sie aufmerksam!

rrazd
quelle
Management tut es, aber es ist immer einfacher, die Aufmerksamkeit des Managements zu erregen, wenn eine Gruppe von Menschen etwas sagt, anstatt eine Einzelperson.
Thomas Owens
@ Thomas in der Tat, mehr Stimmen verursachen mehr Lärm und damit eher die Aufmerksamkeit des Managements zu bekommen
rrazd
1

Es gibt einen Aspekt, den andere Leute hier noch nicht angesprochen haben. Ich glaube, Sie haben es in der Ecke - Sie sprechen von verteilter Versionskontrolle -, von Natur aus können Sie sich in eine De-facto-Praxis einschleichen, einen Entwickler zu einer Zeit. Mit einer komplexeren Versionskontrolle, wie wir sie in meinem Büro verwenden (MS Visual SourceSafe), fällt es Ihnen schwer, auf den Typen im Würfel gegenüber von mir zuzugehen und ihn eins zu eins zu verkaufen Versionskontrolle. Bei (jedem) DVCS können Sie jedoch einfach sagen: "Hey, probieren Sie es aus und sehen Sie, ob es Ihnen gefällt. Ich zeige Ihnen die Seile, und ich beantworte gerne alle Fragen, führe Sie durch, bla bla bla ". Auf diese Weise brauchen Sie keinen "Prozess" von oben nach unten, Sie können ein Basis-Mandat aufbauen, eine Person nach der anderen.

Nate
quelle
0

Aufbauend auf der Antwort von gbjbaanb.

Das Wichtigste dabei ist, dass Sie den Versionskontrollprozess an den vorhandenen Prozess anpassen und zeigen, wie der Rest der Teamarbeit gespart wird.

Ich persönlich bevorzuge Mercurial auch, aber ich würde es nicht unbedingt Leuten aufzwingen wollen, die nicht an Versionskontrolle gewöhnt sind, weil es ein wenig schwieriger zu verstehen ist als ein altmodisches Server-basiertes Versionskontrollsystem. Das heißt, wenn es eine echte grüne Wiese ist, ist es vielleicht das Beste, das ganze Schwein zu machen, die 80er und 90er Jahre zu überspringen und Mercurial zu wählen. Ich würde mir auch einige Software-Lifecycle-Produkte von Drittanbietern ansehen, die rund um Mercurial entwickelt wurden - ich bin mir sicher, dass es eines gibt, aber der Name entgeht mir;)

Ich vermute, dass Sie für ein kleines Unternehmen arbeiten und dass Sie relativ neu im Team sind, so dass es möglicherweise schwer zu verkaufen ist - insbesondere, wenn der Rest des Teams fest verwurzelt ist und das Vertrauen des Managements besitzt. Vielleicht ist es das Beste, sie etwas schlecht stopfen zu lassen und dann zur Rettung zu kommen. Das bedeutet keine Sabotage, warten Sie nur auf das Unvermeidliche.

mcottle
quelle
Vielen Dank für all Ihre Antworten. Kann aus dieser Frage eine Community-Frage gemacht werden? Die Mächte, die es sein werden, lassen mich einen kurzen Vortrag / eine kurze Demo 15 Minuten darüber halten, wie ich es benutzt habe. Eine Hürde ist, wer es nutzt? Handelt es sich um Shareware / Bloatware außerhalb des Internets? Ich möchte Ängste beruhigen, indem ich auf einige bekannte Unternehmen hinweise, die Mercurial (jedes DCVS) kommerziell einsetzen / unterstützen. Kann mir jemand helfen, einige Unternehmen zu nennen, die Hg nutzen? Oder ein anderes bekanntes Produkt, das es verwendet. Es gibt Widerstand (unausgesprochene Augen glasig) gegen Open Source, einige Manager scheinen misstrauisch gegenüber Software zu sein, für die sie nicht bezahlen.
Man Wa Kileleshwa