Papa?! Wat doe je eigenlijk allemaal op je werk?
“Allemaal die letters en cijfers en kleurtjes. Ik snap er niks van.”
Inleiding
Als vader in een samengesteld gezin met vier kinderen is dat een vraag die mij vaker dan eens gesteld is. Maar probeer het ook maar eens uit te leggen aan ieder andere leek op het gebied van IT. Maar wat doet een softwareontwikkelaar eigenlijk? Ik vergelijk het ontwikkelen van software graag met het spelen met Lego of bijvoorbeeld het bouwen van een huis.
Spelen met Lego
Als softwareontwikkelaar heb ik namelijk een ongekende vrijheid om dingen op een eigen manier te bouwen en te ontwikkelen. Net zoals ik vroeger als kind mijn Lego-creaties helemaal naar mijn eigen visie kon bouwen, kan ik nu mijn softwareprojecten vormgeven volgens mijn eigen ontwerpen en ideeën. In plaats van de voorgedefinieerde Lego bouwsteentjes kan ik mijn eigen bouwsteentjes creëren en die gebruiken voor het maken van mooie website, applicatie, of complexe algoritmes. Of misschien wel een virtueel huis.
Een huis bouwen
Voor het publiek dat niet (meer) met lego speelt vergelijk ik het liever met het bouwen van een huis. In de basis zijn er natuurlijk de bakstenen, met bakstenen metsel je een muur, met muren maak je een huis. In de software zou je dit kunnen modelleren als de classes/entiteiten huis, muur, steen met onderlinge relaties. Maar als we uitzoomen zijn er nog meer overeenkomsten:
Planning en Ontwerp: Zowel het bouwen van een huis als het ontwikkelen van software begint met een zorgvuldige planning en ontwerp. Architecten maken blauwdrukken voor een huis, terwijl softwareontwikkelaars ontwerpdocumenten maken die de structuur en functionaliteit van de software beschrijven.
Teamwerk: Zowel bouwprojecten als softwareontwikkeling vereisen teams van mensen met verschillende vaardigheden. Bouwprojecten hebben timmerlieden, loodgieters, elektriciens, enzovoort, terwijl softwareontwikkeling teams van programmeurs, ontwerpers en testers heeft.
Fasen en Iteraties: Beide processen verlopen in fasen en iteraties. Bij het bouwen van een huis zijn er stadia zoals fundering, ruwbouw en afwerking. Softwareontwikkeling volgt ook een reeks stappen, van het schrijven van code tot het testen en implementeren van software. Beide processen kunnen iteratief zijn, waarbij aanpassingen en verbeteringen worden aangebracht gedurende het project.
Kwaliteitsborging: Zowel bouwprojecten als softwareontwikkeling hebben strenge kwaliteitsborging. Bouwinspecteurs controleren of huizen aan bouwcodes voldoen, terwijl softwaretesters ervoor zorgen dat software correct werkt en vrij is van bugs.
Projectmanagement: Projectmanagers spelen een cruciale rol in zowel bouwprojecten als softwareontwikkeling. Ze zorgen ervoor dat projecten op schema blijven, binnen het budget blijven en aan de verwachtingen van klanten voldoen.
Onderhoud en Updates: Na voltooiing vereisen zowel huizen als softwareonderhoud en mogelijk updates. Huizen hebben periodiek onderhoud nodig om in goede staat te blijven, terwijl software updates en bugfixes vereist om relevant en veilig te blijven.
Creativiteit en Aanpassingsvermogen: In zowel bouw als softwareontwikkeling is creativiteit belangrijk. Bouwers moeten vaak creatieve oplossingen vinden voor unieke uitdagingen, net zoals softwareontwikkelaars nieuwe benaderingen moeten bedenken om complexe problemen op te lossen.
Dus wat doet een softwareontwikkelaar nu eigenlijk?
Kortom, papa heeft eigenlijk van spelen zijn werk gemaakt. Hij bouwt zelfs huizen. Oké, het zijn dan wel geen echte maar virtuele huizen 😊. Dat maakt voor mij het ontwikkelen van software leuk, de vrijheid, de uitdaging en de mooiste oplossingen bedenken samen met mijn collega’s en stakeholders.
Wil je zelf aan de slag bij Etesian IT Consulting? Neem dan een kijkje onze werkenbij site.