Schulung


Moderne Software-entwicklungsprozesse

mit Git




Git ist das Rückgrat eines jeden modernen Softwareentwicklungsprozesses und ein zentrales System in dem Lebenszyklus einer Softwareänderung sowie auch übergeordnet einer Release.

Schulungsanfrage

Sende uns eine Nachricht und wir melden uns bei dir!

Beschreibung


Git ist das Rückgrat eines jeden modernen Softwareentwicklungsprozesses und ein zentrales System in dem Lebenszyklus einer Softwareänderung sowie auch übergeordnet einer Release. Dabei entstehen Anforderungen an Transparenz und Traceability, welche jedoch Teams nicht in eine bürokratische Sackgasse führen dürfen. Dieses Seminar gibt dir eine praktische Einführung in Git mit dem Fokus auf die damit ermöglichten Softwareentwicklungsprozesse. Ziel ist hierbei keine Git-Enzyklopädie, welche alle Git-Kommandos in allen verschiedenen Flavors beleuchtet, sondern die wichtigsten Kommandos, Best Practices und Workflows hervorhebt, praktisch erklärt und in dem täglichen Einsatz eines Entwicklungsprozesses einordnet. Die Schulung wird mit praktischen Übungen begleitet, welche aus dem Alltag kommen und in denen sich Entwickler::innen wiederfinden. Dabei werden Tools und Prozesse eingesetzt, welche sich in der Praxis bewährt haben. Die Schulung ist nicht nur als Standardschulung zu empfehlen, sondern bringt In-House eine besondere Note bezüglich Anpassbarkeit, Erweiterbarkeit und der Entwicklung unternehmensspezifischer Softwareentwicklungsprozesse. Gerne kannst du dich im Vorfeld mit dem Coach austauschen, um die Möglichkeiten einer In-House Schulung zu klären. Die Schulung wird praktisch von einem Atlassian Stack (Jira, Confluence, Bitbucket und Bamboo) begleitet und zeigt dabei wie Git in einer solchen Umgebung seine Stärken ausspielen kann und somit einen Mehrwert für Entwicklungsteams generiert. Jedoch sind die Konzepte, Inhalte und das vermittelte Wissen in dieser Schulung unabhängig vom Atlassian Tooling. 



Technologien


Schulungsziel

Nach dieser Schulung siehts du Git nicht nur als Versionsverwaltungssystem, sondern verstehst wie ein modernes Codemanagement auf praxiserprobten Softwareentwicklungsprozessen funktioniert. Du hast Vertrauen in Git als Tooling, in das was passiert und hast keine Hemmungen den Funktionsumfang von Git in deine tägliche Arbeit zu integrieren. Sicherheitskopien vor speziellen Git Kommandos (z.B. Reset, Rebase usw.) gehören der Vergangenheit an. Darüber hinaus verstehst du den Mehrwert von Git und kannst moderne Softwareentwicklungsprozesse mit Git umsetzten, sowie in deinem Unternehmen etablieren. Hinsichtlich Teamwork erlangst du die Fähigkeiten den vollen Funktionsumfang von Git anzuwenden, wodurch deinem Team aber auch dir als Teammitglied eine komplett neue Herangehensweise bzgl. Entwicklungsprozessen ermöglicht wird. Dabei stehen nicht nur Git-Kommandos im Vordergrund sondern auch Review-Management, Social Engineering, Know-How Transfer und mehr. Wir lernen verschiedene Git Workflows kennen, beleuchten diese mit Vor-/Nachteilen und lernen wie dich diese mit modernen Codemanagementsystemen in deinem Softwareentwicklungsprozess unterstützen. Ziel hierbei ist, dass du nach der Schulung selbst entscheiden kannst, welcher Git-Workflow für dich, für dein Team oder für dein Unternehmen am besten geeignet ist.

Zielgruppe

Du möchtest deine Projekte/Produkte von SVN zu Git migrieren, Git Know-How in deinem Unternehmen aufbauen oder Git im Kontext moderner Softwareentwicklungsprozesse kennenlernen? Dann ist diese Schulung für dich geeignet! Die Schulung ist dabei so aufgebaut, dass jeder der Softwareentwicklungsprozesse praktisch mit Git kennenlernen möchte einen Mehrwert aus dem Seminar ziehen kann. Egal ob Teamlead, Softwareentwickler, DevOps-Engineers oder ganze Entwicklungsteams. Dabei werden keine besondern Vorkenntnisse benötigt.

Inhalt

Softwareentwicklungsprozesse und Git Basics

  • Die Zielsetzung: Der moderne Softwareentwicklungsprozess
  • Softwareentwicklungsprozesse aus Sicht der Dev-Teams und aus Sicht von Process-Ownern
  • Generelle Konzepte - Vogelperspektive Git
  • Git Bereiche (Repositories, Stage/Index, Workspace, Stash)
  • Was sind Commits, Branches und Tags?
  • Repository Konfigurationsmöglichkeiten
  • Was sollte man bei einer Commit Message beachten?
  • Warum sind Commit Messages für ein Entwicklungsprozess wichtig?
  • Tags und Semantic Versioning
  • Git Zeitreise - Mit Checkout in die Vergangenheit reisen
  • Änderungen mit Git log untersuchen
  • Änderungen rückgängig machen (revert, reset, amend)
  • Squash - Commits aufräumen
  • Stash - Mehr als nur ein Backup
  • Commits und Tags signieren


Teamwork und verteiltes Arbeiten

  • Bitbucket als Remote Repository
  • Einrichten von SSH oder HTTP-Token
  • Zentraler Workflow vs. Feature Branch Workflow
  • Beziehen und veröffentlichen von Codeständen (push, pull, fetch)
  • Warum können mehrere Remotes sinnvoll sein?
  • Vergleich der Strategien - Pull Merge vs. Pull Rebase
  • Code mit anderen Teammitgliedern via Branches teilen
  • Teams via Merge, Rebase, Cherrypick synchronisieren
  • Branches integrieren (Fast Forward vs Non Fast Forward Merge)
  • Wie funktioniert ein Merge in Git (Vertrauen schaffen)
  • Git Sub-Modules und dessen Anwendungsgebiete
  • Git LFS - Wohin mit meinen Binaries?


Codemanagement und Releasemanagement

  • Mit Git und Codemangement zum modernen Entwicklungsprozess
  • Overall Workflows (Gitflow, Trunk-Workflow, Fork-Workflow) 
  • Reviewmanagement (inkl. Pull-Requests, Maintainer Konzept)
  • Bitbucket als Social Engineering und Know-How Platform
  • Releasemanagemenment mit Git
  • Wie wird eine Release mit Feature und Code-Freeze vorbereitet?
  • Wie können Wartungslinien bzw. LTS-Versionen verwaltet werden?
  • Build und Testergebnisse beim Review automatisiert berücksichtigen
  • Kontinuierlicher Qualitätssicherung: Always ready for release
  • Integrationsmöglichkeiten in Jira und Anbindung ans übergeordnete Sprint und Releasemanagement
  • Integrationsmöglichkeiten in Bamboo mit Continuous Integration bis hin zu Delivery/Deployment
  • Demonstration zum Mitmachen - Der komplette Lebenszyklus einer Codeänderung, vom Melden eines Bugs, Einplanung in einer Release, über Fix und Review bis zum Delivery


Share by: