Nieuws

Projectaanpak fase 5: Het bouwen van de webshop

Nu de technische- en functionele analyse afgerond is, gaan we over naar fase 5: het bouwen van je webshop. In deze blog leggen we stap voor stap uit hoe PHPro tewerk gaat tijdens de opbouw van jouw webshop.

Development

Best of both: Mix van waterval en SCRUM

In deze fase stellen we voor om tijdens de ontwikkeling te werken volgens een mix tussen de klassieke waterval methode en Agile/SCRUM. Zo werken we om de twee weken naar een nieuwe release toe: het zogenaamde potentially shippable product, ook wel “Minimum Viable Product” (MVP) genoemd.
Dit betekent dat we elke twee weken functionaliteiten kunnen opleveren die potentieel klaar zijn om naar productie te gaan. Deze werkwijze zorgt ervoor dat het mogelijk is om sneller in te spelen op verandering in Agile omgevingen.

In de tussentijd leveren we demo’s van de applicatie af zodat je altijd een beeld hebt van de vooruitgang van het project. De testfase wordt op deze manier niet naar het einde van het project opgeschoven en zo vermijden we onnodige tijdsdruk bij de klant. Tijdens die periode voeren we immers meerdere taken uit zoals:

  • Content input
  • Content migratie
  • Testing
  • Bijsturing
  • ...

Deze tweewekelijkse releases, ‘Sprints’ genoemd, vind je steeds terug in de gedetailleerde projectplanning en ziet er schematisch als volgt uit:

sprint backlog

Alle functionaliteiten, beschreven in het analyse document, vormen de basis voor de product backlog. Die schrijven we uit in user stories. Bij elke sprint voeren we een selectie uit de backlog uit. Bij elke aanvang van een nieuwe sprint maken we zo’n selectie. Op het einde van de sprint leveren we de nieuwe functionaliteit op zodat we steeds richting de MVP/nieuwe release werken.

Development traject

Starten doen we met de globale analyse: daarin ligt de basis om het platform te ontwikkelen. Verschillende delen van het proces kunnen gelijktijdig lopen om de efficiëntie te verhogen. Zo is er voldoende ruimte om ideeën en deelresultaten te herhalen.

Grafisch stellen we de daaropvolgende stappen binnen het development traject als volgt voor:

development traject

We vertrekken van het materiaal uit de voorgaande fase:

  • Wireframes
  • Uitgewerkte design- en styleguide
  • Input uit het analyse document
  • Het gekozen thema

In de development fase werkt elke ontwikkelaar met een volledig lokale (op eigen werkstation) set-up. Hierdoor werken ontwikkelaars op een efficiënte manier onafhankelijk van elkaar op éénzelfde project. PHPro werkt met portable ontwikkelingsomgevingen zodat de developer zelf geen tijd hoeft te spenderen om nog één op te zetten of af te stellen. Op die manier betrekken we mensen makkelijk bij het project. Daarvoor gebruiken we Docker.

PHPro werkte een eigen systeem uit bovenop Vagrant die in samenwerking met AWS zorgt voor een zeer snelle opstart en inwerking van developers in het team. Een central development server is enkel opgezet en toegankelijk voor PHPro zelf. Die dient om de permanente versie, opgeleverd door verschillende ontwikkelaars, te kunnen gebruiken en uittesten.

Onze ontwikkelaars doen grondige testing van elk van de ontwikkelde componenten op hun eigen omgeving en op de development server. De versie op de testomgeving staat ter beschikking van de projectmanager en de testers. De klant heeft een acceptatie server voor functionele testen en acceptatietesten.

Versiebeheer

Versiebeheer, het vormt een integraal deel van onze werking: de initiële development set-up vormt ook de bron voor het versiebeheersysteem. PHPro gebruikt hiervoor het populaire bitbucket systeem.

Eerst worden wijzigingen die ontwikkelaars doen op hun lokale systeem ingecheckt in het versiebeheersysteem (bv. upgrade naar nieuwe versie, toevoegen/upgraden module, aanpassingen code, alle elementen betreffende grafische lay-out). Daarop kunnen andere ontwikkelaars deze wijzigingen dan weer importeren en voortwerken op een permanente/geconsolideerde versie.

GrumPHP kijkt de code na op coding standaarden voordat de ontwikkelaars hun code toevoegen tot het versiebeheersysteem. Voldoet de code de standaarden niet? Dan moet de ontwikkelaar eerst correcties doorvoeren alvorens zijn/haar code toe te voegen.

De set-up van de test- en acceptatie versie (later ook productie versie) gebeurt ook vanuit de code zoals opgeslagen in het versiebeheersysteem. Bitbucket laat ook tagging toe: aanduiden van een bepaalde versie als een snapshot, met een gestructureerd major. minor. versie nummer of een niet-technische benaming. Op die manier heeft PHPro een duidelijke historiek van intermediaire versies van de software.

Anonimisatie script

Tijdens ontwikkeling en testen is het nuttig en nodig om regelmatig een ‘kopie’ van de productiedata te nemen om daar op te ontwikkelen en te testen. Wij voorzien geautomatiseerde ‘database dump’ scripts die een kopie nemen van de productiedata en de GDPR-gevoelige informatie anonimiseren. Er komt nu geen persoonlijke informatie op de test, acceptatie en lokale ontwikkelomgevingen terecht.

