Software-ontwikkeling met focus op kwaliteit en veiligheid


woensdag 19 januari 2022

Bij het ontwikkelen van software-applicaties is het bewaken van kwaliteit en veiligheid essentieel. De originele functies moeten na honderd nieuwe versies nog steeds goed werken en veilig zijn. Maar hoe realiseer je dit? Door middel van 5 stappen in een grotendeels geautomatiseerd proces van reviews, testen en kwaliteitscontroles zorgen wij dat onze softwareapplicaties veilig en stabiel blijven werken, van de eerste tot de laatste versie.

Stel je voor: je nieuwbouwhuis is opgeleverd en alles is spik en span. Een week later komen ze de vloeren leggen en plaatsen ze een grote inloopmat in de hal. Strak resultaat! Terwijl de aannemer de straat uitrijdt, wil je de voordeur dichtdoen, maar die klemt... behoorlijk! De mat en ondervloer samen zijn te dik, dus de deur gaat niet meer dicht.

Dit fenomeen zie je helaas vaak bij softwareontwikkeling. Een nieuwe website zal vanzelfsprekend moeten voldoen aan de kwaliteitsnormen van zowel de opdrachtgever als de leverancier zelf. Echter, zelden blijft het bij deze oorspronkelijke versie. Nieuwe inzichten en wensen vragen om aanvullende features en dit mag uiteraard niet ten koste gaan van de bestaande functionaliteit. Met andere woorden, het toevoegen van een mat moet niet de voordeur buiten gebruik stellen. Dit verstaan wij onder het bewaken van de kwaliteit

Kwalitatief hoogwaardige software staat bij ons hoog in het vaandel. Om regressies, zoals die vastlopende deur, te voorkomen, gebruiken we bij Busting Bytes een keten van kwaliteitscontroles. Deze bewaakt bijna volledig geautomatiseerd de kwaliteit van ons werk. Elke schakel heeft een eigen verantwoordelijkheid. Iedere aanstaande wijziging doorloopt alle stappen en, indien één check faalt, dan komt de aanpassing er niet door. Dit betekent dat wij, niet onze klanten, al in een vroeg stadium eventuele problemen constateren en kunnen verhelpen.

Met de 5 stappen hieronder houden wij de kwaliteit van onze softwareapplicaties hoog en het aantal verstoringen voor klanten laag.

Automatische testen

Zodra wij een feature bouwen, maken we tegelijkertijd een automatische test, en voorzien deze van een reeks voorbeeldscenario's en de daarbij verwachte testresultaten. Eenmaal onderdeel van onze testschakel, dan moet deze test altijd slagen. Dit waarborgt dat bestaande functionaliteit blijft werken, ook als we nieuwe features toevoegen.

Maar wij gaan nog een stap verder en stellen ook eisen aan de dekkingsgraad van de automatische testen. Deze waarde is belangrijk, want dat vertelt ons hoeveel van de softwareapplicatie daadwerkelijk is getest. Ons streven is altijd om een volledige dekking te behalen, zodat we de grootst mogelijke kans hebben om issues te verhelpen voordat ze bij onze klanten terechtkomen.

Codekwaliteit

Waar de vorige stap het functionele gedrag controleert, is deze schakel verantwoordelijk voor het behouden van een nette werkomgeving. Een softwareapplicatie bestaat uit coderegels en, net als bij koken, kan je een schoon aanrecht of een berg afwas achterlaten. Fouten maak je sneller in een rommelige werkomgeving. Wij maken gebruik van een combinatie van programma's die ons werk controleert op bijvoorbeeld leesbaarheid, complexiteit, stijlregels, etc. Hoewel het misschien triviaal klinkt, kan dit een groot verschil maken, vooral wanneer de applicatie, en daarmee het aantal regels code, in omvang toeneemt.

Peer review

Hier gaat het principe 'vier ogen zien meer dan twee' staat centraal op. Wanneer een van ons een wijzigingsvoorstel heeft gemaakt, dan zorgen we altijd dat de aanpassingen technisch inhoudelijk zijn beoordeeld door een ander. In veel gevallen haalt men door middel van zo'n handmatige check de meest voor de hand liggende fouten eruit. Een bijkomend voordeel is dat iedereen op de hoogte blijft van het werk van de anderen, wat helpt om het grotere geheel scherp te houden.

Deployment

Bij de term 'deployment' moet je denken aan het bezorgen van features aan klanten. Deze procedure hebben wij ook geautomatiseerd. Deployment is hierdoor snel en de kans op een menselijke fout nihil. Ook het doen van beveiligingsupdates gaat dankzij dit proces eenvoudiger en efficiënter. Een belangrijk detail van deze automatische stap is dat feature pas beschikbaar komt als de deployment volledig is geslaagd. Mocht er in een van de stappen onverhoopt iets misgaan, dan beïnvloedt dit de 'live' applicatie niet en ondervinden onze klanten hier geen  enkele hinder van.

Monitoring

Alle voorgaande stappen verkleinen de kans op issues aanzienlijk, maar ze volledig uitsluiten kan je nooit. Om die reden monitoren wij onze softwareapplicaties op onder andere onverwachte problemen. Mocht dit voorkomen, dan ontvangen wij meteen een uitgebreid bericht met alle relevante informatie dat ons in staat stelt om vlug te handelen. In de meeste gevallen is dan het issue al opgelost voordat een eindgebruiker het is opgevallen.

In conclusie vinden wij dat het bewaken van kwaliteit en veiligheid de norm hoort te zijn bij softwareontwikkeling. Onze implementatie van kwaliteitscontroles, testen en monitoring helpt ons aan die norm te conformeren, waardoor onze softwareapplicaties veilig en goed blijven werken, van de eerste tot de laatste versie.

Wil je meer weten over onze aanpak of wil je gebruikmaken van onze diensten om jouw concept te realiseren? Stuur een DM op LinkedIn of een e-mail.


Busting Bytes icon Geschreven door Tom Keizer Co-owner & developer bij Busting Bytes

Contact us

If you are interested in our services and would like to meet for a cup of coffee,
send us a message, and we will contact you as soon as possible.