Alexander (HH): Welche Tools verwendet Ihr?

Beitrag lesen

Moin Moin!

Nun habe ich mich doch auf eine Diskussion eingelassen, aber was soll's kann sich ja vielleicht doch noch interessant entwickeln.

vielleicht entdecke ich ja im Zuge dieser Diskussion endlich mal, was an so einer Versionsverwaltung so toll ist.

Undo.

Entwicklungsprozess nachvollziehbar machen.

"Wer zum Geier hat den Scheiß eingebaut?"

"Was hab ich in den letzten zwei Stunden eigentlich alles verändert?"

"Wann haben wir das Problem eingebaut, und welche Workarounds haben wir seitdem darum herum gebaut?"

Entwicklungsprozess in kleine Häppchen aufteilen.

Nach jedem kleinen Arbeitsschritt teste ich, was ich gebaut habe, wenn es funktioniert, committe ich es ins Repository. Der Stand ist sicher und gut, und von da aus kann ich weiter arbeiten. Wenn ich Mist gebaut habe, mache ich einen Revert, notfalls auch auf einen früheren Schritt.

Ich mein, wenn man als großes Team an einem Projekt arbeitet, ohne dass es eine klare Zuordnung der einzelnen Module zu einem Bearbeiter gibt, mag das Sinn machen. Aber dann hat man IMO schon in der Planung was falsch gemacht.

Was machst Du in Deinem Modell, wenn ein Kollege ausfällt? Warten, bis der Kollege wieder kommt?

Mit einer Versionsverwaltung kannst Du stumpf seinen letzten Stand forken und dort weiter entwickeln. Wenn der Kollege wieder auftaucht, kann er Deine Weiterentwicklung mergen und weiter arbeiten.

Der Normalfall dürfte doch sein, dass jeder Entwickler seinen abgegrenzten Teilbereich des Projekts mit klar definierten Schnittstellen bearbeitet, in den ihm kein anderer reinzupfuschen hat.

Das ist der akademische Traumfall. Die Realität sieht deutlich hässlicher aus. Du hast Tonnen von Legacy-Code, von denen niemand so recht weiß, was darin passiert, jeder hat mal drin herumgefummelt, und eigentlich hofft man immer, das einem das Zeug nicht um die Ohren fliegt.

Längst nicht jeder, der an Software rumbastelt, ist dafür auch qualifiziert. Leider. Das führt zu sehr gruseligen Konstruktionen. Siehe oben.

Und dieser ihm zugewiesene Teilbereich ist dann wieder genauso zu sehen, als ob er allein irgendein Mini-Projekt bearbeitet. Das heißt, er hält stabile Versionen, Testversionen und wilde Experimente in verschiedenen Verzeichnissen vor und stellt seinen Kollegen jeweils das zur Verfügung, was er im Moment für "final" oder "ausgereift" hält (und behält die Testversionen unter Verschluss).

Genauso entstanden diese Legacy-Monster, und sie entstehen noch immer. Irgendwo verstreut auf 30 alten Workstations, drei Fileservern, drei Generationen Mailservern, ein paar elektrisch und/oder mechanisch defekten Platten, und ein paar Umzugskartons voll Aktenordnern, Schnellheftern und losen Blättern liegen die Projektsources, niemand hat eine Idee, wie sie zusammenhängen und auseinander entwickelt wurden, niemand hat eine Idee, wie die Abhängigkeiten sind.

Das Equivalent zu diesen Verzeichnisbasteleien sind Revisionen und Branches, sauber nachvollziehbar mit Historie.

Ganz ehrlich, ich habe den Sinn eines Versionskontrollsystems bisher noch nicht verstanden. Wenn ich eine Version als "Milestone" konservieren will, dann archiviere ich den aktuellen Zwischenstand, und fertig. Das ist eine simple Kopieraktion (meinetwegen zusätzlich eine Komprimierung).

