Kwaliteit & Beveiliging

De beste software maken

Het maken van geïntegreerde e-commerce software en modules gaat niet altijd over rozen. Van ingewikkelde vraagstukken tot complexe bugs, er gaat soms wat zweet en tranen zitten in een succesverhaal. Gelukkig is het met slimme tools en structuren mogelijk om de beste software te maken. Grote webshops en complexe B2B portalen zijn voor onze klanten kritisch, dit heeft direct effect op het bedrijfsresultaat. Daarmee is de drijfveer voor ons nog groter om onszelf te blijven overtreffen op het vlak van software kwaliteit.

Hieronder geven we een kijkje in de manier waarop we dat doen.

OTAP structuur

Ontwikkelen en testen gebeurt bij ons achter de schermen. Een team van programmeurs en consultants werkt samen om klantwensen te vertalen naar software. Om ervoor te zorgen dat het hele team kennis heeft van specifieke projecten is documentatie en kennisdeling een onderdeel van het ontwikkelproces. De ontwikkel- en testomgeving zijn fysiek gescheiden in het serverpark van de acceptatie en productieomgeving.

Ontwikkelde functionaliteit wordt automatisch opgeleverd in de acceptatieomgeving. Klanten krijgen een melding om nieuwe functionaliteit te testen en accepteren, pas daarna wordt een release gedaan naar een productie omgeving.

Cybersecurity & kwaliteitscontrole

Veiligheid van een B2B portaal of B2C webshop is van groot belang. De applicaties bevatten vaak gevoelige klantdata, genereren omzet en zijn een uithangbord van onze klanten. We doen er alles aan om de veiligheid te maximaliseren.

  • Automatische controle van de gemaakte software op veligheidslekken door middel van tools als SonarQube
  • Migratie naar de meest recente versies van ons open-source ecommerce platform (nopCommerce)
  • Gebruik maken van actuele, professionele Microsoft frameworks
  • Fail-overs en redundancy op serveromgevingen

Versie beheer en automatische releases

Om de continuïteit van grotere software projecten te waarborgen is het zaak dat meerdere teamleden aan een applicatie werken. Met enige regelmaat werken meerdere developers tegelijkertijd aan hetzelfde project. GitLab wordt gebruikt om er zeker van te zijn dat teamleden feilloos samen kunnen werken zonder dat ze elkaar in de weg zitten.

Doordat nieuwe functionaliteit op deze manier stapsgewijs toegevoegd kan worden aan de applicatie is het mogelijk om automatisch een release te publiceren van een nieuwe functionaliteit. Via een zogenaamde "buildserver" in Azure DevOps wordt nieuwe software automatisch gereleased op een test- en acceptatieomgeving, daaropvolgend kan ook een productieomgeving voorzien worden van de juiste versie. Door dit hele proces te automatiseren sluiten we de menselijke factor zo veel mogelijk uit en voorkomen we dat er een foutje ontstaat tijdens het updaten van de applicatie.

Om de continuïteit van grotere software projecten te waarborgen is het zaak dat meerdere teamleden aan een applicatie werken. Met enige regelmaat werken meerdere developers tegelijkertijd aan hetzelfde project. GitLab wordt gebruikt om er zeker van te zijn dat teamleden feilloos samen kunnen werken zonder dat ze elkaar in de weg zitten.

Doordat nieuwe functionaliteit op deze manier stapsgewijs toegevoegd kan worden aan de applicatie is het mogelijk om automatisch een release te publiceren van een nieuwe functionaliteit. Via een zogenaamde "buildserver" in Azure DevOps wordt nieuwe software automatisch gereleased op een test- en acceptatieomgeving, daaropvolgend kan ook een productieomgeving voorzien worden van de juiste versie. Door dit hele proces te automatiseren sluiten we de menselijke factor zo veel mogelijk uit en voorkomen we dat er een foutje ontstaat tijdens het updaten van de applicatie.

Regressietesten

Waar gewerkt wordt, worden fouten gemaakt. Om te voorkomen dat die fouten in een productieomgeving gepubliceerd worden zorgen we er voor dat zogenaamde "regressietesten" uitgevoerd worden. Belangrijke scenario's en processen worden "opgenomen" in Testcomplete, een programma van SmartBear deze scenario's worden automatisch getest en afgespeeld gedurende het ontwikkelproces. Op die manier voorkomen we dat belangrijke processen verstoord worden door een update.

Maatwerk of standaardisatie

In een omgeving waarin de shops en portalen van onze klanten gekoppeld zijn met een verscheidenheid van ERP- en PIM systemen en diverse templates/front-ends ligt "maatwerk" op de loer. In principe is er weinig mis met goed ontwikkeld maatwerk, echter er komen uitdagingen bij kijken op het gebied van continuïteit, kosten en stabiliteit. We zijn daarom continu bezig met standaardisatie, om onze klanten een solide platform te bieden die de basis is voor diverse scenario's.

Door onze branchefocus is het mogelijk om veel voorkomende situaties en wensen op te nemen in de standaard. Denk bijvoorbeeld aan klantspecifieke prijzen, in heel veel situaties bestaat de wens om een onderscheid te maken in het weergeven van netto- of brutoprijzen voor een bepaalde "rol" binnen het portaal. Deze simpele situatie is ingebakken in de standaard functionaliteit van onze portalen zodat we enkel nog de aansluiting met het achterliggende ERP hoeven te implementeren.

SCRUM en CI/CD

E-commerce is voor onze klanten bedrijfskritisch, doorgaans dragen deze applicaties direct bij aan het bedrijfsresultaat. Om die reden is snelheid en flexibiliteit voor onze klanten van groot belang als het gaat om het onderhoud en de doorontwikkeling van dergelijke webshops en portalen.

Ons software ontwikkelproces is daarop afgestemd. We werken volgens SCRUM en het "Continuous Integration & Continuous Delivery" principe, dat wil zeggen:

  • De mogelijkheid om op ieder moment een update uit te voeren aan een standaard applicatie en te werken met kleine stapjes.
  • Snel in te spelen op klantwensen, vaak binnen enkele werkdagen