Software development bestaat niet alleen uit het schrijven van code - oftewel het bouwen van het software product. Het bestaat uit meerdere activiteiten.
Als eerste is het belangrijk om een werkwijze te kiezen om een raamwerk op te stellen waarin de stappen van de softwareontwikkeling worden toegepast. Het beschrijft een globaal werkproces of stappenplan voor het project. Hierbij kun je denken aan:
Het ontwikkelen van software omvat doorgaans de volgende stappen:
1. Behoefte van de klant vaststellen
Als eerste is het belangrijk om vast te stellen wat de klant precies wil. Hiervoor voer je een uitgebreid marktonderzoek uit en een brainstormproces. Belangrijk is om de levensvatbaarheid van het product te bepalen, welke functies en diensten de software moet bieden en hoe de eindgebruiker er het meeste uit kan halen. Je kunt deze informatie op verschillende manieren verzamelen, maar probeer altijd in gesprek te gaan met potentiële en bestaande klanten om dit te achterhalen.
2. Vereisten van de software bepalen
In een documentatie wordt vastgesteld wat de technische- en gebruikerseisen zijn van de software. Het geeft een gedetailleerd overzicht van ieder onderdeel van de softwareapplicatie.
3. Ontwerp
In deze fase stellen de designers en developers geavanceerde technische specificaties op die zij nodig hebben om de software volgens de vereisten te kunnen ontwikkelen. In een document worden onder andere de volgende specificaties beschreven: het ontwerp, de componenten, de communicatie, de front-end weergave en de user flows van het product. Dit biedt een houvast voor developers en vermindert de kans op fouten en vertragingen.
Aan de hand van de verzamelde gegevens wordt een zogeheten wireframe gemaakt. Dit is een schematische weergave van hoe het eindproduct eruit moet zien. Het dwingt je om alle belangrijke vereisten uit te werken en visueel te maken om het risico op miscommunicatie tussen opdrachtgever en opdrachtnemer te verminderen.
4. Development
Developers verwerken alle productspecificaties en vereisten die zijn vastgesteld in een code. 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 verschil tussen beide functies wat vervaagd, aangezien de gebruikersomgeving en achterkant steeds meer op elkaar lijken.
Voor het bouwen van de achterkant worden verschillende talen en frameworks gebruikt. Zogenaamde server side talen als PHP, Ruby, Python en Java worden gebruikt om ervoor te zorgen dat de server, de applicatie en de database met elkaar communiceren. Een ander veel gebruikte server side taal is Laravel, een PHP framework.
Programma’s als MySQL, Oracle en Microsoft SQL Server worden gebruikt om de data te vinden, te gebruiken en om te zetten in begrijpelijke output voor de gebruiker. Een software developer zorgt ervoor dat de code die hij of zij schrijft schoon, bruikbaar en goed gedocumenteerd is.
Front-end developers maken gebruik van HTML, CSS en Javascript talen. Hiermee ontwikkelen ze als het ware het ‘gezicht’ van het product. Met Javascript kun je gebruik maken van frameworks als Angular of Vue.js om ervoor te zorgen dat het product er op elk apparaat goed uit ziet en simpel in gebruik is.
5. Testen
Na het ontwikkelen kan de software geïmplementeerd worden in de omgeving en kan de proefversie worden getest. In deze fase wordt de software getest op bugs en worden de prestaties gecontroleerd. Dit wordt vaak gedaan door deskundige software testers. Als zij na veelvuldig testen er zeker van zijn dat de software presteert volgens de vastgestelde vereisten, kan de software worden opgeleverd.
6. Onderhouden
Een software product is nooit helemaal af en moet regelmatig onderhouden worden zodat het goed blijft werken. Daarnaast kan de software ook naar wens uitgebreid worden met nieuwe functionaliteiten. Na de lancering krijg je steeds meer inzicht in het gebruik van het product en deze leiden vaak tot nieuwe wensen binnen de software.
Het onderhouden van software wordt vaak uitgevoerd door een systeembeheerder of applicatiebeheerder. Zij zorgen ervoor dat de systemen correct blijven functioneren binnen de organisatie. Een software developer voert doorgaans nieuwe functionaliteiten door. Overigens kan het ook zo zijn dat hij of zij verantwoordelijk is voor het onderhoud, maar dit verschilt per organisatie.