Zes tips voor succesvolle webdevelopment
Bij het ontwikkelen van moderne webapplicaties komt heel wat kijken. Zeker bij complexe webprojecten is het succes van veel verschillende factoren afhankelijk. Dit artikel bevat zes belangrijke tips waarmee je de kans op een succesvol verloop van je webdevelopment project flink kunt vergroten.
Het ontwikkelen van websites en webapplicaties is geen eenvoudige activiteit. Terwijl de methoden en technieken de afgelopen jaren veel volwassener zijn geworden, liggen ook de functionele en technische eisen een stuk hoger dan voorheen het geval was. Met de best practices uit dit artikel kunnen nieuwe én bestaande webprojecten hun voordeel doen.
1. Betrek gebruikers bij de ontwikkeling
Niet voor niets de eerste tip: betrek gebruikers zo veel en zo vroeg mogelijk bij de realisatie van de software. Immers, als eigen ideeën en wensen niet of onvoldoende worden getoetst, dan leiden verkeerde aannames tot foute beslissingen en neemt de kans op falen toe. Webapplicaties die technisch perfect in elkaar zitten maar geen aansluiting bij gebruikers vinden, zijn uiteindelijk waardeloos.
Gebruikers kunnen op tal van momenten bij webdevelopment betrokken worden: bij het uitdenken van de essentiële functionaliteit, tijdens de ontwikkeling om tussentijdse aannames van het projectteam te valideren en na elke oplevering om input voor de volgende iteratie te verzamelen.
Technieken om gebruikers bij de ontwikkeling te betrekken:
- Persona’s, scenario’s en user stories: het is cruciaal dat het developmentteam zich in de wereld van de gebruiker verdiept. Het kan helpen om samen met gebruikers persona’s en scenario’s uit te denken. Persona’s beschrijven specifieke type gebruikers (bij een enquêtesysteem gaat het bijvoorbeeld om een respondent en een onderzoeker). Voor het team is het goed om deze gebruikersprofielen in het achterhoofd te houden. Op basis van de persona’s kunnen scenario’s geschreven worden: een complete set van handelingen die een gebruiker neemt om een vooraf geformuleerde taak volledig uit te voeren. En aan de hand daarvan kunnen user stories geschreven worden, die het team gebruikt om de software stapsgewijs te realiseren.
- Card sorting: een relatief simpele techniek waarbij een gebruiker of een groep van gebruikers informatie in een voor hen logische onderverdeling plaatst. Deze techniek wordt bijvoorbeeld toegepast om pagina’s op de delen en een logische navigatiestructuur van een website vast te stellen.
- Prototyping: een prototype kan enorm bijdragen aan succesvolle webdevelopment, omdat het snel feedback over een concept verschaft. Prototypes zijn er in alle vormen en maten: van daadwerkelijk geprogrammeerde testsoftware tot geschetste modellen op papier. Onze ervaring is dat papieren prototypes vaak al een enorme schat aan inzicht opleveren.
- Usability testing: deze techniek maakt duidelijk hoe een website of webapplicatie echt gebruikt wordt. Deelnemers aan de test krijgen één of enkele taken die ze moeten verrichten in de site of applicatie (zoals ‘vind het Rijksmuseum met behulp van de zoekfunctie en sla het museum op in je favorieten’). Vervolgens kijkt een onderzoeker mee (‘live’ of naderhand via een opname) om te zien of de gebruiker ergens vastloopt.
- A/B testing: een vrij geavanceerde methode, vaak ondersteund met speciale software zoals Visual Website Optimizer of Google Analytics Content Experiments, om geautomatiseerd experimenten uit te voeren. Gebruikers worden opgedeeld in twee groepen. De eerste groep krijgt versie A van de website te zien en de tweede groep krijgt versie B voorgeschoteld. Door specifieke doelen te formuleren (zoals ‘contactformulier ingevuld’) wordt duidelijk welke variant het beste resultaat behaald.
2. 'Release early, release often'
Een veelvoorkomende vraag voor en tijdens het realisatieproces: hoe gaat de website of webapplicatie in de praktijk écht gebruikt worden? Als je gebruikers bij de ontwikkeling van je webapplicatie wilt betrekken en zo de kans van slagen vergroot, dan is niets zo effectief als het daadwerkelijk lanceren van een nieuwe versie van de software. Dat is immers de meest betrouwbare toets en geeft hard “bewijs” óf en hóe gebruikers de nieuwe functionaliteit gebruiken.
Door kleine verbeteringen aan de website of webapplicatie regelmatig echt te lanceren, kan waardevolle feedback van gebruikers verzameld worden. Die feedback dient vervolgens als input voor de volgende versie van de software.
In dat kader heeft het concept van het ‘minimum viable product’ de afgelopen tijd flink aan bekendheid gewonnen. De gedachte is om zo snel mogelijk de meest basale versie van een applicatie of specifieke functie te lanceren die waarde voor de eindgebruiker heeft, ook al is de uitwerking nog niet perfect. Zo kan de functionaliteit in de praktijk getoetst worden en voorkom je dat je veel tijd en geld investeert in een idee dat niet aanslaat. Een inmiddels beroemde uitspraak van LinkedIn-oprichter Reid Hoffman: “If you are not embarrassed by the first version of your product, you’ve launched too late”.
3. Hanteer een iteratieve werkwijze
Om snel en vaak nieuwe versies te lanceren, is een iteratieve werkwijze onontbeerlijk. In de praktijk zien we echter dat veel webdevelopment projecten voor een andere aanpak kiezen. Ze starten door zo breed mogelijk wensen en eisen te identificeren en deze uit te werken in zeer gedetailleerde functionele en technische requirements. Als alle wensen in kaart zijn gebracht, wordt een complete architectuur ontworpen en gaat het developmentteam aan de slag. Na enkele maanden, kwartalen of soms zelfs jaren levert het team uiteindelijk de software op.
Deze werkwijze levert lang niet altijd het gewenste resultaat op, bijvoorbeeld omdat de oplossing niet (meer) aansluit bij de behoefte van de markt. Een dergelijke werkwijze schept geen ruimte voor voortschrijdend inzicht en gaat er onterecht vanuit dat de omgeving van het project volledig gelijk blijft.
Om die reden is het belangrijk om te werken volgens een iteratieve aanpak, zoals Scrum. Met deze methode ontwikkelt het team, samen met de opdrachtgever, software in sprints. Dat zijn korte fases van 1-4 weken waarin een nieuwe versie van de software wordt gemaakt. Zo verhoog je de leverzekerheid, focus je telkens weer op wat écht belangrijk is, blijft de voortgang goed zichtbaar en verklein je de time-to-market. In het ideale geval wordt een nieuwe versie conform de ‘release early, release often’-gedachte immers zo snel mogelijk gelanceerd. Zo kan feedback van gebruikers verzameld worden, dat als input voor de volgende iteratie dient.
"Een iteratieve werkwijze is het meest effectief als gebruikers echt bij het project betrokken worden."
4. Kies de juiste technologie
Voor webdevelopment bestaan tal van technologieën. In de meeste projecten worden er één of enkele basistechnologieën gekozen, zoals de primaire programmeertaal en het applicatieframework. Die keuzes zijn belangrijk, want als je eenmaal voor een basistechnologie hebt gekozen, dan kan je die keuze niet of slechts met veel moeite veranderen. Enkele voorbeelden:
- Programmeertaal Ruby + Ruby on Rails framework.
- Programmeertaal PHP + CodeIgniter framework.
- Programmeertaal Python + Django framework.
- Programmeertaal ASP + .Net framework.
- Programmeertaal Scala + Play framework.
- Programmeertaal Java + Java EE servlets framework.
Elk van deze programmeertalen en frameworks heeft specifieke voor- en nadelen. Zelf hebben wij gekozen voor Ruby en Ruby on Rails als onze primaire technologie, omdat deze combinatie van programmeertaal en framework in onze ogen het meest geschikt is voor de ontwikkeling van moderne webapplicaties. Maar voor een specifiek project kunnen andere technologieen een betere keuze zijn.
Naast de keuze voor een programmeertaal en framework moeten er ook beslissingen over tal van andere technologieën genomen worden, zoals het databasemanagementsysteem, de opmaaktaal, het testplatform en de hostingomgeving. Hierbij spelen ook overwegingen mee op het gebied van de licensering: kies je voor open of voor closed source technologie? Heb je nog geen webdeveloper geselecteerd, dan is het verstandig om hierover het gesprek met de potentiële leveranciers aan te gaan.
Het is overigens af te raden om alle technische keuzes persé op voorhand te willen maken. Het is beter om de expertise van het ontwikkelteam te benutten en hen al gaande het project de beste oplossingen te laten selecteren.
5. Maak een realistisch inschatting van tijd en kosten
Het realiseren van een innovatieve webapplicatie omvat veel verschillende taken: het maken van het interactieontwerp, het maken van het visueel ontwerp, het selecteren van technologieën, het programmeren van de backend (server-zijde), het programmeren van de frontend (browser-zijde), het schrijven van de web- en interfaceteksten, het schrijven van documentatie, het testen van de applicatie (vaak in meerdere browsers), het inrichten van de hostingomgeving, het uitrollen van de applicatie, et cetera. Bovendien is softwareontwikkeling nog altijd één van de meest complexe werkzaamheden die er is. Het is dan ook niet vreemd dat budgetoverschrijdingen en vertragingen vaak voorkomen.
Het is belangrijk om een zo realistisch mogelijke inschatting van tijd en kosten te maken. Dat is echter niet altijd mogelijk, bijvoorbeeld als een project experimenteel van aard is. Een iteratieve werkwijze waarbij gebruikers in voldoende mate betrokken worden kan dan helpen om tijd en budget binnen de perken te houden. Door te focussen op het realiseren van de meest belangrijke functies en die functionaliteit in kleine stappen te realiseren en op te leveren, wordt voorkomen dat het project uit de pas gaat lopen en uiteindelijk geen werkelijke meerwaarde voor de eindgebruiker oplevert.
6. Spreek met je webdeveloper over kwaliteit
In onze ervaring spreken klanten en leveranciers te weinig over het vaststellen en bewaken van de kwaliteit van de website of webapplicatie, zowel vanuit functioneel als technisch perspectief. Met functionele kwaliteit bedoelen we de mate waarin de software de gebruiker op een prettige wijze in staat stelt om zijn of haar doelen te behalen. Een webapplicatie die technisch zeer hoogstaand is maar in de praktijk nauwelijks bruikbaar is voor de eindgebruiker, kent een lage functionele kwaliteit.
Technische kwaliteit wordt onder meer bepaald door de stabiliteit, snelheid, veiligheid en uitbreidbaarheid van de software. De webdeveloper kan diverse maatregelen nemen om de technische kwaliteit te verhogen, zoals een testgedreven ontwikkelproces, code reviews en pair programming met collega-developers en nauwkeurige registratie van bugs en andere bevindingen.
Het is aan te raden om bij de selectie van een webdeveloper te praten over wat het betreffende webbureau doet om de kwaliteit van de oplossing te garanderen. Vraag zonodig om concrete voorbeelden.
Vergroot de kans van slagen
Door bovenstaande tips toe te passen in een webdevelopment project, neemt de kans van slagen aanzienlijk toe. Daarbij is het belangrijk om te realiseren dat veel van de tips met elkaar samenhangen. Zo is een iteratieve werkwijze het meest effectief als gebruikers bij het project betrokken worden en hebben technologiekeuzes invloed op de kwaliteit van de software.
Heb je vragen over succesvolle webdevelopment? We helpen je graag.
Bel mij op