# Was ist GitLab?
Gitlab ist ein digitales Projektmanagement Tool, welches einen großen Fokus auf Software legt. Ihr eigener Claim lautet
From project planning and source code management to CI/CD and monitoring, GitLab is a complete DevOps platform, delivered as a single application. Only GitLab enables Concurrent DevOps to make the software lifecycle 200% faster.
# wichtige Begriffe
GitLab ist sehr umfassend und wird auch ständig weiterentwickelt und angepasst. Hier ein kleines Glossar mit den wichtigsten Begriffen.
# Repository
Besonders relevant für die Entwicklung ist das Repository, quasi ein Cloudspeicher, in dem der (Programm-)Code für unsere digitalen Produkte (Website (opens new window), Blog (opens new window), ...) verwaltet wird.
# Projekte
In GitLab gibt es sogenannte Projekte und jedes Projekt bildet quasi ein Aufgabenbereich ab.
# Issues / Tickets
Besonders relevant sind die Issues (auch Tickets genannt), welche die zu erledigende Aufgaben zw. Anforderungen darstellen.
Diese können transparent mit einem Kanban Board (opens new window) dargestellt werden.
Falls du Bilder bzw. Designs hochlädst, nutze bitte die Design Funktion (opens new window) von GitLab.
# Issues (Tickets) im Projektmanagement
Es ist wichtig, dass wir effizient und sinnvoll mit Issues umgehen und gleichzeitig, durch diese, eine transparente, nachvollziehbare Arbeitsweise schaffen. Das ist die Basis für agiles, selbstorganisiertes Arbeiten.
Die Vorgehensweise kann sich von Projekt zu Projekt unterscheiden, für die Art und Weise ist der Projektverantwortliche zuständig.
Jeder Workflow sollte jedoch einige Grundprinzipien beinhalten. Zu nennen wären da:
- die Person, welche etwas möchte (also eine Aufgabe für einen Kolleg:inn hat), erstellt den Issue im passenden Projekt
- der Issue sollte die nötigen Informationen beinhalte um ihn bearbeiten zu können und/oder klare Fragestellungen an die bearbeitende Person richten
- im besten Fall wird eine Userstory (opens new window) genutzt
- der Issue wird soweit mit passen Labels versehen, (wie es der erstellenden Person möglich ist). In jedem Fall soll ein Zustandslabel vergeben werden
- weitere Infos (wie Fälligkeitsdatum, referenzierte Issues, Gewichtung/Prio, ...) sollen soweit möglich angegeben werden
- die Möglichkeiten, die GitLab bietet, sollen genutzt werden (Design Uploads, auf Kommentare Antworten, Issuereferenzierung , ...)
# Standard Issue Beschreibung (Vorlage)
Für jedes Projekt kann eine Vorlage für Issues (Template) erstellt werden, welches die Erstellung der Issues vereinfachen und effizienter gestalten soll.
Dies kann über (Projekt) => Einstellungen > Allgemein > Standard-Beschreibungsvorlage für Tickets eingerichtet werden:

