Ich werde versuchen, Ihnen einige Hinweise zu geben, die auf meinen persönlichen Erfahrungen beruhen.
Einer meiner Teamkollegen, obwohl erfahren, versteht SVN nicht wirklich. Natürlich führen leere Bereiche auf seiner mentalen Karte, die Ozeane von SVN darstellen, dazu, dass er ziemlich seltsame Verwendungsmuster annimmt.
Beispielsweise hatte er die Richtlinie "1 SVN-Festschreibung pro Tag und Entwickler" festgelegt, da sonst "dem Server bald der Speicherplatz ausgehen würde". Als ich ihm erklärte, dass SVN-Commits Deltas sind, keine vollständigen Kopien, antwortete er mit Zweifel und selbst heute bin ich nicht ganz sicher, ob er versteht, was es bedeutet.
Selbst wenn Speicherplatz ein Problem wäre, könnte man immer eine Menge Dateien auf einmal festschreiben, und ich denke, was er vorschlägt, ist die falsche Lösung. Darüber hinaus kann durch das Einchecken großer Binärdateien viel Speicherplatz verschwendet werden, da SVN keine Deltas für Binärdateien speichert. Ein Check-in pro Tag ist ebenfalls schlecht, da Sie gezwungen sind, Änderungen vorzunehmen, die nicht zusammengehören, z. B. wenn Sie mehr als einen Fehler pro Tag beheben.
Die Lösung, die wir in unserem Unternehmen übernommen haben, ist, dass es einen Filter gibt, der alle Festschreibungen mit Binärdateien ablehnt. Wir können das Commit erzwingen, indem wir ein spezielles Schlüsselwort im Check-in-Kommentar verwenden (wir müssen SVN zeigen, dass wir wissen, was wir tun). Ein bis zwei Mal im Jahr archiviert ein Projektmanager alte Zweige und entfernt sie aus dem Repository. Mit dieser Strategie haben wir keine Speicherplatzprobleme, die mir bekannt sind (unser Repository unterstützt mehrere verschiedene Projekte und hat über 100000 Revisionen).
Zusammenfassend könnten Sie ihm sagen, dass Sie ihm zustimmen, dass Speicherplatz ein wichtiges Thema ist, aber auf der anderen Seite darauf hinweisen
- die Wichtigkeit von merkmalsbezogenen Eincheckvorgängen anstelle eines monolithischen täglichen Eincheckvorgangs;
- die Tatsache, dass man durch das Einchecken einer großen Binärdatei pro Tag die Festplatte trotzdem füllen könnte.
Dann können Sie vorschlagen, dass Sie ein Meeting haben (möglicherweise auch mit anderen Entwicklern oder Systemadministratoren), um Strategien zu besprechen, mit denen Sie die Auslastung des Festplattenspeichers unter Kontrolle halten können (z. B. Binärdateifilter, regelmäßige Sicherung und Bereinigung von alten nicht verwendeten Zweigen).
Wir hatten auch einen heftigen Streit darüber, ob die .project-Konfiguration von Eclipse in SVN aufgenommen werden soll. Mein Teamkollege bestand darauf, dass wir sollten, obwohl es zahlreiche sinnlose Konflikte verursacht hat. Ich war dagegen, einzelne Entwicklerkonfigurationsdateien in SVN zu belassen. Schließlich stellte sich heraus, dass mein Teamkollege nach jedem Commit den gesamten Quelltextbaum erneut auschecken musste, um sicherzustellen, dass "Code, der in das Repository geschrieben wurde" funktioniert. Aus diesem Grund behielt er die Projektkonfiguration in SVN so unerbittlich bei - so dass es einfach sein würde, das Projekt erneut zu importieren. Als ich erklärte, dass Commit die Arbeitskopie byteweise mit dem entfernten synchronisiert, was ein erneutes Auschecken unnötig macht, antwortete mein Teamkollege erneut mit Zweifel und winkte schließlich das ganze Problem als unbedeutend ab.
Meiner Meinung nach verschwendet unser Team Zeit, indem es SVN-Konflikte in Projektkonfigurationsdateien löst, die nur entwicklerspezifische Einstellungen enthalten, die für SCM überhaupt nicht freigegeben werden müssen. All diese Unordnung, weil jemand den Prozess auf falsche Annahmen zugeschnitten hat.
Verwenden Sie einen Build-Server? Wir haben einen Build-Server, der das gesamte Projekt auscheckt und es jede Nacht kompiliert. Am nächsten Morgen haben die Tester ein testfertiges Installationsprogramm für das Produkt (wenn der Master-Build ordnungsgemäß ausgeführt wurde) und wir (die Entwickler) haben einen Build-Bericht mit allen Warnungen (und Fehlern, falls vorhanden). Natürlich müssen Sie Standardkonfigurationsdateien für den Build-Server einrichten und einchecken. Jeder Entwickler kann sie dann zusammen mit dem Rest des Projekts auschecken, sie dürfen jedoch keine lokalen Änderungen einchecken .
In diesem Szenario müssen Sie das gesamte Projekt auschecken und es jederzeit erstellen können. Sie vermeiden auch, dass Sie Zeit für das Zusammenführen von Änderungen aufwenden, die eigentlich nicht überprüft werden sollten, da sie nicht Teil des Produkts sind: Das Produkt ist der Master-Build und muss sauber gehalten werden. Wenn jemand den Master-Build bricht (z. B. seine eigene .project-Datei eincheckt), können Sie die Änderungen rückgängig machen oder den Entwickler zwingen, das Problem zu beheben.
Wenn er das Problem erneut aufwirft, können Sie möglicherweise erneut vorschlagen, ein Meeting (möglicherweise mit anderen Entwicklern) abzuhalten und eine gemeinsame Strategie zu finden.
Wie kann ich einen Teamkollegen, der sich als Senior versteht, davon überzeugen, die SVN-Grundlagen besser zu verstehen?
Ich denke, die beste Strategie wäre es, den Konflikt nicht auf eine persönliche Ebene zu bringen, sondern die anstehenden Probleme und möglichen Lösungen zu diskutieren. Wenn Sie den Eindruck haben, dass er eine persönliche Konfrontation sucht, sind hier einige Vorschläge (wiederum aus persönlicher Erfahrung):
- Wie ist Ihre Teamdynamik? Haben Ihre anderen Kollegen eine ähnliche Erfahrung mit diesem Teamkollegen? Es gibt viele kleine, nicht zu explizite Hinweise, die ein Team einem seiner Mitglieder geben kann, um bestimmte Verhaltensweisen (kleine Witze oder Beobachtungen) zu entmutigen und konstruktive Konfrontationen anzuregen (ein Treffen vorzuschlagen oder ein Thema informell während einer Kaffeepause anzusprechen) ). Manchmal kann ein gutes Team ein störendes Element schnell isolieren und die Dinge wieder normalisieren.
- Wie gut ist Ihr Personalmanagement? Wir hatten einen Konfliktfall in unserem Unternehmen und der Personalleiter musste eingreifen, um die Situation zu klären. Es war nicht schön, aber manchmal verschlechtert sich die Arbeitsatmosphäre so sehr, dass es von selbst nicht besser wird. Ich hoffe, das ist nicht Ihr Fall (ich habe noch nicht den Eindruck, dass es so weit gekommen ist), aber es ist immer gut zu wissen, ob Sie eine gute Personalverwaltung haben oder ob Sie Konflikte alleine lösen müssen.
Warum schreibe ich das? Sie sagen, Sie möchten "einen Teamkollegen, der sich als Senior versteht, davon überzeugen, die SVN-Grundlagen besser zu verstehen". Für mich klingt es so, als würde der Konflikt zu persönlich werden. Einige Psychologen behaupten, dass 70% unserer Kommunikation auf der emotionalen Ebene stattfindet. Wenn diese Ebene nicht funktioniert, hören die Leute auf, über Fakten zu sprechen, weil sie zu beschäftigt mit Emotionen sind.
Sie können also nicht nur Ihre Punkte erläutern, sondern auch versuchen, die Kommunikation zu verbessern. Wenn Sie zu einem Kaffee oder einer gemeinsamen Mittagspause einladen, ein kurzes Gespräch über ein Thema führen, das nicht mit der Arbeit zu tun hat usw., können Sie die Kommunikation verbessern und die Aufmerksamkeit Ihres Kollegen auf die wichtigen Fakten lenken, die er verstehen soll. Wenn er diese Art der Kommunikation akzeptiert, dann haben die Konflikte, die Sie bisher hatten, möglicherweise damit zu tun, dass Sie sich nicht gut kennen und es einige kleine Missverständnisse gab, aber er ist wahrscheinlich offen für eine konstruktive Zusammenarbeit. Wenn er sich weigert, könnte es eine tiefere Feindseligkeit auf seiner Seite geben.
In diesem Fall sollten Sie warten, bis Ihre Rollen klarer werden. Wenn Ihr Teamkollege offiziell keinen höheren Rang als Ihren hat, hat er keinen Grund, sich über Ihre Versuche, Dinge zu verbessern, zu ärgern. Mit der Zeit wird er es akzeptieren oder sich lächerlich machen müssen, wenn er weiterhin zu zeigen versucht, dass er es besser weiß. Wenn er hat einen höheren Rang, sollten Sie einen Weg zu lassen , ihn finden zu verstehen , dass dies nicht in der Diskussion: Ihre Beobachtungen , die Produktivität zu verbessern und nicht zu untergraben , seine Position ausgerichtet sind, muss dieser 100% klar sein. Wenn die Rollen geklärt sind und er konstruktive Vorschläge oder Kritik immer noch nicht akzeptieren kann, muss er wirklich ein Problem mit dem Selbstwertgefühl haben oder so.
Wenn also alle oben genannten Strategien scheitern und Sie sich (sehr) frustriert fühlen, ist es meiner Meinung nach das einzig Vernünftige, Ihre Sachen zu packen und einen besseren Ort zu suchen. Ich habe diese Erfahrung vor drei Jahren gemacht und ein viel besseres Unternehmen gefunden, mit dem ich jetzt sehr zufrieden bin. Vielleicht ist dies nicht Ihr Fall (ich hoffe natürlich nicht), aber versuchen Sie auch, diesen Punkt zu verstehen.
Nur meine 2 Cent.