Dokumentation

Uppgifter, planer, sprintar och arbetsbanor

De fyra sätten att organisera arbete i Coroid och när du ska använda vart och ett.

Coroid har fyra arbetsenheter. De byggs in i varandra, och valet av rätt enhet handlar främst om hur omfattande arbetet är och hur mycket av det som ska köras samtidigt.

EnhetOmfattningResulterar i
UppgiftEn ändringEn pull request
PlanEn funktion, i faserEn pull request för hela planen
SprintEtt tidsbegränsat arbetsblockDet som uppgifterna resulterar i
LaneEn ström av parallellt arbeteDen branch som en plans arbete integreras i

Sprint · två veckor

PlanOmarbetning av kassan

Fas 1

UppgiftBetalningsformulärUppgiftKortvalidering

Fas 2

UppgiftOrdersammanfattning
Lane-branchEn enda pull request

En fristående uppgift

UppgiftÅtgärda datumtolkningen
En enda pull request
En sprint samlar arbete under en viss period. En plan delar in uppgifter i faser, och planens lane samlar dem i en enda pull request. Även en fristående uppgift blir en enda pull request.

Uppgift

Atomen. En uppgift är en arbetsenhet som resulterar i en pull request, och det är uppgiften som faktiskt körs – planer, sprintar och lanes är alla sätt att organisera uppgifter.

Om du kan beskriva resultatet i ett stycke och en granskare kan läsa resultatet i ett svep är det en uppgift.

Plan

När arbetet kräver flera ändringar i en viss ordning blir det en plan: en ordnad uppsättning uppgifter grupperade i faser, som du godkänner innan någon kod skrivs.

Använd en plan när:

  • senare steg är beroende av tidigare steg
  • du vill se hela tillvägagångssättet innan du förbinder dig till något av det
  • arbetet gäller en funktion snarare än en ändring

Att godkänna planen är den billigaste tidpunkten att ingripa i systemet. Om du avvisar ett tillvägagångssätt här kostar det en minut; om du avvisar det efter att tre uppgifter har körts kostar det tre körningar.

Så når en plan ditt repository

Uppgifterna i en plan öppnar inte varsin pull request. De arbetar i egna brancher och mergas in i en gemensam lane-branch, och den branchen lyfts fram som en pull request mot din base branch.

Uppgiftens branchUppgiftens branchUppgiftens branch

Lane-branch

Här integreras arbetet i planen

En enda pull request

Den färdiga funktionen, granskad en gång

main

Din base branch

En uppgift i ett annat projekt än lane-projektet förs vidare separat. Därför öppnar en plan som omfattar flera projekt en pull request per repo.

Uppgifternas brancher mergas in i planens lane-branch, som sedan förs vidare som en enda pull request mot din base branch.

Du granskar alltså den sammansatta funktionen en gång, med hela ändringen framför dig, i stället för att godkänna ofärdiga faser var för sig.

Undantaget är arbete som omfattar flera projekt: en uppgift som tillhör ett annat projekt än det som lanen gäller lyfts fram separat, så planer över flera projekt resulterar i en pull request per repository. Det går inte att undvika – en pull request kan inte omfatta två repositoryn.

Sprint

En tidsbegränsad behållare för arbete, med egna mätvärden och en egen tidslinje. Sprintar besvarar frågan ”vad gör vi under den här perioden och hur gick det?” snarare än ”hur byggs den här funktionen?”.

Använd en sprint när du samordnar ett teams arbete under en period. Använd en plan när du bryter ned en funktion. De är inte alternativ till varandra – en sprint kan innehålla uppgifter som hör till flera planer.

Lane

En lane är platsen där en plans parallella arbete integreras. Uppgifterna riktas mot lanens branch i stället för din base branch, så att flera agenter kan arbeta samtidigt utan att krocka, och det sammansatta resultatet lyfts fram som en enda pull request när det uppfyller kraven.

Där en plan handlar om ordning, handlar en lane om samtidighet och integrering. Om du har kapacitet för flera agenter och arbete som inte måste köras strikt sekventiellt, är det lanen som låter dem arbeta tillsammans och ändå leverera en enda ändring som går att granska.

Välja

Frågan är inte hur många pull requests du vill ha — både en uppgift och en plan kommer in som en. Det handlar om hur mycket arbete som måste göras innan resultatet är värt att granska.

  1. Är det här en ändring som en granskare kan läsa igenom i ett svep? Ja → uppgift.
  2. Behöver den flera ändringar i en viss ordning innan den fungerar som helhet? Ja → plan. Dess spår hanterar att köra delarna parallellt när det är möjligt.

Sprintar ligger vid sidan av allt detta som ett lager för planering och rapportering.

Var release passar in

En release är leveransposten efter integrering, inte en annan uppgift, plan, sprint eller lane. Den låser en commit i ett repository, kontrollerar att den planerade arbetsinsatsen finns i den committen och följer utrullningsförsök genom varje miljö. En release kan innehålla arbete från flera sprintar, och en sprint kan resultera i flera releaser. En uppflyttning av en lane öppnar en pull request, men skapar inte själv en verifierad leverans.

Vad som begränsar hur mycket som körs samtidigt

Inte strukturen – kapaciteten. En plan med tio uppgifter som kan köras parallellt och en agentplats kör dem en i taget. Se Kapacitet och agentplatser.