Software engineer
Uit zichzelf doet een computer, mobiele telefoon of navigatiesysteem niets. Om een apparaat te laten werken zijn computerprogramma’s - software - nodig. Als software engineer ontwikkel, bouw, onderhoud en test je deze computerprogramma's. Varianten op deze functietitel zijn: systeemontwikkelaar, computerprogrammeur en applicatieontwikkelaar.
Wat doet een software engineer?
- Je analyseert allereerst de behoefte van de eindgebruikers. Al naar gelang hun wensen stel je specificaties op waaraan de te ontwerpen software moet voldoen. Hierbij let je op de technische kant van de software, maar ook op de gebruikersvriendelijkheid en de functionaliteit.
- Je ontwerpt gegevens-, component- en objectmodellen. Je beschrijft formele computertalen, interfaces (een verbinding tussen hardware en software) en protocollen (regels of standaarden waardoor computers met elkaar en met randapparaten kunnen communiceren).
- Je ontwikkelt software, inclusief zogenaamde test suites (software die jouw software test). Je test de software, spoort fouten op en verhelpt deze.
- Je schrijft documentatie, niet alleen voor gebruikers van de software, maar ook voor IT-collega’s die ermee moeten werken.
- Je maakt een plan om de software te implementeren en vrij te geven voor ingebruikname. Je let dan op de gevolgen van het gebruik van de nieuwe software en op de manier waarop de software samenwerkt met andere (bestaande) systemen. Je moet bijvoorbeeld rekening houden met het feit dat de werkprocessen van een afdeling in een bedrijf veranderen na het invoeren van de nieuwe software. Als software engineer moet je daarom ook goed nadenken over de begeleiding van de uiteindelijke gebruikers.
Waar werk je als software engineer?
Als software engineer kun je aan de slag bij IT-bedrijven die gespecialiseerd zijn in het ontwikkelen van software, zoals CGI of Atos Origin. Je werkt dan vaak in dienst van dat bedrijf bij een klant op locatie aan een opdracht. Dit heet detachering. Je kunt ook gaan werken bij onder meer de overheid, banken of andere bedrijven die voor hun producten software nodig hebben. In dat geval heb je de verantwoordelijkheid voor de ontwikkeling van de softwaretoepassingen in dat bedrijf of die instelling.
Wat is je plaats in de organisatie?
Doorgaans werk je onder leiding van een projectleider in teamverband aan de ontwikkeling van nieuwe systemen.
Welke competenties moet je in huis hebben?
- Analytisch denken. Je moet bedrijfsprocessen, informatie en informatiebehoeften, technische modellen en producten kunnen analyseren. Waar bestaat het uit? Wat hangt hoe met wat samen? Wat betekent het? Wat is de kern van de zaak? Wat kan veranderen, wat moet hetzelfde blijven? Waarop heeft dat invloed? Wie zijn daarbij betrokken?
- Gestructureerd kunnen werken. Als je hebt bedacht wat er moet gebeuren, moet je dit stap voor stap kunnen uitvoeren, testen en documenteren. Je houdt daarbij goed overzicht, want als software ontwikkelaar is het belangrijk dat je toekomstige fasen in het productieproces kunt plannen.
- Accuraat kunnen werken. Je moet een algoritme, gegevensmodel of programma buitengewoon nauwkeurig kunnen ontwikkelen. Als je één haakje of puntkomma op de verkeerde plaats zet, gaat het helemaal mis.
- Communiceren. Om opdrachten in samenspraak met collega’s, opdrachtgevers en gebruikers efficiënt en klantgericht te kunnen uitvoeren, moet je helder kunnen communiceren en goed kunnen samenwerken. Je moet kunnen vergaderen, presenteren, interviewen, luisteren, doorvragen, discussiëren over problemen en oplossingen en rapporteren.
- Up-to-date houden van je kennis. Je houdt ontwikkelingen in je vakgebied bij en vertaalt deze tijdig naar je eigen werkomgeving. Je beheerst databasetechnologieën, programmeertalen en webtechnologieën.
Hoe word je software engineer?
De meest voor de hand liggende opleiding is een van de opleidingen HBO-ICT, Informatica of Technische Informatica. Er zijn zowel voltijd- als deeltijdvarianten. Ook de universitaire opleiding Informatica biedt een goede basis voor het beroep van software engineer.
Wat zijn je carrièremogelijkheden?
Je loopbaanmogelijkheden hangen voor een groot deel af van je interesses. Spreekt met name het technische aspect je aan, dan kun je na een aantal jaren werkervaring doorgroeien van junior naar senior software engineer. Je werkt dan aan steeds complexere systemen. Daarnaast is het mogelijk naar leidinggevende posities in een automatiseringsafdeling door te groeien, zoals team- of projectleider. Je kunt je ook meer gaan bezighouden met de gebruikers van de software, met de bedrijfsprocessen of met marketing of management. Na enkele jaren programmeren kun je bijvoorbeeld informatie-analist worden en ga je gebruikers interviewen en functionaliteit ontwerpen.
Welke beroepen lijken erop?
Aanbevolen boeken
- The Art of Software Architecture, Design Methods And Techniques, Stephen Albin & Independent Consultant, 336 pagina's | John Wiley and Sons Ltd | New title.
- Software Architecture in Practice, Len Bass & Paul Clements & Rick Kazman, 512 pagina's | Addison-Wesley Professional.
- Software Engineering And Using Uml, Software Engineering With Objects And Components, Ian Sommerville & Perdita Stevens, Pearson Education Limited | Coursepack.
Aanbevolen websites
- Joël on software is een vermaard weblog over softwareontwikkeling.
Auteur: Marieke van Oosterhout