GitHub Flow & Project Management met Linear

GitHub Flow en Project Management met Linear

GITHUB FLOW

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

GitHub Flow

GitHub Flow

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

GitHub Flow

  • 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 via
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 add .
git commit -m "finished hello world feature"
  • Push de aanpassingen naar de remote repository
git push --set-upstream origin feature-helloworld

GitHub Flow

  • 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

  • Klik nu op Create pull request
  • Indien nodig kan je nog een beschrijving toevoegen, of gewoon de pull request aanmaken.

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

GitHub Flow en Project Management met Linear

LINEAR

Linear helps streamline software projects, sprints, tasks, and bug tracking. It's built for high-performance teams.

SCRUM vs Kanban

Linear

  • In Linear werk je binnen één of meerdere teams
  • Per team kan je een roadmap uitbouwen bestaande uit
    • Backlog - dit zijn al je ideeën, opties, features, etc.
    • To Do / Active - dit zijn de issues waar je aan wil werken
    • In Progress - dit zijn de geplande taken, meestal per week via een SCRUM sprint

Linear

  • Wanneer een taak is afgerond, plaats je deze via je board bij done.
  • Je kan per team werken aan één of meerdere projecten. Meestal simuleren wij in @work slechts één project per team maar in de praktijk kan dit anders zijn.
  • Via een Gannt Chart kan je week per week opvolgen, je project plannen en taken toekennen aan leden uit je team.

Hoe ga je best te werk?

  1. Maak eerst een backlog met taken, ideeën, etc.
  2. Bepaal de taken die je klaar wil hebben gedurende de eerste week
    • Van backlog naar todo
    • Koppel één of meerdere teamleden aan elke taak
  3. Maak per backlog item (of samenhorende items) een nieuwe feature aan via GitHub Flow en doe pull requests
    • Per developer van todo naar in progress
  4. Evalueer dagelijks via een SCRUM standup van max. 15 minuten.
  5. Evalueer wekelijks via een SCRUM retrospective en plaats de niet gedane taken terug in de backlog.
  6. Herneem vanaf stap 2.

GitHub Flow & Project Management met Linear

By timdpaep

GitHub Flow & Project Management met Linear

  • 396