Die Geschichte vom Schärfen eurer Messerfertigkeiten
Johan Abildskov
Johan has been a Continuous Delivery Consultant with Eficode Praqma since 2015. After achieving his BSc in Computing Science he spent his time teaching, coding, hacking and studying. He is an avid gamer and participates in tournaments whenever he has the time. He also plays the bass.
Wir sind alle ein Haufen Technik- und Tool-Nerds. Wir haben Spaß daran, clevere Lösungen auszutüfteln. Genau die richtigen Befehle und Optionen zu finden, um die aktuelle Herausforderung zu lösen. Manchmal übertreiben wir es ein wenig. Viele Entwickler finden nicht, dass Git etwas ist, an dem wir herumtüfteln sollten. Aber das ist es!
Der ratlose Lehrer
Ich habe Git schon oft den unterschiedlichsten Menschen beigebracht. Normalerweise bin ich bestens vorbereitet und habe die Antworten parat. Doch eines Tages brachte mich eine Frage aus dem Konzept: „Warum sollte ich Git lernen? Ich bin doch nur Softwareentwickler.“ Für den betreffenden Entwickler war ich eine Art Sonderling – jemand, der Freude an Tools hat. Und obwohl das stimmt, bin ich weiterhin überzeugt: Git sicher zu beherrschen (oder welches minderwertige SCM ihr gerade auch verwendet) ist ein wesentlicher Bestandteil eines kompetenten Entwicklers.
Ich hatte es als selbstverständlich angesehen, dass natürlich jeder Git lernen sollte. Nun wurde ich jedoch mit meinen Annahmen konfrontiert. Es war eine erfreuliche und hilfreiche Übung, diese Frage zu beantworten.
Der kompetente Entwickler
Wir alle haben Erwartungen an Softwareentwickler – an uns selbst oder an andere. Kenntnisse, Verständnis und Kompetenzen, die ein kompetenter Entwickler besitzen sollte. Hier sind einige häufige Beispiele.
Die Plattform
Ich denke, dies ist die am wenigsten umstrittene der „Säulen der Kompetenz“. Ich erwarte von einem kompetenten Entwickler, dass er etwas über die Dinge weiß, die er entwickelt. Als Embedded-Entwickler könnte dazu gehören, die Herausforderungen bei der Interaktion mit Hardware zu kennen, an einem echten Echtzeitsystem zu arbeiten oder mit begrenzten Ressourcen umzugehen. Bei der Entwicklung von Windows-Anwendungen ist es nicht unangemessen, die Fähigkeit zur Interaktion mit Windows-Kernfunktionen zu erwarten. Das sind Dinge, die ihr beim Start in einer neuen Position vielleicht noch nicht wisst – es sind Fähigkeiten, die ihr weiterentwickelt. Sie unterscheiden Einsteiger von kompetenten Entwicklern.
Die IDE
In eurer IDE verbringt ihr bei der Softwareentwicklung wahrscheinlich die meiste Zeit. (Mein Beileid, falls es in Wirklichkeit PowerPoint oder SharePoint ist.) Um effizient zu sein, müsst ihr euch in dieser Umgebung souverän bewegen. Erledigt mit einem einfachen Tastendruck, wofür Einsteiger sich durch mehrere umständliche Menüs und irreführende Dropdowns klicken. Wisst, wie ihr die Konfiguration an euren Workflow und eure Domäne anpasst.
Die Sprache
Ein kompetenter Entwickler sollte die Sprache, mit der er arbeitet, sicher beherrschen. Er versteht die Idiome, Funktionen und Einschränkungen seiner Sprache und kennt sich mit den Standardbibliotheken aus. Wenn ich überall Java schreibe, mache ich etwas falsch.
Umgebung und Rahmenbedingungen
Es gibt viele Punkte, die in die Kategorie „Sonstiges“ fallen können. Wir bei Praqma beleuchten oft viele dunkle Ecken in diesem Bereich. Ich erwarte, dass ein kompetenter Entwickler weiß, wie er seine eigene Software baut und veröffentlicht. Doch an vielen Orten heißt es: „Steven ist derjenige, der das Release erstellen kann – auf seinem Rechner funktioniert es.“ Vielleicht bin ich in dieser Hinsicht also sehr naiv. Aber wenn ihr eure Software nicht veröffentlichen könnt, wie wollt ihr dann geschäftlichen Mehrwert schaffen?
Viele Entwickler erhalten einen Toolstack und richten sich darin bequem ein. „Das Tool-Team kümmert sich darum.“ Ihr müsst jedoch effizient arbeiten, und die externe Abhängigkeit von einem separaten Team unterstützt das nicht.
Warum dann nicht Git?
Warum erwarten wir nach all diesen Punkten nicht von unseren Softwareentwicklern, Git zu beherrschen? Als ich anfing, Git zu verwenden, konnte ich committen, pullen und pushen. Bei Merge-Konflikten bekam ich feuchte Hände, und oft löschte ich ein Repository, um es erneut zu klonen. Außerdem hatte ich meist mehrere Versionen von Der Software herumliegen: The_Software_02-05-17, The_Software_02-05-17-going-home. Es ist klar: Obwohl ich Git verwendete, kannte ich Git nicht.
Git zu kennen bringt viele Vorteile. Hier sind einige davon:
Einfaches Ausprobieren
Wer mit dem schlanken Branching-Modell von Git vertraut ist, kann problemlos Abzweigungen verfolgen, während Experimente isoliert bleiben und sich dennoch einfach integrieren lassen.
Die volle Leistung von Git. Offline.
Softwareentwicklung macht am meisten Spaß, wenn ihr zusammenarbeitet. Doch auch ohne Verbindung die volle Leistung von Git nutzen zu können, ist ein großer Vorteil. Ihr könnt weiterhin viele Checkpoints in eurem Verlauf erstellen und frühere Versionen auschecken. Für viele Menschen ist das Grund genug, Git zu verwenden.
Continuous Delivery ermöglichen
Git-Branches sind für Continuous Integration und Automatisierung gemacht und unterstützen daher all eure Automatisierungsvorhaben. Ein Branch kann als Kennzeichnung dienen, dafür sorgen, dass Automatisierungsarbeit isoliert bleibt, und dabei nicht einmal Daten duplizieren.
Euren eigenen Workflow erstellen
Git schreibt eurem Unternehmen keinen bestimmten Workflow vor. Ihr könnt ihn selbst wählen. Das ist zwar ein zweischneidiges Schwert und erfordert anfangs etwas Aufwand, gibt euch aber mehr Handlungsspielraum. Statt eure Arbeitsweise an den Toolstack anzupassen, bestimmt ihr den Workflow selbst und könnt Git einfach auf eure Anforderungen zuschneiden.
Ja! Ich! Ich möchte Git lernen!
Bei Praqma bieten wir viele Git-Schulungen an. Für Studenten haben wir sogar kostenlose Git-Schulungen und Continuous Delivery Academies durchgeführt. Wir schulen auch Fachkräfte – entdeckt unseren Kurs Git meistern. Wenn ihr im Selbststudium lernen möchtet, schaut euch unsere hervorragenden Git Katas an.
- DevOps
- CI/CD
Subscribe to our newsletter
Related blogs