Teil 3 – Zusammenarbeit und Projektmanagement mit GitHub

Warum Projektmanagement auf GitHub?

Früher war GitHub vor allem ein Ort, um Code zu hosten. Doch Projekte bestehen nicht nur aus Code, sondern auch aus:

  • Aufgaben
  • Bugs
  • Feature-Wünschen
  • Diskussionen

Statt dafür externe Tools zu nutzen (Jira, Trello, Asana), bietet GitHub viele eingebaute Funktionen für Projektmanagement – direkt integriert ins Repository.


Issues – die Aufgabenverwaltung im Repository

Was sind Issues?

Issues sind kleine Tickets, die alles mögliche abbilden können:

  • Bugs („Login funktioniert nicht in Safari“)
  • Feature Requests („Bitte Dark Mode hinzufügen“)
  • Aufgaben („Update auf neue Node-Version“)
  • Fragen oder Diskussionen

Jedes Issue hat:

  • einen Titel
  • eine Beschreibung
  • einen Status (offen/geschlossen)
  • Kommentare für Diskussion

👉 Damit bilden Issues die Grundlage für das Projektmanagement.


Labels für Übersicht

Man kann Issues mit Labels versehen:

  • bug → Fehler
  • enhancement → Verbesserung
  • help wanted → Hilfe benötigt
  • good first issue → ideal für Einsteiger

👉 Teams erstellen oft eigene Labels wie backend, frontend, urgent.


Milestones

Milestones fassen Issues zusammen, z. B. für ein Release.

  • Beispiel: Milestone „Version 2.0“ enthält 10 Issues.
  • Fortschrittsbalken zeigt, wie viele schon erledigt sind.

Templates für Issues

Man kann Vorlagen für neue Issues erstellen (.github/ISSUE_TEMPLATE/):

  • Bug-Report-Template
  • Feature-Request-Template

👉 So stellen Teams sicher, dass alle nötigen Infos drinstehen.


Pull Requests als Teil des Projektmanagements

Pull Requests (PRs) sind nicht nur Code-Änderungen, sondern auch Diskussions-Threads:

  • PRs können Issues automatisch schließen, wenn sie gemerged werden (Fixes #123).
  • Labels, Milestones und Reviews können PRs zugeordnet werden.
  • Checks und CI/CD laufen automatisch.

👉 PRs und Issues bilden zusammen ein transparentes Aufgabenmanagement.


GitHub Discussions – das Forum im Repo

Manchmal ist ein Thema kein Issue, sondern eine offene Diskussion:

  • Ideen sammeln
  • Feedback von der Community
  • Fragen beantworten

Dafür gibt es GitHub Discussions.

  • Threads wie in einem Forum.
  • Kategorien (z. B. „Q&A“, „Ideen“, „Show & Tell“).
  • Antworten können als „beste Lösung“ markiert werden.

👉 Besonders in großen Open-Source-Projekten sind Discussions Gold wert.


GitHub Projects – Kanban-Boards und mehr

Was ist GitHub Projects?

Ein Tool für visuelles Projektmanagement – ähnlich wie Trello oder Jira, aber direkt mit Issues und PRs verknüpft.

Board-Ansicht

  • Spalten wie „To Do“, „In Progress“, „Done“.
  • Issues und PRs können als Karten ins Board gezogen werden.

Automatisierungen

  • Karte wird automatisch verschoben, wenn ein PR gemerged wird.
  • Labels können automatisch Spalten zuordnen.

Projekt-Ebenen

  • Repo-spezifische Projects → für ein einzelnes Projekt.
  • Organisation-weite Projects → für mehrere Repos.

Beispiel: Ein kleiner Team-Workflow

Situation

Team entwickelt eine App mit 3 Personen.

Setup

  1. Alle Aufgaben werden als Issues erfasst.
    • Bug: „App crasht beim Login“
    • Feature: „Push Notifications einbauen“
  2. Labels: bug, feature, frontend, backend.
  3. Milestone: „Version 1.0 Release“.
  4. GitHub Project mit Spalten: „To Do“, „In Progress“, „Done“.

Ablauf

  • Entwickler A nimmt sich Issue #12 („Login Bug“).
  • Er erstellt Branch bugfix/login-crash.
  • Push + Pull Request → verknüpft mit Issue #12 (Fixes #12).
  • PR wird gemerged → Issue wird automatisch geschlossen.
  • Karte springt automatisch nach „Done“.

👉 Ergebnis: Das ganze Team hat jederzeit Überblick.


GitHub Notifications und Mentions

Zusammenarbeit heißt auch Kommunikation. GitHub hat dafür:

  • @-Mentions@username benachrichtigt eine Person.
  • Review-Anfragen → gezielt Kollegen um Code-Review bitten.
  • Notifications → per E-Mail oder in der Weboberfläche.

👉 So verpasst niemand wichtige Aufgaben.


Automatisierung mit GitHub Bots

Viele Teams nutzen Bots, um Projektmanagement zu erleichtern:

  • Stale Bot → schließt alte, inaktive Issues automatisch.
  • Labeler → fügt Labels automatisch hinzu (z. B. frontend für Dateien im /src/ui/).
  • Welcome Bot → begrüßt neue Contributor.

👉 All das spart Zeit und hält Projekte sauber.


Best Practices

  1. Alles als Issue erfassen
    • Auch kleine Aufgaben.
    • Alles sichtbar machen.
  2. Labels konsistent nutzen
    • Einheitliches Farbschema.
    • Dokumentation, was Labels bedeuten.
  3. Kleine, überschaubare Milestones
    • Lieber mehrere kleine Releases als ein riesiges.
  4. PRs mit Issues verknüpfen
    • „Fixes #123“ in der PR-Beschreibung.
  5. Boards aktuell halten
    • Automatisierungen nutzen, manuell aufräumen.
  6. Discussions für Ideen nutzen
    • Trennt Aufgaben (Issues) von Brainstorming (Discussions).

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert