← Artiklar

En färdig plattform är en döende plattform

Styrgruppen möts en sista gång i december. Plattformsprojektet har levererat: klustren är på plats, pipelines rullar, tolv team är onboardade och slutrapporten visar grönt. Konsulterna rullar av, två ingenjörer lånas ut till ett produktteam, och budgetposten stängs. Projektet blev klart i tid.

Ingen på mötet verkar bekymrad över att samma beslut som stänger projektet också tar bort det team som skulle utveckla plattformen vidare.

Förfallet syns inte i någon incident

Ett halvår senare har plattformen börjat kännas gammal. Inget gick sönder så att det blev en incident. Det hade nästan varit bättre. Kubernetes-versionen ligger två releaser efter. Mallarna för nya tjänster pekar på en basimage som ingen bygger om. Tre team kör tre olika versioner av samma deploy-modul, och ett fjärde har forkat den. Onboarding-guiden stämmer inte längre, så supportkanalen växer i samma takt som förtroendet krymper.

Plattformen har blivit en sommarstuga: alla minns hur fin den var när den byggdes, och varje gång någon åker dit är något trasigt.

Fenomenet har ett namn: plattformsförfall. Tjänster blir utan ägare, versionerna glider isär och speciallösningarna blir fler. Förfall utlöser inget larm. Det är den riktning plattformen rör sig i när ingen längre äger dess utveckling.

Projektet gjorde sitt jobb

Projektet gjorde exakt det projekt är byggda för: att bli klara till leveransdagen. Varje beslut på vägen togs med den dagen i sikte. Snabbaste sättet att få ut mallarna var att kopiera in dem i teamens repon, inte att versionshantera dem. Rätt beslut för ett projekt. Fel för en plattform, eftersom den fortfarande ska fungera dag tusen, långt efter att projektet är bortglömt.

Grundfelet är enkelt: plattformen behandlades som något som kan bli klart. En plattform som förklaras klar slutar förbättras. Då börjar förfallet.

Frågan "när är plattformen klar?" är därför fel fråga. Rätt fråga är: vem äger den om tre år?

go-live dag tusen byggd som projekt ägd som produkt
Leveransdagen ser likadan ut i båda världarna. Skillnaden syns dag tusen: förfall, eller små steg uppåt version för version.

Produkt betyder ägare, versioner och en uppgraderingsväg

Alternativet stavas produkt: någon äger plattformen hela vägen, från lansering till utfasning. Det märks på tre saker.

En ägare som blir kvar: ett team som fortsätter prata med sina användare och förbättrar plattformen lite i taget. Det som krävs är kontinuitet, inte storlek.

Versionshantering på allt teamen får: en modul med versionsnummer, en tydlig ägare och en changelog går att uppgradera och rulla tillbaka.

En uppgraderingsväg som är rutin: plattformsteamet vet vilka team som kör vilken version, vilka versioner som stöds och hur en ny version når alla. Att få över teamen dit är en del av produkten, inte en uppgift som lämnas åt varje team.

Produkt betyder också att välja bort. Bygg bara det som är unikt för organisationen och lägg egna kontrakt framför resten, så att delar kan bytas utan att teamen behöver göra om sitt arbete.

Räkningen som redan betalas

Den första invändningen brukar handla om kostnaden: "Vi har inte råd att bemanna en plattform för evigt." Men räkningen betalas redan, i supportkanalen, i forkarna och i varje team som bygger runt det som borde ha uppgraderats.

Produkten behöver inte heller byggas av plattformsteamet ensamt. Databasteamet kan erbjuda Postgres som en tjänst i plattformen, säkerhetsteamet sina policykontroller, nätverksteamet sina brandväggsregler. Plattformen går från singleplayer till multiplayer. Men det är inte fritt fram: varje tjänst behöver en ägare, versioner, tester, dokumentation, en gräns för hur länge den supportas och en plan för när den ska skrotas, och det är plattformsteamet som sätter kraven. Utan kraven blir multiplayer inte fler ägare. Det blir fler tjänster utan ägare.

Dag tusen

Hela projektet var byggt för dag ett. Leveransdagen har en deadline, en budget och allas uppmärksamhet. Dag tusen har ingenting av det. Då finns bara ett team som antingen utvecklar en produkt eller försöker hålla liv i det projektet lämnade efter sig.

Så fira gärna go-live. Men kom ihåg vad ni firar. Ett projekt är lyckat när det tar slut. En plattform börjar just då.

Blev er plattform klar för ett år sedan? Jag hjälper plattformsteam att göra produkt av den. Hör av er.