Projekt isberg

Senast ändrad: 07 januari 2022
iberg, illustration. www.freepik.com

Projekt isberg pågick i två arbetsperioder under 2021. Det övergripande målet var att öka stabiliteten på SLU:s webbplatser.

Bakgrund

SLU:s nuvarande webbplatser byggdes och lanserades 2016. Sedan dess har kod och funktionalitet byggts på successivt, mestadels utifrån verksamhetens behov. Dock har det saknats resurser för att i samma takt hantera rutiner, städning av kod, dokumentation och annat hygienarbete, vilket lett till att en teknisk skuld byggts upp.

Nu står SLU:s webbförvaltning med flera utmaningar där problem som driftstörningar, säkerhetsproblem, långa laddtider, låg google-rankning och en onödigt komplex och svårhanterad kod, behöver hanteras.

Det görs nu inom ramen för projekt isberg, vars namn anspelar på att det mesta arbetet är "osynligt" och sker under vattenytan. Det är dock ett mycket viktigt arbete som också, åtminstone i vissa delar, är högst mätbart. 

Mål

Övergripande syftar projekt isberg till att öka stabiliteten på SLU:s webbplatser. Åtgärderna faller inom fyra områden; säkerhet, driftsäkerhet, förvaltningsbarhet samt optimering av kod. 

Säkerhet: Våra tredjepartsprodukter är dokumenterade och säkerhetsuppdaterade.

Driftsäkerhet: Vår kodbas är stabil och kvalitetssäkrad. Kritisk funktionalitet riskerar inte längre att sluta fungera. Vi har en teststrategi och kodens komplexitet har minskat.

Förvaltningsbarhet: Vi har en långsiktig och effektiv förvaltning med tydliga ramar för förvaltningsobjektet. Integrationer följer en standardiserad modell och mindre tid går till rättning av (återkommande) fel.

Optimering av kod: SLU:s webbplatser syns bättre i externa sökningar och våra sidor laddar betydligt snabbare än tidigare.  

Åtgärder

Läs om arbetet under respektive arbetsperiod (sprint) nedan. Projektet är nu avslutat.

Förstudie

Arbetet i förstudien handlade framförallt om att ringa in och avgränsa vilka insatser som ryms inom projekt isberg. Inom förstudien drog vi också upp en grov plan för innehållet i första arbetsperiodens sprintar.

Pilotsprint – utlysningssida

Vi ville testa om det är en framkomlig väg att se över en sidtyp i taget. Vi valde att börja med utlysningssidan eftersom den är väldigt långsam och ofta hänger sig i samband med publicering.

Koden är nu rättad och den loop som resulterade i att sidan hängde sig är korrigerad. Vi har också sett över vilka typsnitt som laddas in i förväg för att minska sidans laddtid. Det är en åtgärd som ger positiv effekt på hela webbplatsen. En uppföljning med verktyget Lighthouse visar på betydligt förbättrad prestanda, framförallt för mobilläget. 

Sprint 1 – CV-sida

Styrkta av resultaten i pilotsprinten gick vi vidare och kikade på CV-sidan. En sida som används av många och som också dras med en del problem. Sidtypen är långsam och det skapas ofta dubbletter.

Dubblettproblemet är nu löst och speglingen från medarbetarwebben till externwebben fungerar också som den ska. 

Webbredaktionen kontaktar de cirka 150 personer som i dag har flera CV-sidor för att reda ut vilken version som är den rätta som ska vara kvar och vilken/vilka som kan raderas.

Sprint 2 – nyhetsartikel och kalenderhändelse

Sidtyperna kalenderhändelser och nyhetsartikel har dragits med en hel del problem och i samband med produktionsättningar har gamla fel ofta återkommit.

Vi har efter många timmars grävande i kod landat i att dessa sidtyper är typexempel på varför vi inom projekt isberg behöver öka plattformens förvaltningsbarhet. Våra systemutvecklare behöver strukturera om och förenkla koden och därefter dokumentera den ordentligt. Arbetet är större än vi trodde och kom inte i mål inom sprinten. Arbetet fortsätter i september.

