belangrijk onderdeel van ons werken, maar ook hierin willen we onszelf, en soms ook onze klanten, continue ontwikkelen.
Het belang van een platform dat up-to-date is, voorzien van de nieuwste functionaliteit en zeker ook de nieuwste performance- en security patches is voor onze klanten niet altijd de belangrijkste prioriteit. Op zich logisch, want het is niet meteen zichtbaar en bovendien levert het niet direct meer bezoekers, omzet of andere zaken op waarvan je onmiddellijk het resultaat ziet. Maar er is een andere kant; zoals je niet direct de positieve punten ziet, zie je ook niet direct de negatieve punten. Nu kunnen we daar heel diep op ingaan, maar liever vertellen we hoe wij het aanpakken om de platformen van onze klanten up-to-date te houden.
Updates, een pain in the ass
The greatest PITA, de grootste Pain In The Ass? Zo hebben we er vanuit onze visie (alle platformen van onze klanten móeten up-to-date zijn, of ze willen of niet) nooit naar gekeken maar toch was de praktijk vaak wel zo. We moeten eerlijk bekennen dat we jarenlang geworsteld hebben om de shops van onze klanten up-to-date te houden.
Het sprintwerk ging vaak en regelmatig voor met als gevolg dat we vaak na onze sprints nog de shops up-to-date moesten zien te houden, daar ook regelmatig voor moesten overwerken, herplannen of het op een andere manier toch maar mogelijk zien te maken.
Ook het proces van opleveren, verzamelen en verwerken van feedback zorgde vaak voor veel onrust in onze planning, telkens beseften we wel weer dat het beter kon maar ja; de praktijk. Het is ook niet voor iedere klant mogelijk om maar eventjes gauw en tussendoor het platform door te testen en dat ook nog met de juiste focus te doen. We moeten zelfs (shame, shame) bekennen dat het wel eens is voorgekomen dat we met de nieuwe update-ronde alweer voor de deur akkoord kregen op de laatst opgeleverde update. Niet wat je wil, maar iets wat toch blijkbaar wel makkelijk gebeurt. Zeker als je minder frequent sprint.
Kortom: er kan nogal wat misgaan. Om dit te voorkomen werd het tijd om vooral eens naar onszelf te kijken, te kijken wat wij zelf kunnen doen en daar heel hard mee aan de slag gaan.
De basis, de visie
Zonder visie geen keuzes, zonder keuzes geen actie. In de basis proberen we keuzes te maken die ons dwingen om het goede te doen. Daarom beginnen we met een duidelijk aanbod.
Conform afspraak, op vaste basis Allereerst hebben we gekozen om ervoor te zorgen dat al het update-werk bereikbaar, betaalbaar is voor iedere klant. Een vast bedrag per maand op basis van een duidelijke opbouw, zodat je waar je aan toe bent en bovendien met garantie op het oplossen van issues die eventueel voortkomen vanuit updates.
Gewoon op nacalculatie In eerder stadium (sinds afgelopen jaar ging dit veel beter) waren de Magento webshop updates ietwat onvoorspelbaar. De frequentie was wat grillig, patches waren soms groot, soms klein en de ene update was flink forser dan de andere. Sommige klanten zeggen in zo’n geval liever: “voer de updates altijd maar uit, maar ik wil wel alleen betalen voor de tijd dat jullie ermee bezig zijn, ook al is de vaste basis misschien goedkoper.” Door onze systemen goed in te richten kunnen we ons update-werk tot op de minuut nauwkeurig bijhouden, maar uitgangspunt blijft dat de wens is om altijd te updaten.
Update-werk als onderdeel van sprints Is de applicatie zo groot dat het niet te doen is om een goede inschatting en dus planning te maken, dan verwerken we updates in de vaste sprint-teams. Zo houden klanten controle over de uitvoering door het scrum proces. Voor sommige klanten is dit het geval.
Module updates en maatwerk compatibility Een lastig onderdeel binnen updates lossen we op door modules bijtijds te updaten, ervoor te zorgen dat ze onder de aandacht zijn en op het backlog komen. Datzelfde geldt voor maatwerk van onszelf; we proberen ervoor te zorgen dat onze modules en maatwerk ruim voor de uitvoering van updates al compatible wordt gemaakt met de nieuwste versies van Magento en als maatwerk heel klantspecifiek is, dan komt het voor die klanten op tijd op het sprintbacklog.
Up-to-date by design, het proces anders ontwerpen
Hier begint het wat ons betreft. We hebben geleerd dat ons proces de basis is van alles wat goed gaat, maar dat het ook zeker de bron kan zijn van alles wat minder goed gaat. Gaat iets te vaak of structureel mis? Dan klopt het proces simpelweg niet. In een paar bullets leggen we de belangrijkste onderdelen in ons proces uit.
Interne en voorbereidende reviews Voordat de sprint voor uitvoering plaatsvindt is het belangrijk dat we obstakels al in kaart, en bij voorkeur ook opgeruimd hebben. Zoals net al benoemd zorgen we dat modules en ons eigen maatwerk bijtijds compatible zijn, maar ook het vooraf goed doorploegen van de changelogs is een cruciaal onderdeel.
Communicatie voor een soepele start en prettige afhandeling Vooraf iedereen op tijd informeren, de aard van de update beschrijven en ervoor zorgen dat onze klanten klaar staan om te reviewen. Het beschrijven en uitleggen van de belangrijkste wijzigingen, uitlichten van aandachtspunten en adviseren is onderdeel van de oplevering.
Update-rondes in sprint-teams Mooore Digital is een interne klant en een klant die echt sprints koopt. Deze sprints worden afgenomen om één team gefocust en toegewijd aan het update-werk te laten werken. Bijzondere aan het team is dat deze uit verschillende disciplines bestaat, zowel back-end, als front-end en support-engineer die elk een webshop beetpakken. De korte lijntjes en verschillende expertises zorgen voor het snel kunnen tackelen van problemen waar we tegenaan lopen.
De kick-off als belangrijkste startpunt Alle werkafspraken nog eens centraal, de aandachtspunten weer scherp, het doel helder, alle neuzen dezelfde kant op en bovenal: het werk zien als een kans om te leren en ook het proces weer te verbeteren. Ook een gezamenlijke changelog-analyse, een impact-analyse en bijbehorende complexiteits-inschatting is onderdeel van de kick-off.
Het beste van kanban Duidelijk kanbannend, maar zonder concessies om de bekende scrum events. We schatten serieus, we plannen serieus, de daily is uiteraard van de partij, we werken met een definition of done en ook onze retrospective ontbreekt niet.
Documentatie Dit als vast onderdeel van de uitvoering. We houden voortdurend centraal bij wat ons opvalt en houden zo zicht op de meest voorkomende problemen, module querks die over meerdere projecten voorkomen, patches die belangrijk zijn voor iedereen die met updates bezig is, maar ook wat we in de hele linie eens meer generiek zouden moeten aanpakken, zoals de uitfasering van bepaalde packages e.d. Daarnaast is al onze ervaring gebundeld in uitgebreide interne documentatie wat ervoor zorgt dat iedereen bij ons een update kan beetpakken!
In samenwerking met product owners Het updaten van applicaties is ook een goede gelegenheid om te verbeteren, want het is dé ideale gelegenheid om eens een paar collega’s met een frisse blik te laten kijken. Door goed samen te werken met de product owners komt er ook waardevolle input over zaken die opvallen of die men beter vindt kunnen.
Nazorg en monitoring Hoewel automatische tests een hoop moeten voorkomen is het altijd mogelijk dat er iets is wat je met elkaar allemaal misschien niet gezien hebt. Daarom is het een belangrijk onderdeel om goed en vlot in kaart te hebben wat je misschien gemist hebt en samen met een service en support team hebben we actief aandacht voor eventuele onvoorziene issues.
Ondersteunende zaken
De systemen op orde Wie draait welke versie, wie wordt waar naar geüpdate; patch of versie-update, hoeveel tijd kostte de vorige update, zijn er vanuit de product owner bijzonderheden? Zaken die we allemaal graag inzichtelijk hebben en bij voorkeur ook kunnen delen met onze klanten. In Jira en Confluence, welbekende Atlassian systemen, werken we samen, administreren we, monitoren we voortgang en maken we achteraf onze analyses.
Overzicht maatwerk en modules Om de applicaties die we in beheer hebben, ook klant- en project-overstijgend, goed inzichtelijk te hebben, is het belangrijk dat we overzicht hebben. Overzicht van alle modules, al het maatwerk, bij welke klanten dit aanwezig is, etc. Een belangrijk startpunt om onze voorbereidende fase in het proces goed uit te voeren.
Automatisch testen Door onze standaard checklist van basis-functionaliteiten te verwerken in automatische testen die ook onderdeel van onze release-strategie zijn, hebben we zekerheid over dat bepaalde delen altijd moeten functioneren en scheelt het bovendien een hoop tijd voor zowel ons als de mensen bij onze klanten. De ontwikkeling en implementatie heeft ons een hoop tijd gekost, maar we hebben besloten om dit gratis en standaard te verwerken in onze basis voor iedere klant.
Een ondersteunende release-straat We zorgen ervoor dat dockers automatisch worden opgestart wanneer de update-branches worden aangemaakt, onze klanten weten waar ze moeten checken.
Gestandaardiseerde communicatie Om onszelf ook te dwingen om na te denken over wat we communiceren (in ons proces) is het prettig dat we werken met standaard en bekende formats, een ander voordeel is dat het ons ook tijd bespaart in het proces en het ons in de flow houdt.
Monitoring Naast de standaard monitoring hebben we ons eigen dashboard waarin we de moeilijkere metrics zoals langlopende processen, CPU-usage, Memory-usage, cron-errors, etc. in een overzicht hebben. Ook krijgen we direct signalen in onze systemen waar het team service en support in werkt, zodat we adequaat kunnen reageren.
Bevlogen klanten Product owners, klantenservices, marketeers, zij zijn de mensen in het veld bij onze klanten en zij zijn het die toch uiteindelijk dingen zien die een ander niet ziet. Vanuit hun expertise herkennen ze patronen en afwijkingen en daarmee is deze groep een niet te onderschatten ondersteuning in het reviewen, het kritisch bekijken van changelogs maar ook eventuele issues na oplevering.
Focus en aandacht
“Updaten is geen rocket science”, “het is allemaal niet zo heel moeilijk”, “het is eigenlijk een kwestie van gewoon doen”, allemaal uitspraken die in de loop der jaren bij ons de revue passeerden. Wat is het dan wel? Ons antwoord was unaniem: focus en aandacht. Met goede focus en aandacht werken we efficiënter, foutlozer, hebben we meer aandacht voor het proces en is het bovendien ook een stukje leuker.
Met een heldere visie, duidelijk proces en de juiste ondersteunende zaken kunnen we ons update-werk steeds beter waarborgen. Met onze klanten hopen we in de toekomst ook mooie ontwikkelingen te doen, zoals bijvoorbeeld het ontwikkelen met bijbehorende functionele tests als acceptatie-criteria bij bepaalde grotere wensen of zelfs modules, het zelf kunnen inzien van test-rapporten, feedback bij review direct en automatisch verwerken naar onze systemen, enzovoort.
Problemen om je Magento platform altijd up-to-date te houden?
Vertel ons over je uitdagingen. Wij vertellen over onze oplossingen.