We zouden onze websites bepaald geen slagveld willen noemen, maar voor het fixen van bugs trekken we graag onze harnassen aan. Leave none alive!

Raise the alarm!

“Zo… nu eerst een bak koffie”, is steevast de eerste gedachte als ik ’s ochtends het kantoor betreed. Zodra ik in mijn bureaustoel plof, een slok koffie neem en mijn laptop openklap, komt er vanuit mijn ooghoeken een projectmanager naar me toe gevlogen.

PM: “Daan… de front-end van die bestelflow waar je gister aan gewerkt hebt is later nog wat aangepast en gaat nu kapot. De ‘Bestel nu’ knop verdwijnt op mobiel waardoor klanten dus geen bestellingen meer kunnen plaatsten. Kun je dit ASAP fixen?”

Na het nemen van m’n tweede slok koffie spoken er al gelijk een aantal vragen door m’n hoofd: “Gister werkte het toch nog?” en “Wat hebben ze in godsnaam met mijn kunstwerk gedaan?”. Een tel later realiseer ik me dat we daar niets mee opschieten en zeg ik tegen de projectmanager dat ik er gelijk naar ga kijken. Mijn dag is begonnen… let the bugfixing war begin!

Entering the battleground

Eerst zelf maar eens kijken. Ik pak mijn eigen iPhone en een rondslingerende Android telefoon erbij en ga naar de desbetreffende bestelflow. Oei… op beide devices kan ik de bestelflow doorlopen alleen is de “Afrekenen” knop verdwenen. Dit moeten we zo snel mogelijk fixen. Wel valt me op dat het formulier andere velden heeft dan dat ik me kan herinneren.

Ik besluit wat tests te doen. Door wat velden te verwijderen in de DOM van Chrome kom ik erachter dat na het verwijderen van 2 form fields de submit button weer binnen beeld valt. En dan zie ik het: de flex-direction van de container boven de velden staat op row in plaats van column.

Je denkt nu waarschijnlijk: wat zei hij zojuist? In het Nederlands komt het erop neer dat het formulier naarmate er velden bij komen van links naar rechts groeit en dus de knop rechts buiten beeld plaatst. Niet zo handig voor de omzet.

Let’s code!

Het probleem is geconstateerd, de fix zit in mijn hoofd, let’s code! Ik haal via Bitbucket de nieuwste versie van het project binnen vanaf onze server en open het project in m’n code editor. Ik pas de code aan en deploy het naar onze staging omgeving. In onze staging omgeving checken we eerst of de fix werkt voordat we het daadwerkelijk live zetten.

Geweldig, het werkt. Ik deploy het nu ook naar de live omgeving en laat het de projectmanager weten. Mission accomplished, daar zal de klant blij mee zijn!

Gaining ground

Met die bugfix achter de rug keer ik me tot ons supportsysteem JIRA. Hierin bewaren we de tickets van klanten en collega’s die gaan over bugs en mogelijke nieuwe features voor onze projecten. Al mijn developer compagnons bezitten binnen JIRA een eigen bakje met tickets die zorgvuldig worden verdeeld door onze Lead Developer Harm.

Van alle tickets op mijn naam trekt er één gelijk mijn aandacht, omdat er in blokletters SPOED voor staat. Dit ticket heeft een hogere prioriteit en er wordt van me verwacht dat ik dit vandaag nog fix. Bij het openen van het ticket blijkt gelijk waarom dit ticket spoed heeft: één van onze klanten – die een aantal horecagelegenheden bezit – krijgt geen enkele mail meer binnen en kan er ook geen meer versturen. Aangezien de reserveringsmodules op de websites gekoppeld zijn aan dit e-mailadres, komen er dus ook geen reserveringen binnen. Dit moeten we zo snel mogelijk fixen!

Radiocontact

In het ticket heeft projectmanager Mike het nummer van een contactpersoon bij de klant gezet, zodat ik rechtstreeks kan schakelen en met Teamviewer kan meekijken. Teamviewer is een remote desktopprogramma waarmee je op afstand in kunt loggen op een andere computer. Je denkt nu misschien: is dat niet gevaarlijk met al die hackers en internet criminelen tegenwoordig?

Het mooie van Teamviewer is dat je zelf eerst een ID en een wachtwoord aan de ander moet geven voordat iemand toegang heeft tot jouw computer. Gewoon veilig dus!

Hmm… de e-mailinstellingen staan goed en er is ook gewoon verbinding met het internet. Ik kan uitsluiten dat het probleem bij de klant ligt. Terwijl de klant nog aan de lijn is leg ik haar uit dat ze zich geen zorgen hoeft te maken en het probleem niet bij hun ligt. “Ik ga het meteen uitzoeken en kom er zo snel mogelijk bij je op terug.”

Calling for backup

De klant is gerustgesteld, maar het probleem nog niet verholpen. Mijn tweede stap is het bellen van onze serverbeheerder. Zij beheren onze servers en kunnen vaak snel zien of de mail het wel of niet zou moeten doen. Eenmaal in contact komt er al snel een antwoord: de opslagruimte voor de desbetreffende klant is vol. De horecagroep krijgt natuurlijk dagelijks veel mails binnen en de limiet op de mailserver is bereikt. Onze serverbeheerder schroeft de limiet wat op en ik neem opnieuw contact op met de klant. Zodra ik haar aan de lijn krijg hoor ik aan haar stem gelijk dat het goed zit.

“Oh mijn god ik heb 85 nieuwe mails! Dit wordt een lange dag”, lacht ze.

Daar kan ik haar niet bij helpen. Wel geef ik haar als raad mee om oude e-mails waar niets meer mee wordt gedaan weg te gooien.

Een tevreden klant, een gesloten ticket. Morgenvroeg vervolg ik mijn missie in de never ending battle als soldaat in de Bugfixing Army.

#sharing is caring