Låt oss diskutera olika sätt att påskynda din produktutveckling.

Visst, då gör vi det
Betyg 4,9/5 på Clutch

MOP

  • Tjänster

  • Produkter

  • Människor

  • Blogg

  • Låt oss bygga

Mer

  • Fallstudier

  • Utmärkelser

  • Kundutlåtanden

  • Lediga tjänster

  • Teknik

Socialt

  • LinkedIn

  • X

  • Instagram

  • Facebook

  • Dribbble

© 2026 Ministry of Programming

  • Integritetspolicy
Tillbaka till bloggen

Den diskreta disciplinen med dagliga commit och värdeskapande

Faris Zacina
Faris Zacina
3 mars 2018Produktdrift och livslängdLäsningstid: 5 minuter
Den diskreta disciplinen med dagliga commit och värdeskapande

Tänk om jag sa att det faktiskt är bra för en mjukvaruutvecklare att göra dagliga commit till Git/Mercurial? Många skulle hävda att det inte är nödvändigt och att de hellre tar några dagar på sig för att ”ordentligt” utforma en commit.

Programmering är en konst, och det kräver noggrann kodning och sammanfogning, eller hur? Varför skynda sig och göra frekventa commit?

Erfarna utvecklare vet att dagliga commit är oerhört viktiga.

Sanningen är att några av de bästa bidragsgivarna på GitHub gör dagliga commit eller har en hög commitfrekvens. Till exempel harTJ Holowaychuk(skaparen av Node.js Express) en mycket bra commitfrekvens:

En anmärkningsvärd frekvens av commit — Github.com

Men snygga diagram och statistik är inte syftet med denna disciplin, och det finns beprövade metoder man kan lära sig för att bli en som bidrar dagligen.

Att införa dagliga commit kan vara besvärligt

När vi införde dagliga commit vid Ministry of Programming förklarade vi det som en bästa praxis inom kontinuerlig integration.

Oväntat nog tolkades denna regel fel av några av våra teammedlemmar.

Utvecklarna började göra commit bara för att ha ett dagligt commit, och vissa av dem började göra X commit per dag som egentligen inte hade någon mening – bara för att det skulle se bra ut i statistiken och för att följa den regel vi hade fastställt.

Dåliga dagliga commit — Github.com

Vad är problemet med dessa commit? De tillför visserligen ett visst mervärde till kodbasen, men det är detaljerna som avgör.

Det verkliga värdet av dagliga commit och dagliga PR:er

Dagliga commit är en metod inom kontinuerlig integration som förespråkas av Jez Humble, en av de mest kända DevOps-påverkarna.

Det är faktiskt en av de frågor som Jez ställer för att kontrollera om ett team tillämpar kontinuerlig integration:

”Lägger alla utvecklare upp sin kod i trunk/master (inte i funktionsgrenar) varje dag?” — Jez Humble

Varför är dagliga commit så värdefulla? Av följande skäl:

  • Små PR:er (och commit) är lättare att granska än stora PR:er
  • Små ändringar bidrar till samarbetet och stärker förtroendet inom teamet, eftersom bidragen är synliga och sker ofta
  • En välgjord commit är redo för release (den möjliggör dagliga builds)
  • En daglig commit (och build) ger affärs- och användarvärde till produktionsanvändarna, vilket är det yttersta syftet med de flesta mjukvaruutvecklingsprojekt
  • En daglig commit bidrar till kontinuerlig integration, vilket kan minska risken för misslyckade sammanfogningar och försenad integration av programvarukomponenter
  • En daglig commit bidrar till att skapa en disciplin kring kontinuerlig leverans, eftersom det är en vana att tillföra värde
  • Dagliga commit kan kopplas till uppgifter, deluppgifter och godkännandekriterier, vilket gör dem ännu mer värdefulla för teamet
  • Dagliga builds är ett av de få måtten som gör det möjligt att jämföra effektiviteten mellan olika mjukvaruteam. De utgör ett sätt att jämföra ditt team med andra team.

Rapporten ”The State of DevOps” identifierar högpresterande team utifrån deras driftsättningsfrekvens. Hur kan man uppnå en hög driftsättningsfrekvens utan dagliga commit?