Sprint 3 – ingångssida, taggsida och övergripande åtgärder

Under sprinten har arbetet med sidtyperna nyhetsartikel och kalenderhändelse som påbörjades i förra sprinten slutförts och dokumentationen uppdaterats.

Vi har också jobbat med sityperna ingångssida och taggsida och förbättrat beteendet och prestandan också för dessa sidtyper.

På ingångssidan har blockytorna justerats för att ge ett mer förutsägbart resultat. En blockyta är mer flexibel, medan de andra två skapar prydligt innehåll med lika stora block. Ett antal buggar har rättats och alla blocktyper fungerar nu som de ska i alla de tre blockytorna. Filmblockets storlek har också justerats för att matcha bildknappens storlek.

Taggsidorna har fått förbättrad funktionalitet och bättre tillgänglighet. Rätt webbplatsers innehåll speglas numera upp på respektive taggsida och dubbletter undviks därmed. Dessutom har rubriknivåerna och bildernas format justerats. Bilder riskerar inte längre att beskäras på ett tokigt sätt, eller att hamna omlott med rubriken.

Utöver arbetet med de specifika sidtyperna har tredjepartsprodukter (såsom till exempel lyssnafunktionen readspeaker) uppdaterats. Efter några rättningar på sidtypen programsida fungerar numera lyssnafunktionen också för den sidtypen. 

Slutligen har kopplingen till bildbanken MediaflowPro har setts över och integrationen som möjliggör hämtning av bilder direkt från redigeringsläget i Episerver fungerar nu bra. 

Sprint 4 – DOM-modellen

Sprint 4 har fokuserat på förbättringar i webbplatsens så kallade DOM-modell. DOM står för document object model och handlar om kodstrukturen som nu förenklats och förtydligats. I samband med detta arbete har också tillgängligheten förbättrats då kodelement märkts upp på ett korrekt sätt.

Nu när grundstrukturen för DOM-modellen är satt fortsätter resten av implementeringsarbetet i projektet parallellt med resterande uppgifter i projektet.

Sprint 5 – uppdatering av Episerver

Under sprint 5 har Episerver och alla stödprodukter i form av så kallade nugetpaket uppdaterats till senast möjliga version. Webbplatsernas javascripts har också uppdaterats.

Sprint 6 – summering och dokumentation

Projektets sista sprint har till stora delar handlat om att summera projektet och att slutföra all dokumentation. En del tillgänglighetsproblem har också åtgärdats under denna sista sprint.

Sammantaget resultat

Det övergripande målet med projekt isberg har varit att öka webbplatsernas stabilitet – vilket krävt åtgärder inom fyra områden; säkerhet, driftsäkerhet, förvaltningsbarhet samt optimering av kod.

Projektets syfte har varit att lyfta upp den eftersatta förvaltningen till en hanterbar nivå för att framtida utveckling, rättningar och förbättringar inte längre ska leda till oförutsedda problem. Och det är precis det projektet åstadkommit: ökad stabilitet, förutsägbarhet och också bättre prestanda.

Dock är det viktigt att vara medveten om att webbplatserna fortsatt är i behov av mycket underhåll och förvaltande insatser. Långt ifrån all kod är genomgången nu när projektet avslutas. Men projektet har lyckats vända den negativa utvecklingen och därmed finns nu förutsättningar för fortsatta förbättringar inom ordinarie förvaltning. 

Vidare åtgärder

För att nå än bättre resultat vad gäller prestanda, säkerhet och driftsäkerhet är två övergripande uppgifter extra prioriterade för 2022, nämligen en etablering av 

  • en övergripande strategi för SLU:s totala webbnärvaro 
  • ett strukturerat redaktionellt/innehållsfokuserat underhållsarbete.