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:

  1. Maak een nieuwe branch aan waarop je je aanpassingen zal doen
     
  2. Commit de wijzigingen naar GitHub
     
  3. Maak een Pull Request
    • Maak al dan niet commentaar, of ga in discussie
       
  4. 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