Manifestet

Allmännyttans digitaliseringsmanifest

1. Vi är inte rädda att göra fel

“En toppatlet är inte rädd att förlora. Han kanske hatar det, men han är inte rädd för det”Willi Railo, idrottspsykolog, föreläsning 2004

Vi utvärderar hela tiden vårt arbete mot nyttan vi skapar för användarna, och ser till att vår process gör att vi så snabbt som möjligt upptäcker när vi är på fel spår. Inom vissa delar av utvecklingsvärlden kallar man denna princip fail fast/safe to fail.

Istället för att optimera och detaljplanera förstår vi att digitalisering innebär att lära sig och att misslyckas för att skapa värde för användarna. Därför accepterar vi inte bara att vi gör fel längs vägen, vi omfamnar det. Vi vet att ingen sitter på exakta svar om hur en teknik som nyss utvecklats gör störst nytta förrän vi använt den.

2. Vi arbetar öppet

En nyckel för att lyckas med digitaliseringen inom Allmännyttan är att använda öppna teknologier. Med öppna teknologier menar vi följande:

  • Öppen källkod. All kod som utvecklas inom ramen för Allmännyttan publiceras på github som öppna repositories. På så sätt kan både leverantörer och medlemsbolag både granska, lära sig av och bygga vidare på kod som skapats i tidigare projekt. Vi ser det inte som någon nackdel om aktörer utanför Allmännyttan använder det vi byggt, vi ser det istället som en möjlighet att hjälpa varandra även om vi i vissa hänseenden skulle kunna ses som konkurrenter.

  • Öppna API:er. Den viktigaste förutsättningen för att ett system ska kunna bli en del av en digital plattform är att det kan kommunicera med andra system. Ett öppet API* är avsett för användning (även) av andra utvecklare än de som utvecklat systemet, och har därför tydliga instruktioner och regler för hur det får användas samt dokumentation av hur det fungerar. Detta gäller också system vi bygger inom Allmännyttan - kommunikation mellan system ska ske via API:er.

  • Öppna standarder. Vi använder öppna standarder där sådana finns för att göra utbyte av data både mellan de system vi bygger inom Allmännyttan och med externa parter. Detta kan innebära allt från mer övergripande principer som att använda REST/JSON för API:er och autentisering med OAuth2 ner till specifika format som är unika för fastighetsbranschen.

* vi menar i det här sammanhanget inte öppet som i “får användas av alla”. Men alla API:er som kan nås från internet är öppna - bygg därefter.

3. Vi flyr inte in i abstraktion

Det viktigaste för att komma igång är att börja. Det kan låta lätt, men steget mellan idé och det första spadtaget är ofta det svåraste. Därför måste vi börja skriva kod istället för att börja med långa analysfaser. Den första raden kod är den milstolpe som hela resultatet vilar på.

Eftersom man förstås vill göra rätt sak är det lätt att vaggas in i en falsk känsla av att mer planering, analys och utredning kommer att göra det lättare att skriva den första raden kod och leda till ett snabbare, mer effektivt och mer lyckat fortsatt utvecklingsarbete. Men när vi tagit reda på vilka effektmål vi ska uppnå för användarna finns det inget att vinna på att göra fler enkäter, undersökningar eller strategiska Powerpoint-presentationer. Istället är det dags att gå över till att drivas av det användarna behöver. Det effektivaste sättet att göra det på är att kontinuerligt låta dem testa det som byggs, ge sin feedback och att vi anpassar vår väg framåt utifrån det. Och för att komma dit måste vi börja bygga.

4. Vi kommer inte att bli färdiga

Digitalisering är ett kontinuerligt arbete. Att modernisera sina system är inte som att göra ett stambyte, där man efter en större insats kan luta sig tillbaka under lång tid. Lyckad digitalisering innebär istället ett nytt tanke- och arbetssätt där man arbetar kontinuerligt med det som skapar mest värde för ens användare.

Detta gäller såväl den övergripande digitaliseringsresan som mindre projekt och enskilda tillämpningar. Arbetet med en tillämpning fortsätter så länge den investerade tiden och resurserna skapar värde för användarna och organisationen, men prioriteras mot andra projekt och tillämpningar. Finns det ett annat projekt eller en annan tillämpning där resurserna skapar mer värde, så väljer vi att göra en iteration där istället. När en iteration är slut så gör vi en ny bedömning.

Det är en grundprincip inom agila arbetsmetoder att inte vänta till dess att systemet är färdigt innan man släpper ut det till användarna. Vi anser att det är lika viktigt att inte i förväg bestämma när inte kan förbättra det längre.

5. Vi prioriterar enligt T-modellen

När vi väljer vilka projekt vi ska arbeta på gör vi en prioritering i två steg:

  1. Vi prioriterar det  som flest medlemsbolag har nytta av. Eller ännu mer specifikt: det som hyresgästerna i flest medlemsbolag har nytta av, när vi väljer vilket projekt som ska startas eller vidareutvecklas i en ny iteration. På detta sätt skapar vi så mycket värde för så många som möjligt. Detta är “taket” på T:et och det vi vill ska vara så brett som möjligt.

  2. När vi har valt projekt så prioriterar vi bara behoven hos det medlemsbolag som är behovsägare, även om det finns andra medlemsbolag med liknande behov. Detta är “foten” på T:et och det vi vill ska vara så lång som möjligt. Allt för alla blir inget för någon, och därför måste behovsägaren få styra helt utifrån sina (användares) behov. Att från start bygga “flexibelt”, “generiskt” och “framtidssäkert” är tankefällor som gör ett system mindre värdefullt för användarna, och ödslar både tid och resurser.

Vi vet att med goda principer för utveckling som separation av systemdelar, enhetstester och API:er gör vi det istället lätt att i nästa steg bygga vidare, anpassa och justera det som utvecklas för andra medlemsbolag när den nuvarande iterationen är klar.

6. Vi låter inte legacy stoppa vår framdrift

Att arbeta med digitalisering innebär att man måste anamma nya tekniker. På kort sikt är det förstås både organisatoriskt och kostnadsmässigt enklare att bara försöka vidareutveckla det man har, men i längden blir detta ett hinder för digitaliseringstakten och ett större värdeskapande på lång sikt. Samtidigt kan man inte heller byta ut allt gammalt över en natt, det går tvärt emot alla de agila tankar och bevisat effektiva arbetssätt som vi förordar.

En hållbar lösning är att bygga en modern, mikrotjänstbaserad plattform som dels kopplar ihop de gamla systemen och dels erbjuder ett sätt att ansluta till dem med enhetliga dataformat, automatiskt hantering av anrop till flera underliggande system (orkestrering) och gemensam inloggning och säkerhetshantering - ett API. När API:et är på plats kan man bygga både användargränssnitt som appar och webbtjänster, och integrera med externa tjänster, och i den takt man mäktar med byta ut de underliggande föråldrade systemen.

Denna moderna plattform behöver byggas med effektiva och populära (väl underhållna, stark community/support) ramverk, verktyg och serverkomponenter. Detta kan kräva nya typer av servrar i driftsmiljön, som man inte arbetat med tidigare. Det kan också innebär att man konstaterar att vissa underliggande system är alltför svåra att göra till en del av en välfungerande digital plattform och helt enkelt måste ersättas. Utan dessa beslut kommer digitaliseringen att avstanna.