Für das Website-Projekt wird z.B. folgende Vorlage verwendet:
# 📝 Userstory
Als
möchte ich <Ziel/Wunsch>, um # ✅ Aufgaben
- [ ] Aufgabe 1
# 🖼 Design
# ❓ Zu klären / Ungewissheit
# 🔗 Weiter Infos
### 📝 Userstory
Als <Rolle> möchte ich <Ziel/Wunsch>, um <Nutzen>
#### ✅ Aufgaben
- [ ] Aufgabe 1
#### 🖼 Design
-
#### ❓ Zu klären / Ungewissheit
-
#### 🔗 Weiter Infos
-
# Lebenszyklus eines Issues
Issues durchleben quasi während ihrer aktiven Zeit verschiedene Zustände (deshalb auch Zustandslabel).
Hier beispielhaft erklärt:
- Eine Idee entsteht und wird (ggf. nach dem besprechen im #idea-Channel (Slack) oder im Brainstorming) in einem Issue festgehalten.
- Dieser sollte das Label
Ideabekommen.
- Dieser sollte das Label
- Die Umsetzung des Issue rückt in nahe Zukunft (z.B. mit dem nächsten Milestone/Iteration) und der Zustand (bzw. das Label) wird von
ideazuTo Dogeändert. Außerdem soll die Person, welche den Issue umsetzt (ggf. auch mehrere) als Beauftragte Person hinzugefügt werden. - Wenn es an die Umsetzung des Issues geht, ändert sich sein Zustand (Label) von
To DoaufDoing. - Ist der Issue zu Abnahme bereit, ändert die (zuletzt) bearbeitende Person wer mit dem Issue beauftragt ist auf die Person, welche den Issue abnehmen kann (meistens Ersteller:in) und ändert das Zustandslabel von
DoingaufTo Test. - Nun entscheidet die verantwortliche Person:
- ist der Issue korrekt umgesetzt wird der Zustand von
To TestaufTestedgeändert und ggf. der/die Beauftragt:e auf die Person geändert, welche den Issue letztendlich abschließt (Deploy der Website, Druck eines Designs, Post auf Social Media, ...). - gibt es Änderungswünsche des/der Ersteller:in, wird geht es erneut zurück zu Schritt 2.
- ist der Issue korrekt umgesetzt wird der Zustand von
- Im letzten Schritt schließt die Person welche den Issue erstellt hat diesen Issue (und entfernt das Label
Tested), sofern dieser fertig bearbeitet wurde (Definition Of Done (deployed, gepostet, ...).
# Gewichtung
Gewichtung(en) sollen die Wichtigkeit von Issues beschreiben.
Dabei haben wir die 3 Priorisierungen:
- Superwichtig
- Bei Zeiten
- Kann warten
# Labels
Labels sind quasi Schlagworte mit welchen wir Issues, Meilensteine und ähnliches thematisch (_ Themenlabels_) und arbeitstechnisch (Zustandslabels) klassifizieren und zuordnen können.
# Zustandslabels
Als Zustandslabel bezeichnen wir die Labels, welche den Bearbeitungsfortschritt eins Objekts (Issue, MereRequest, Meilenstein, ...) angeben.
Dieses Label soll am besten von der beauftragten (bzw. bearbeitenden) Person selbst gesetzt werden.
Die Zustandslabel die wir definiert haben lauten:
- ~Idea -
Idea - ~"To Do" -
To Do - ~Doing - `Doing
- ~"To Test" -
To Test - ~Tested -
Tested
Die Labels sind größtenteils selbsterklärend und beschreiben z.B. die Reise eines Issues auf dem Kanbanboard von links (der Erstellung) nach rechts (der Fertigstellung/Abnahme).
Die Zustandslabels sind größtenteil Projektübergreifen (in der Placing-Me-Gruppe organisiert, damit das Gruppen Kanbanboard auch sinnvoll genutzt werden kann).
# Themenlabels
Themenlabels beschreiben die Thematische Zuordnung. Diese werden von den Projektverantwortlichen (z.B. Daniel & Ramona => Vertrieb, Mathis => Website, ...) selbst gepflegt und verwaltet.
Diese Labels sollten nicht zu spezifisch gewählt sein und für mehrere Objekte (Issues, Meilensteine, ...) Sinn ergeben.
Ein Solches Label könnte zum Beispiel Arbeitnehmer im Projekt Vertrieb sein. Oder Frontend im Projekt Website.
Themenlabels sollen möglichst schon bei der Erstellung von Tickets/Issues von der Erstellenden Person gesetzt werden und von der Bearbeitenden Person vervollständigt werden (sofern nötig).
# Kabanboard
Das Kanbanboard ist die Ticketübersicht (Issueboard) für die einzelnen Projekte, bzw. für die gesamte Placing-Me Gruppe (https://gitlab.com/groups/placing-you/-/boards/502082).
Die standard Spalten des Kanbanboards sind normalerweise an die Zustandslabels angelehnt und lauten:
Offen-> ohne ZustandslabelIdea-> Issue ist noch in de Ideenphase / muss besprochen und geschätzt werdenTo Do-> Issue wird geplant (für die Zukünftige Bearbeitung)Doing-> Issue ist in BearbeitungTo Test-> Issue kann/soll von der beauftragten Person getestet/abgenommen werdenTested-> Der Issue wurde abgenommen und kann deployed/abgeschlossen werdenClosed-> Kein Zustandslabel (und geschlossen)
Außerdem können weitere Board erstellt werden, welche mit spezifischen Filtern ausgetattet werden können.
Dafür muss man in das entsprechende Projekt / in die Gruppe auf die Ticketübersicht-Ansicht wechseln und kann dann oben links über dem Board eine neue Ansicht erstellen:
