Zeven manieren om de kwaliteit van webapplicaties te verhogen
Een goede webapplicatie is attractief, gebruiksvriendelijk en technisch superieur. In dit artikel richten we ons op de techniek. Hoe creëer je een applicatie die feilloos draait? Een kijkje onder de motorkap.
Allereerst, wat is technische kwaliteit? Waar moet een webapplicatie aan voldoen? De belangrijkste kwaliteitscriteria:
- Stabiliteit – Alles werkt naar behoren, er doen zich geen onverwachte fouten (bugs) voor.
- Snelheid – De applicatie reageert snel en is bovendien eenvoudig op te schalen, zodat meerdere gebruikers gelijktijdig met het systeem kunnen werken.
- Veiligheid – Gegevens zijn veilig opgeslagen en alleen toegankelijk voor geautoriseerde personen en systemen.
- Zorgvuldigheid – De applicatie is met grote zorg in elkaar gezet en kan in de toekomst makkelijk worden uitgebreid, al dan niet door andere ontwikkelaars.
Om een webapplicatie te creëren die aan al deze eisen voldoet, onderscheiden we zeven voorzorgsmaatregelen. Naast deze ‘technische’ maatregelen, zijn er ook meer functionele methoden. Denk aan regelmatige tests met gebruikers. Maar daarover in een ander artikel meer.
1. Test Driven Development (TDD)
Test-driven development (TDD) is een ontwikkelmethode voor webapplicaties, waarbij éérst tests worden geschreven en daarna pas de code. Dit resulteert over het algemeen in betere en meer betrouwbare code. Door deze werkwijze wordt de programmeur namelijk gedwongen eerst na te denken over wat het stukje software precies moet kunnen.
Het voordeel van deze werkwijze is dat er rond de code een ingenieus bouwwerk van automatische tests ontstaat. Dit bespaart vooral in het eindtraject veel tijd (en dus geld), want wijzigingen in dit stadium kunnen door de toegenomen complexiteit nogal eens voor problemen zorgen. Dankzij test-driven development ziet de programmeur in dit kritieke stadium geen fouten meer over het hoofd. Dit beperkt het aantal bugs tot een minimum.
2. Code reviews
De praktijk leert dat de kwaliteit van geavanceerde webapplicaties met code reviews enorm verbetert. Eén of meerdere programmeurs van buiten het ontwikkelteam controleren de broncode. Doordat de reviewer niet deelneemt aan het reguliere (Scrum) team, wordt hij of zij niet beïnvloedt door de dynamiek van het team. Dat komt de betrouwbaarheid ten goede.
Tijdens een code review wordt gelet op:
- Syntax – de code moet duidelijk leesbaar en tegelijk goed te onderhouden zijn.
- Security – de code houdt rekening met alle belangrijke beveiligingspunten.
- Efficiëntie – schrijf nooit meer code dan strikt noodzakelijk is.
- Performance – de code moet, waar nodig, snel verwerkt kunnen worden (in veel gevallen bepaalt 20 procent van de code de snelheid voor 80 procent van de applicatie).
- Licenties – de regels voor copyrights van eventuele bestaande code worden correct nageleefd.
Mocht uit een controle blijken dat een bepaald deel van de broncode niet voldoet aan de kwaliteitseisen, dan krijgt de oorspronkelijke ontwikkelaar de code weer terug. Deze herschrijft de delen die verbetering nodig hebben en stuurt ze opnieuw naar de code reviewers.
Een introductie tot het ontwikkelen van succesvolle sites en apps.
3. Iteratieve werkwijze
Een iteratieve werkwijze zoals Scrum geeft de klant de mogelijkheid zeer regelmatig te reageren op een nieuwe versie van de applicatie. De klant is hierdoor nauw betrokken bij het proces en kan aan de hand van eventuele prototypes meteen zien of iets werkt in de praktijk. Dit geeft ruimte voor voortschrijdend inzicht. Nieuwe ideeën worden eenvoudig overgenomen en geïmplementeerd.
Door geavanceerde webapplicaties op deze manier in kleine stapjes op te bouwen en tussendoor regelmatig te herstructureren, neemt de kwaliteit toe. De programmeurs ontwikkelen een complex bouwwerk, onderdeel voor onderdeel, net zo lang tot het perfect werkt.
"Voor een goede werking van de webapplicatie is ook de hostingpartner cruciaal."
4. Pair programming
Vier ogen zien meer dan twee. Bij complexere onderdelen van de website of webapplicatie, kan het nuttig zijn om met twee programmeurs achter één computer te gaan zitten en zo gezamenlijk de webapplicatie te ontwikkelen. Dit voorkomt niet alleen fouten, het vergroot ook de kwaliteit van de software omdat beide programmeurs profiteren van elkaars kennis en ervaring.
5. Versiebeheersysteem
Een versiebeheersysteem houdt alle wijzigingen in de broncode bij. Elke wijziging wordt gekoppeld aan een tijd en een programmeur. Vergelijk het met wijzigingen bijhouden in Microsoft Word.
Dit systeem werkt zeer goed in combinatie met test-driven development. Zodra de tests aangeven dat één van de programmeurs een fout heeft geïntroduceerd, kan de code snel en efficiënt worden teruggezet naar een eerdere versie. Eventuele verbeteringen van een andere programmeur gaan zo niet verloren. Een versiebeheersysteem maakt het dus mogelijk met meerdere mensen tegelijkertijd te schaven aan de code zonder dat er foutjes insluipen.
6. Bevindingenregistratie
Kwaliteit betekent ook dat alle opmerkingen en correcties van de klant nauwkeurig worden verwerkt en opgevolgd. De Issue Manager stroomlijnt dit proces. Hij is verantwoordelijk voor het registreren, bewaken, afhandelen en terugkoppelen van alle feedback.
De belangrijkste tool van de Issue Manager is een Issue Tracker. Hierin wordt alle feedback geregistreerd en afgehandeld volgens een vaststaande procedure. De issue tracker garandeert dat alle opmerkingen ook daadwerkelijk opgevolgd worden. De opdrachtgever heeft de mogelijkheid de status van iedere opmerking of wijziging te volgen.
7. Veilige, betrouwbare hosting
Voor een goede werking van de webapplicatie is tot slot de hostingpartner cruciaal. Belangrijk zijn hierbij:
- Betrouwbaarheid – de webapplicatie moet 24 uur per dag, zeven dagen in de week toegankelijk zijn. Zorgvuldige monitoring is hierbij van groot belang; gaat er onverhoopt iets mis, dan kan er direct worden ingegrepen. Daarnaast zijn betrouwbare verbindingen met één of meerdere internetknooppunten belangrijk en is het aan te bevelen te kiezen voor een provider die beschikt over meerdere, onafhankelijk van elkaar functionerende webservers.
- Snelheid – met de juiste configuraties zijn de hoogste snelheden mogelijk. Alleen zo kan de webapplicatie optimaal presteren.
- Veiligheid – door virussen en hackers is het nergens op het internet echt veilig en daarom is het belangrijk dat de onderliggende software up-to-date is (altijd de nieuwste beveiligingsupdates).
- Capaciteit – tot slot is het belangrijk dat de capaciteit bij een plotselinge sterke stijging van het aantal bezoekers, snel wordt opgeschaald.
Wij hosten onze websites en webapplicaties in samenwerking met onze hostingpartner True.
Kom langs in Utrecht en we leggen het je uit.
Wij zijn altijd op zoek naar enthousiaste en talentvolle ontwikkelaars. Mensen die niet voor doorsnee gaan en die hun talent willen inzetten om (web)apps te bouwen die betekenisvolle impact hebben.