Utan en daglig commit blir det ingen daglig build.
Högpresterande team — Rapporten ”State of DevOps”

Regelbundna driftsättningar möjliggör dagliga byggningar och förkortar tiden till marknadslansering för en produkt, vilket ökar chanserna till framgång. Jag tror att alla vill arbeta med framgångsrika produkter, och regelbundna lanseringar är en beprövad metod inom produktledning.

Det värsta som kan hända en utvecklare och ett produktteam är att utveckla något som ingen använder eller som kommer att misslyckas. Det är viktigt att så snart som möjligt upptäcka om så är fallet. Duktiga mjukvaruteam gör flera utgivningar per dag till produktionsmiljön.

En väl genomtänkt commit

En väl genomtänkt commit är rentanvändar- eller affärsvärdeförpackat i form av en kodbit.

En bra commit har följande egenskaper:

  • En koppling till en specifik uppgift som mäter användar- eller affärsvärdet
  • En bra och lättförståelig beskrivning (och tillhörande dokumentation)
  • Automatiserade tester som gör att produkten omedelbart kan släppas till produktionsanvändarna

Ett exempel på detta från vår kodbas:

Den här committen är mycket liten, den har en tydlig koppling till en funktion som ger affärs- och användarvärde, den innehåller en tydlig beskrivning av vad som levereras (vilket även ingår i den relaterade PR:en) och den är redo att släppas till produktionsanvändare.

Att dessutom göra inlämningar ofta på det här sättet minskar risken för att en stor inlämning ska orsaka problem vid sammanfogningen.

Detta är ett tydligt exempel på hur en utvecklare skapar mervärde, och det ökar sannolikheten för att en produkt eller ett projekt ska bli framgångsrikt.

Att ha en sådan daglig commit skapar förtroende inom teamet och främjar hög produktivitet, eftersom alla vill leverera mer och mer till produktionsanvändarna och fira framgångar eller dra lärdom av misslyckanden.

Slutligen är väl genomförda dagliga commit det bästa måttet på produktivitet och disciplin. Det känns fantastiskt att leverera varje dag.

Dagliga commit kräver noggrann planering från utvecklarnas sida

För att skapa en bra daglig commit och upprätthålla frekvensen behöver du en ”genomförandeplan” för ditt dagliga utvecklingsarbete.

Ett bra tips är att koka lite kaffe och sätta ihop en checklista i början av dagen, så att du vet vad du ska lägga in i en commit.

Slösa inte bort chansen att planera din dag och kasta dig direkt in i din IDE för att koda, eftersom det blir mycket svårare att förstå hur man skapar en bra daglig commit om du inte noggrant planerar vilka komponenter/moduler du tänker lägga till eller ändra och hur du gör din kod redo för lansering till produktionsanvändare.

Utan planering i förväg riskerar du att hamna i”yak-shaving”och arbeta med olika komponenter och till och med olika uppgifter. Detta minskar dina möjligheter att sammanställa och leverera en daglig commit, eftersom du inte fokuserar på leveransen utan på kodningen.

Skjut aldrig upp kontinuerlig integration bara för att det är bekvämare för dig själv. Tänk på ditt team och din produkt.

Det är inte själva kodningen som skapar värde, utan lanseringen.

Du hittar fler tips om hur man skapar bra dagliga commit iboken om kontinuerlig leveransav Jez Humble.

Slutsats

Jag anser att dagliga commit är en viktig disciplin för att minska riskerna och skapa värde för slutanvändarna av en produkt eller ett projekt. Det är ren och skär kontinuerlig integration och leverans i praktiken.

Men det är detaljerna som avgör, och en daglig commit som inte är ordentligt utformad tillför inget verkligt värde, utan är bara brus och onödigt arbete.

Och slutligen bör en daglig commit inte vara en koreografi, utan ett sätt att leverera värde.

Du bör inte göra några åtaganden, utom när det gäller något som skapar användar- eller affärsvärde eller något som minskar framtida integrationsrisker.

Om du är osäker är det bättre att inte åta dig något, men fråga dig ändå: ”När och hur ska jag skapa verkligt värde?”

Jag skulle vilja höra om era egna erfarenheter av dagliga commit och PR:er samt vilka effekter den här regeln har haft i ert team.