Das ist tagging, und mit Deiner Methode eine sehr teure Operation. Bei Versionsverwaltungen ist tagging fast kostenlos. Subversion braucht dafür, wie schon erwähnt, nur ein paar Meta-Daten zu speichern.

Wie viele Zwischenstände hältst Du für sichernswert? Bei mir sind es am Tag durchaus mal 10, 20 oder 30. Das kostet mich in SVN fast nichts, weil SVN nur für die Diffferenzen Platz braucht. Du würdest bei gleicher Arbeitsweise jeden Tag das 10fache, 20fache oder 30fache Deines Projektvolumens an Platz benötigen, und um Änderungen nachvollziehen zu können, müßtest Du jedes Mal wieder die Differenzen berechnen. Vom Aufwand des Packens und Entpackens will ich gar nicht anfangen. Und commit-Kommentare hast Du mit den Verzeichniskopien auch noch nicht.

Alexander

--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".
0 68

Krücke oder Powertool mit auferlegtem Keuschheitsgürtel

Dom
  • meinung
  1. 0
    zehbaeh
    1. 0

      Welche Tools verwendet Ihr?

      Tom
      • software
      1. 0
        Felix Riesterer
        1. 0
          niklaskamenisch
          1. 0
            Tom
            1. 0
              Felix Riesterer
              1. 0
                Tom
            2. 0
              ulli_1956_
      2. 0
        hotti
      3. 0
        niklaskamenisch
      4. 0
        Jeena Paradies
        1. 0
          Jeena Paradies
          1. 0

            Microsoft Frontpage

            Hans
            1. 0
              Multi
              1. 0
                Alexander (HH)
        2. 0
          Multi
      5. 0
        Alexander (HH)
        1. 0
          Alexander (HH)
        2. 0
          Jeena Paradies
          1. 0
            Tom
            1. 0
              Jeena Paradies
              1. 0
                Alexander (HH)
                1. 0
                  Jeena Paradies
                  1. 0
                    Der Martin
                    1. 1
                      Jeena Paradies
                    2. 0
                      Alexander (HH)
                      1. 0
                        Tom
                      2. 0
                        Der Martin
                        1. 0
                          Jeena Paradies
                        2. 0
                          Alexander (HH)
                          1. 0

                            Welche Tools verwendet Ihr? Ist ein Wiki-Artikel möglich?

                            Tom
                            1. 0
                              Jeena Paradies
                              1. 2
                                Alexander (HH)
                          2. 0
                            Der Martin
                            1. 3
                              Jeena Paradies
                              1. 1
                                Detlef G.
                              2. 0
                                Der Martin
                                1. 0
                                  Jeena Paradies
                                  1. 0
                                    Der Martin
                                    1. 0
                                      Mitleser
                                    2. 0
                                      Jeena Paradies
                                      1. 0
                                        Jeena Paradies
                                      2. 0
                                        Der Martin
                                        1. 0
                                          Jeena Paradies
                                        2. 0
                                          Tom
                                        3. 0
                                          Matti Mäkitalo
                                    3. 3
                                      Alexander (HH)
                                      1. 1
                                        Christian Kruse
                                      2. 0
                                        Der Martin
                                        1. 4
                                          Alexander (HH)
                                          1. 0

                                            Welche Tools verwendet Ihr? NIH-Syndrom

                                            tami
                                          2. 4

                                            Überzeugungsarbeit

                                            Kai345
                                            • menschelei
                                            1. 0
                                              Alexander (HH)
                                              1. 1
                                                Alexander (HH)
                                                1. 0
                                                  tami
                                          3. 0
                                            Der Martin
                    3. 0
                      Anon Nymous
                  2. 0
                    Multi
                    1. 0
                      Christian Kruse
                      1. 0
                        Multi
            2. 0
              Alexander (HH)
          2. 0
            Alexander (HH)
      6. 0
        luti
      7. 0
        Der Martin
      8. 0
        tami
      9. 0
        seth
  2. 0
    Ole.