What The beep is… – Software Development?

What The beep is… – Software Development?

Als je denkt aan software development krijgen de meeste mensen visioenen van slimme programmeurs die ingewikkelde, onbegrijpelijke codes typen waaruit vervolgens een ingenieus software product ontstaat. Software development is inderdaad het proces dat wordt gevolgd om een software product te maken.

Maar wat houdt het nou precies in?

Wij leggen het je uit.

 Tweet dit: What The beep is… – Software Development

Het verschil tussen hardware en software

Laten we even teruggaan naar de basis: we kunnen namelijk onderscheid maken tussen software en hardware. Onder hardware worden fysieke apparaten verstaan, welke je kunt gebruiken met je computer.

Software is geen fysiek product, maar een verzameling van code. Deze code wordt geïnstalleerd op de harddrive van je computer óf is via je webbrowser te benaderen. Een voorbeeld van de eerste is het Microsoft Office pakket. Deze programma’s installeer je op je computer en als je ze wilt gebruiken open je het programma zelf.

Software die via je webbrowser te benaderen is, wordt ook wel een webapplicatie genoemd. Een voorbeeld hiervan is Watermelon Messenger. Het voordeel hiervan is dat het programma niet geïnstalleerd hoeft te worden op je computer, maar direct toegankelijk is via je webbrowser met je inloggegevens. Je kunt dus ook op andere apparaten gebruik maken van de software.

Software Project Management

Software ontwikkeling bestaat niet alleen uit het daadwerkelijk bouwen van het software product (het echte code schrijven). Het bestaat uit meerdere activiteiten die ontzettend belangrijk zijn om een succesvol product op de wereld te zetten.

Zie hieronder de globale fasen in een software ontwikkelproces:

Ontwerpen

Tijdens het ontwerpen worden de wensen van de opdrachtgever besproken. Er wordt besproken welk probleem het product moet oplossen voor de eindgebruiker en welke functionaliteiten (features) hiervoor cruciaal zijn.

In het geval dat de opdrachtgever niet de eindgebruiker is, is het het ook van belang dat de softwarebouwer in gesprek gaat met de eindgebruiker (waar mogelijk). Een opdrachtgever kan namelijk een bepaalde mening hebben over cruciale functionaliteiten die wellicht door de eindgebruiker als minder belangrijk worden gezien (of juist andersom). Deze input is ontzettend belangrijk om een succesvol product te bouwen.

Aan de hand van een uitgebreide inventarisatie wordt vaak een wireframe gemaakt. Dit is een schematische weergave van hoe het eindproduct eruit moet zien. Het uitwerken dwingt je om alle zaken, die van belang zijn tijdens het bouwen, alvast visueel te maken. Dit vermindert later het risico op miscommunicatie tussen opdrachtgever en opdrachtnemer.

Bouwen

Tijdens de bouwfase van het software development proces zetten de programmeurs het ontwerp om in een daadwerkelijk product. Voorheen werd dit vaak gedaan door back-end developers (verantwoordelijk voor het bouwen van de technologie achter het product) en front-end developers (verantwoordelijk voor het bouwen van datgene wat je als gebruiker kunt zien en gebruiken). Tegenwoordig is het onderscheid tussen front-end en back-end steeds meer vervaagd, omdat de achterkant en de gebruikersomgeving steeds meer met elkaar verweven zijn.

Voor het maken van een softwareproduct worden verschillende talen en frameworks gebruikt. Voor het bouwen van de achterkant kunnen zogenaamde server side talen als PHP, Ruby, Python en Java gebruikt worden. Deze zorgen ervoor dat de server, de applicatie en de database met elkaar communiceren. Hulpmiddelen als MySQL, Oracle en de Microsoft SQL Server worden gebruikt om data te vinden, te gebruiken en om te zetten in begrijpelijke output voor de eindgebruiker. Een goede software developer zorgt ervoor dat zijn code zo schoon, bruikbaar en goed gedocumenteerd is.

Front-end developers, de ontwikkelaars die verantwoordelijk zijn voor het ‘gezicht’ van het product, gebruiken de HTML, CSS en Javascript talen. Voor de laatstgenoemde kan gebruik worden gemaakt van frameworks als Angular of Vue.js. Deze zorgen ervoor dat het product er op elk apparaat goed uitziet en simpel in gebruik is.

Tijdens het programmeren is het belangrijk om de code op een logische en gestructureerde manier vast te leggen, ook wel documenteren genoemd. Dit wordt gedaan door de software ontwikkelaars en stelt hen op een later tijdstip in staat om aanpassingen en verbeteringen gemakkelijker door te voeren.

Testen

De testfase is één van de belangrijkste fasen in het software ontwikkelingsproces. Vooral wanneer verschillende ontwikkelaars samen aan het product hebben gewerkt, is het belangrijk om te testen of alles goed op elkaar aansluit en werkt zoals het moet werken. De bouwers van het product – de programmeurs zelf – testen het product, maar ook de eindgebruikers om te kijken of het product gebruikt kan worden zoals verwacht.

 Tweet dit: De testfase is één van de belangrijkste fasen in het software ontwikkelproces

Onderhouden

Als iedereen na het testen tevreden is over het product is het klaar! Hoewel, de eerste versie dan. Een software product is namelijk nooit af. Het product moet onderhouden worden zodat het goed blijft werken, ook als zijn omgeving wijzigt (als bijvoorbeeld de browsers waarop hij draait vernieuwen). Daarnaast bestaat de onderhoudsfase uit het uitbreiden van het product met nieuwe functionaliteiten. Na de lancering van het product gaan steeds meer mensen het product gebruiken en komt er steeds meer kennis over hoe het gebruikt wordt. Deze inzichten worden gebruikt om te beslissen welke functionaliteiten de applicatie nog beter aan laten sluiten op de wensen van de eindgebruiker.

Welke activiteit wanneer en op welke manier moet worden uitgevoerd, wordt beschreven in software project management methodes. Hier zijn duizenden boeken over geschreven. De meest bekende basismethoden zijn ‘Waterfall’ en ‘Agile’. In één van onze volgende blogposts gaan we verder op deze methoden voor het ontwikkelen van software en hun voor- en nadelen in.

De stappen die doorlopen worden om uiteindelijk tot een succesvol product te komen, worden gezamenlijk het software development proces genoemd. Het daadwerkelijk bouwen van het product is hierin uiteraard cruciaal, maar de andere fasen zijn minstens zo belangrijk om tot een goed product te komen. De manier waarop dit wordt uitgevoerd kan een grote impact hebben op het succes van een product.

Andere artikelen die je wellicht interessant vindt:

Meer weten?

Wij gaan graag met je in gesprek!