Als men 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? In dit artikel leggen we je graag uit wat software development is.

Het verschil tussen hardware en software

Voor we verder gaan, nemen we je even mee naar de basis: we kunnen namelijk onderscheid maken tussen software en hardware. Onder hardware worden fysieke apparaten verstaan, welke je kunt gebruiken met de 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 software 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 de webbrowser te benaderen is, wordt ook wel een webapplicatie genoemd. Een voorbeeld hiervan is Watermelon Messenger. Het voordeel van een webapplicatie is dat het programma niet geïnstalleerd hoeft te worden op je computer, maar direct toegankelijk is via de webbrowser met jouw 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 schrijven van de code). Het bestaat uit meerdere activiteiten die allemaal ontzettend belangrijk zijn om een succesvol product op de wereld te zetten.

Hieronder zie je globaal de fasen die doorlopen worden 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 jij 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.Wij werken zelf met Laravel, een PHP framework dat zorgt voor de onderliggende structuur van websites en webapplicaties.

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 testen deze, om zo te kijken of het product gebruikt kan worden zoals verwacht.

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’.

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.

Software Development: de conclusie

Een ding is duidelijk, bij software development komen meerdere dingen kijken. Het zijn niet alleen de slimme programmeurs en onbegrijpelijke codes. Integendeel, het zijn verschillende fasen die doorlopen worden van ontwerpen, bouwen, testen en onderhouden. Dit is iets waar we bij beeproger enorm veel energie van krijgen. Daarom bouwen wij ook met liefde apps voor onze klanten. Benieuwd naar alles wat we al gedaan hebben? Bekijk dan eens onze cases.