Implementera trunk-based development med PostHog och Unleash.
Många team säger att de kör trunk-based development men gör i praktiken något annat: de har långlivade grenar som lever i veckor och smärtsamma sammanslagningar när de äntligen ska in. Trunk-based development på riktigt handlar om något mer specifikt, att alla arbetar mot samma huvudgren med mycket korta livslängder på sina grenar. Och det fungerar bara om du har ett sätt att gömma halvfärdigt arbete, vilket är där feature flags med verktyg som PostHog eller Unleash kommer in.
Problemet med långlivade grenar
När en gren lever länge driver den ifrån huvudgrenen. Ju längre den lever, desto mer hinner huvudgrenen förändras, och desto värre blir konflikten när de ska slås ihop. Det är inte ovanligt att en utvecklare lägger en hel dag på att lösa konflikter i en gren som varit öppen i två veckor. Den tiden är ren förlust, och den skapar dessutom en rädsla för att slå ihop som gör att grenar lever ännu längre. En ond cirkel.
Trunk-based development bryter cirkeln genom att hålla grenar så korta att de aldrig hinner driva ifrån. I praktiken betyder det att du integrerar mot huvudgrenen flera gånger om dagen, inte en gång i veckan. Men det väcker en uppenbar fråga: hur gör jag det utan att halvfärdiga funktioner syns för användarna?
Feature flags löser dilemmat
Svaret är att skilja på två saker som vi vanligtvis blandar ihop: att driftsätta kod och att aktivera en funktion. Med en feature flag kan du lägga in ny kod i huvudgrenen och driftsätta den i avstängt läge. Koden finns i produktion, men funktionen är osynlig tills du slår på flaggan. Det betyder att du kan integrera ofta, även med halvfärdigt arbete, utan att det stör någon.
- Du kan slå på en funktion för dig själv eller en testgrupp innan alla ser den.
- Du kan rulla ut gradvis till en växande andel användare och hålla koll på effekten.
- Går något fel slår du av flaggan på sekunder, utan en ny driftsättning.
PostHog och Unleash: två vägar till flags
Det finns flera verktyg för feature flags, och två som jag ofta ser är PostHog och Unleash. De löser samma grundbehov men har olika tyngdpunkt.
- PostHog är en bredare plattform där feature flags är en del av en helhet som också omfattar produktanalys. Det är starkt om du vill koppla utrullningen av en funktion direkt till hur den faktiskt används, allt på ett ställe.
- Unleash är mer fokuserat på just feature management och kan köras självhostat, vilket är värdefullt om du vill ha full kontroll över din data och hålla flaggorna nära din egen infrastruktur.
Valet beror på om du vill ha analys och flags i samma verktyg eller en renodlad, självhostbar flagghantering. Båda gör jobbet, och hur de passar in i en samlad leveranskedja beskriver jag i min tjänst för DevOps-plattform.
Disciplinen som krävs
Trunk-based development är inte gratis. Eftersom alla integrerar mot huvudgrenen ofta måste den alltid vara i ett skick som går att släppa. Det ställer krav på en snabb och pålitlig pipeline som fångar fel innan de når huvudgrenen, annars blockerar ett trasigt bygge hela teamet. De två hänger ihop: trunk-based development utan god automation blir kaos.
Det kräver också att teamet lär sig att bryta ner arbete i små, ofarliga steg. Att lägga in en stor funktion bakom en flagga i ett enda svep är svårare än att bygga den i många små bitar som var och en är trygg att integrera. Den vanan tar tid att bygga men är kärnan i hela arbetssättet.
Städa bort gamla flaggor
Den sista, ofta glömda biten är att feature flags är kod som måste skötas. En kodbas full av gamla flaggor som ingen rensat blir snårig och svår att resonera om. Jag behandlar därför borttagning av en flagga som en självklar del av att en funktion är klar och fullt utrullad. En flagga som funnits i ett halvår utan att någon vet vad den gör är teknisk skuld.
Relaterat
- Infrastructure as Code: Terraform + Atlantis + policy as code
- SRE light: SLO:er, error budgets och on-call för små team
- Platform Engineering 2026: Backstage vs Port vs Cortex
Vill du se hur arbetssättet satts upp i ett skarpt projekt finns exempel i min casebook.
Vill du ta det vidare?
Om ert team brottas med långlivade grenar och smärtsamma sammanslagningar hjälper jag er över till trunk-based development med feature flags. Hör av dig via kontaktsidan.
“Skilj på att driftsätta kod och att aktivera en funktion, så kan du integrera ofta utan att störa någon.”
- Simon Axelsson
Vanliga frågor
- Behöver jag feature flags för att köra trunk-based development?
- I praktiken nästan alltid. Utan ett sätt att gömma halvfärdigt arbete tvingas du antingen vänta med att integrera eller släppa ofärdiga funktioner. Feature flags löser just det dilemmat.
- PostHog eller Unleash, vilket ska jag välja?
- Välj PostHog om du vill ha feature flags och produktanalys i samma verktyg. Välj Unleash om du vill ha en renodlad, gärna självhostad flagghantering med full kontroll över din data.
- Är trunk-based development riskabelt utan bra tester?
- Ja, det är dess akilleshäl. Eftersom alla integrerar mot huvudgrenen ofta måste den alltid vara släppbar. Det förutsätter en snabb och pålitlig pipeline som fångar fel innan de når huvudgrenen.
