

Github Flow
Project Management met Github Projects

Project Management
Github Flow


GitHub flow is a lightweight, branch-based workflow.
The GitHub flow is useful for everyone, not just developers.

Github Flow


GH Flow - werking
Ruw stappenplan:
- Maak een nieuwe branch aan waarop je je aanpassingen zal doen
- Commit de wijzigingen naar GitHub
- Maak een Pull Request
- Maak al dan niet commentaar, of ga in discussie
- Maak al dan niet commentaar, of ga in discussie
- Merge de Pull Request met de main branch

GH Flow - Make it happen!
-
Maak een nieuwe (test) repository aan op je persoonlijk account
- Je kan deze repository achteraf verwijderen
- Geef de repo de naam github-flow-demo
- Vink Add a Readme file aan
- Maak de repository aan
- Clone vervolgens deze repository naar je lokale computer
- Open het project in VSCode

Github Flow
- Willen we aanpassingen doen aan de bestaande repository, dan doen we dit in een afzonderlijke branch.
- Maak een branch met de prefix feature- om een nieuwe functionaliteit toe te voegen
git branch feature-helloworld
- Open nu de nieuwe branch
git checkout feature-helloworld

Github Flow
- Doe nu een aanpassing aan het bestaand README.md bestand, voeg bijv. wat lorem ipsum tekst toe.
- Dit simuleert een aanpassing in de repository
- Voeg nu de file toe in de staging index en vervolgens in de local repository met:
git push --set-upstream origin feature-helloworld
- Push de aanpassingen naar de remote repository
git add .
git commit -m "finished hello world feature"

Make it happen
- Er verschijnt nu een melding in je GitHub repository
- Navigeer naar het tabblad pull requests
- Klik op new pull request
- Doe een verzoek om de feature-helloworld branch samen te voegen met de main branch.




GitHub Flow
- De Pull Request wordt nu aangemaakt en zal kijken of er conflicten zijn. Indien geen conflicten kan je de aanpassingen meteen samenvoegen met de main branch.
- Klik op Merge pull request en vervolgens op Confirm merge
- Wanneer alles correct is samengevoegd, kan je met een gerust hart de branch feature-helloworld verwijderen.
- Klik hier op Delete branch


GitHub Flow
- We hebben nu de branch verwijderd in de remote repository, we gaan
- de main branch uitchecken
- synchroniseren met de remote repository
- de feature-helloworld branch nu ook verwijderen in de local repository.
git checkout main
git pull
git branch -D feature-helloworld
- We kunnen nu verder werken aan een nieuwe feature en alle stappen herhalen.

GitHub Flow
- Wanneer je met meerdere mensen werkt, dan kan het zijn dat er merge conflicts ontstaan.
- Stel developer A en developer B werken in hetzelfde document
- Een merge conflict is het conflict dat ontstaat wanneer developer A iets heeft aangepast in een bestand, deze heeft gepusht naar de remote branch. Tezelfdertijd heeft developer B ook aanpassingen gedaan, en wil deze nu ook pushen. Hier ontstaat dus een conflict.

GitHub Flow
- We simuleren een aanpassing van developer A.
- Pas de remote README.md aan via GitHub.


GitHub Flow
- Maak een nieuwe branch feature-newworld aan
- Maak aanpassingen aan de bestaande README.md
- Commit de aanpassingen naar je local repository en push naar je remote repository
- Wanneer je nu een pull request doet krijg je de melding can't automatically merge.
- Desondanks doen we toch de pull request, het is de verantwoordelijke voor de repository die de merge uiteindelijk zal uitvoeren.


GitHub Flow
- Als verantwoordelijke kunnen we de merge conflicten oplossen via GitHub
- Klik op Resolve conflicts


GitHub Flow
- Los het probleem op en klik op mark as resolved en vervolgens op commit merge
- Nu kan je wel de pull request uitvoeren


Project Management
Project Management


Waarom
-
Je vermijdt chaos
-
Iedereen weet wat te doen
-
Taken zijn duidelijk en zichtbaar
-
Efficiënter samenwerken
-
Deadlines worden haalbaar

De basisprincipes
-
Doelgericht werken
-
Taken opdelen (in kleinere stukken)
-
Duidelijke verantwoordelijkheden
-
Prioriteiten stellen
-
Regelmatige opvolging

De basisprincipes
-
Doelgericht werken
-
Taken opdelen (in kleinere stukken)
-
Duidelijke verantwoordelijkheden
-
Prioriteiten stellen
- Regelmatige opvolging
Agile Methodologie
Iteratief, flexibel en gericht op samenwerking

Agile principes (kort)
-
Werk in korte iteraties
-
Focus op werkende software
-
Regelmatige feedback
-
Klant (of eindgebruiker) centraal
-
Zelfsturende teams

Project Management
Scrum vs Kanban


Scrum in 't kort
-
Sprints (2–4 weken)
-
Backlog (alle taken)
-
Sprint planning (taken kiezen)
-
Daily stand-up (kort overleg)
-
Sprint review & retrospective

Scrum rollen
-
Product Owner
-
Bepaalt wat belangrijk is
-
-
Scrum Master
-
Helpt team soepel te werken
-
-
Team
-
Voert het werk uit
-
(In jullie project vervagen deze rollen — dat is oké!)

Scrum rollen
-
Product Owner
-
Bepaalt wat belangrijk is
-
-
Scrum Master
-
Helpt team soepel te werken
-
-
Team
-
Voert het werk uit
-
(In jullie project vervagen deze rollen — dat is oké!)

Kanban bord
-
To Do 🕒
-
In Progress 🚧
-
Done ✅
Taken schuiven van kolom naar kolom

Scrum vs Kanban
Kenmerk Scrum Kanban
Iteraties | Ja (sprints) | Nee |
Rollen | Specifiek | Geen verplichting |
Flexibiliteit | Minder tijdens sprint | Hoog |
Visualisatie | Backlog + board | Board |

Wat gebruiken wij?
➡️ GitHub Projects met een Kanban-stijl board
💡 Scrum-inspiratie = oké (bijv. sprint-overleg)

Project Management
GitHub Projects


Wat is GitHub Projects?
-
Bord met kolommen (Kanban-stijl)
-
Koppel issues of maak losse kaarten
-
Zie wie waaraan werkt
-
Labels, deadlines, checklists, ...

Setup voor jullie project
-
Kolommen:
To Do
/In Progress
/Done
-
Elke taak = issue of kaart
-
Koppel een teamlid + label + deadline
-
Hou het bord dagelijks up-to-date
Pro tip 💡
Gebruik jullie GitHub issues
als planning én communicatie!
🗨️ Stel vragen in issues
📎 Link commits of pull requests
@work - Github Flow
By Frederick Roegiers
@work - Github Flow
- 71