Testen, testen en nog eens testen!

In een pakket bundelen we de ontwikkelingen in elke fase die technisch en functioneel getest worden samen. Die worden vervolgens ingezet op de testomgeving om samen met de web analist en beschikbare vertegenwoordigers van de klant te evalueren. Technische testen omvatten unit- en integratietesten. In Bitbucket wordt alleen een werkende code ingecheckt.

Voor de klant voorziet PHPro momenteel geen automatische testen. Heb je een uitgebreider project? Dan gebruiken we geautomatiseerde Selenium testen. Voor verschillende web- en mobile browsers maken we gebruik van BrowserStack Automate in combinatie met Jenkins. Geautomatiseerde testen voeren we uit op de DEV-server van het project. De analist, projectmanager en/of een toegewijd testprofiel testen de ontwikkeling. Na de uitrol evalueren we elke versie samen met de klant.

Tijdens en na de testfase krijg de klant toegang tot het project management- en bug tracking systeem JIRA. Na de livegang vervalt die toegang. Indien de klant gebruik wenst te maken van deze tool, rekenen we een jaarlijkse kost van €150,00 ex. BTW aan. Die kost vervalt wanneer de klant gebruikmaakt van het support contract. In het support contract zitten licenties van JIRA inbegrepen in de kostprijs.

JIRA registreert onder andere bugs/problemen/vragen. Klanten raadplegen zo op een eenvoudige manier de status van een issue en communiceren via JIRA.

Projectmanagement

Opvolging en transparantie

JIRA wordt ook gebruikt voor de opvolging van de ontwikkeling. Meer informatie: https://nl.atlassian.com/software/jira.
 
De klant krijgt een account van JIRA, zo is PHPro transparant ten opzichte van de voortgang van development. Op elk moment kan de klant de actuele toestand van elke functionaliteit (issue) opvolgen:

  • Workflow
  • Omschrijving
  • Release

Zowel de klant als PHPro kunnen comments toevoegen aan de issues. Dat betekent: weg met veelvoudig e-mailverkeer. De gebruiker raadpleegt nu steeds de recentste communicatie.

Voorbeeld van een JIRA workflow:

JIRA workflow

Release management

Binnen PHPro werken we binnen elk project met een professioneel release management. Een “Version” in JIRA komt overeen met een deploy. Dit betekent dat we voor élke deploy een “Version” in Jira terugvinden. Het is de taak van de project manager en technical lead om dit te bewaken.
 
Elke deploy van de master code naar een productie omgeving moet ook beschikbaar zijn in JIRA als een “version”.
 
Voorbeeld van versions in JIRA:

Versions JIRA

Voor de nummering maken we gebruik van Semantic versioning. Dit geeft een duidelijk beeld van wanneer iets naar productie is gegaan en helpt bij het identificeren van problemen die op productie opgemerkt worden.

Semantic versioning

Documentatie en opvolging

Voor opvolging van documentatie, krijgt de klant toegang tot de projectpagina binnen Confluence (zie: https://nl.atlassian.com/software/confluence).

Met deze tool heb je elk moment toegang tot de laatste versie van documenten en informatie. Ideaal om voortgang en kennis te delen. Standaard wordt onderstaande structuur met volgende (sub-) categorieën opgezet

Documentatie in confluence

Web analytics

Tijdens de development fase stellen we ook jouw web analytics af zodat je data altijd correct en volledig is. Wat mag je verwachten?

  • Een ordelijk en overzichtelijk Google Tag Manager account: We zetten je Google Tag Manager account op en creëren een ordelijke structuur in je tags en containers. Dit geeft steeds een duidelijk overzicht over de gemeten data.
  • Een correct en gebruiksklaar Google Analytics Account: We stellen je Google Analytics account af (of andere web data tools) zodat jouw data goed doorkomt en nauwkeurig is. Eerst stellen we de juiste filters, kanaalgroeperingen en doelen in en bekijken we daarna of je sales en omzetcijfers correct gerapporteerd worden.
  • (Eventueel) een klaarhelder Google Looker Studio performance dashboard: Indien gewenst kan PHPro ook flexibele performance rapporten opstellen in Google Looker Studio. Deze rapporten zijn makkelijk aanpasbaar en centraliseren data van verschillende bronnen in 1 dashboard. Ideaal wanneer je regelmatig nood hebt aan uitgebreide performance rapporten.

Door het opzetten van analytics al tijdens development op te nemen, hoef je achteraf geen veranderingen door te voeren om de juiste data te krijgen.

Oplevering

Wanneer alle functionaliteiten, die nodig zijn voor livegang, gebouwd en getest zijn kan de webshop opgeleverd worden. Eindelijk kan je de vruchten plukken van al het harde werk! Maar het is dan nog niet volledig gedaan. Ook de eerste weken na livegang staat het team van PHPro klaar om eventuele bugs aan te pakken of andere, minder belangrijke, functionaliteiten op te leveren.
 
Je kan na oplevering volop aan de slag met de webshop en starten aan jouw nieuwe online avontuur!

Wil jij ook een webshop bouwen in samenwerking met een professioneel en ervaren team?