Innovatie & Strategie

Dit is een bijdrage van Itility
Software-ontwikkeling
Een software engineer bij Itility

Software engineer vs. Software developer

Wat doe je precies in de rol van software engineer? En waarin verschilt dit met een software developer?

10 mei 2019
Door: Itility, partner

Wat doe je precies in de rol van software engineer? En waarin verschilt dit met een software developer?

Software engineers: volgens Google Trends zoeken we ze steeds vaker en ook bij Itility groeit het aantal software engineers ieder jaar. Maar wat doe je precies in deze rol? En wat is het verschil met een software developer? Op basis van mijn ervaring zoek ik de verschillen.

 

Stereotypen
Zelfs voor softwareprofessionals is het niet altijd duidelijk wat het verschil is tussen een software developer en een software engineer. Sommige bedrijven gebruiken beide termen door elkaar in vacatures en functietitels, andere organisaties maken wel onderscheid. In onderstaande tabel schets ik in stereotypen hoe ik de rollen in de praktijk ervaar.

  Developer Engineer
Ziet software als: Product Systeem
Draagt voornamelijk bij aan:         Functionaliteit Architectuur
Wordt betrokken bij: Ontwikkelfase Hele lifecycle                
Programmeertalen: Gebruik van een taal        Taalkeuze

 

Ik denk na over de ‘end of life’-fase, nog voor het product live is

 

Natuurlijk doet een developer af en toe iets rondom het systeem en natuurlijk duikt een engineer regelmatig de code in. Waarom dan überhaupt die scheiding? Omdat de software developer hoofdzakelijk werkt aan één applicatie, terwijl de software engineers de hersens laten kraken over het systeemdomein. Beide domeinen vragen om specifieke kennis en vaardigheden. Voor een software engineer ziet dat er als volgt uit:

Helikopterblik
Een ding is zeker, in mijn projecten bij Itility is de complexiteit van de software waarmee ik werk groot. Te groot om ieder detail te kennen. Mijn belangrijkste taak is dan ook om te zorgen dat alle subsystemen goed samenwerken en uiteindelijk stabiel draaien in de productieomgeving. Daarvoor moet je over de grenzen van de projectfases heen kijken. Ik denk nu al na over de 'end of life'-fase van een product, terwijl het niet eens in productie draait. Waarom is dat belangrijk? Er komt een dag dat de software wordt vervangen door iets beters. Keuzes die gemaakt worden bij de ontwikkeling hebben invloed op de hoeveelheid werk die nodig is bij de vervanging. Ik help de klant om hierin de juiste keuzes te maken.

 

Het geweten
In de eerste plaats ben ik als software engineer veel bezig met software, maar je bent en blijft ingenieur. Dat is niet alleen een academische titel, je bent ook het technisch geweten binnen de organisatie. Het is belangrijk om bij de ontwerpkeuzes voor een softwaresysteem ook de niet-technische overwegingen mee te nemen. Denk hierbij aan ethische aspecten, wet en regelgeving, privacy, informatiebeveiliging en maatschappelijke vraagstukken rond het ontwerp van software.

Als software engineer heb je ook ijzersterke consultancy skills nodig

 

De kunst van het maken
Een groot deel van mijn tijd binnen een project besteed ik aan het optimaliseren van het leveringsproces van de software onder de noemer Continuous Integration and Continuous Delivery (CI/CD). Hierbij komen processen, architectuur, organisatie en techniek samen. CI/CD is doordrongen van automatisering en processen. Denk hierbij aan software pipelines, release automation en versiebeheer. Dit veld is continu in beweging, dus naast een brede kennis van de gebruikelijke tools moet je vooral geen angst hebben om regelmatig een nieuwe tool te leren kennen. Als generalist zie ik de achterliggende patronen en maak ik de gereedschappen makkelijk eigen. Zo combineer ik nieuwe tools volgens bekende patronen bij het opzetten van de softwareleverstraat.
 

scaling a software project

 
Cool as a consultant
Zit je als software engineer vooral achter je computer? Nee hoor. Naast dat ik applicaties verbind in het systeem, ben ik ook de spil tussen heel veel mensen. Van IT-architect tot applicatieontwikkelaar, software tester, site reliability engineer tot soms zelfs de jurist. Wil je tot een goed resultaat komen, dan zie je dat de software engineer ijzersterke consultancy skills nodig heeft. Vooral als je pas halverwege een project instapt, want dan buig je vaak bestaande code en systemen om terwijl het ontwikkelteam doorwerkt.

To the rescue!
Je merkt het al. Het liefst stap ik in bij de start van een project. Dan kan ik snel inspelen op keuzes die weer mijn systeemkeuzes beïnvloeden. Maar veel vaker stap je halverwege in. Hoe dat komt, is heel logisch. Innovaties in de softwarewereld komen vaak voort uit frustratie. Een developer begint op vrijdagmiddag code te schrijven als oplossing voor een praktisch probleem. Het project groeit gestaag uit tot een prototype. Pas als iemand er een business case van maakt komt er budget vrij. Dat beperkte budget wordt gebruikt voor het ontwikkelen van functionaliteit, zonder al te veel na te denken over hoe de software uiteindelijk in productie gaat draaien. Pas als dat besef er is komt de software engineer in beeld.
 
Onze waarde in de praktijk
Tot zover de skills van een software engineer. Op welke manieren gebruik je ze in de praktijk? Ik heb drie cases geselecteerd waarin de rol en waarde van de software engineer zichtbaar is.

Cloud Platform stabiel naar eindklant
Met 1 van onze klanten ontwikkelen we vanaf de eerste regel code een webapplicatie voor het technisch beheer van hybride cloudomgevingen. Wat we als software engineer doen: 

  • Het ontwerpen van interfaces tussen frontend-, backend- en externe componenten. 
  • Alle componenten integreren in een productierijp systeem voor eindklanten.
  • Bewaken van niet-functionele aspecten zoals IT-security en kwaliteit.

 
De toegevoegde waarde: 
Brede kennis van technologie en IT-infrastructuur is hier onmisbaar, want het is onze rol om de verbinding te maken tussen de IT-specialisten en de softwareontwikkelaars. Ondanks de technische complexiteit brengen we continu de focus terug op de eindklant, en gaan we pas naar huis als we tevreden zijn met de kwaliteit van het (eind)product.

Ondanks technische complexiteit houden we continu focus op de eindklant

 

Automatisch VM’s beschikbaar stellen
Een grote klant gebruikt een systeem dat automatisch nieuwe VM’s uitrolt. Voorheen werd dat steeds met de hand gedaan. Een tijdrovende klus. Onze rol in dit project:
 

  • Het verzamelen van de functionele en technische requirements. 
  • Dit ontwerp van een haalbare oplossing voorzien (zowel high- als low-level design).
  • Implementeren, onderhouden en uitbreiden van de oplossing. 

 
Onze waarde:
Denken in systemen, waarbij we de oplossing inpassen in het bestaande software- en IT-landschap. Het project boekt zo snel vooruitgang. Vervolgens begeleidt de engineer het project naadloos naar de onderhoudsfase.

Streetwise API
TNO ontwikkelt een database voor de data van zelfrijdende auto’s die via een web-API beschikbaar wordt gesteld aan hun klanten. De droom: één database waar alle fabrikanten van zelfrijdende auto’s van leren en aan bijdragen. Ook hier was de rol van software engineer van groot belang:

  • Advies over technologiekeuzes, van infrastructuur tot databasestructuur, selectie van de juist cloud-componenten, software architectuur, programmeertaal, en application framework.
  • De oplossingen in kort tijdbestek implementeren.
  • Transitie begeleiden van ontwikkelingsfase naar onderhoudsfase. 

 
Toegevoegde waarde: 
Dankzij de consultancy skills van de software engineer weken we stap voor stap de requirements los. Het belang van de klant staat hierbij steeds voorop, en daarmee ook het belang van de klant van de klant. Door het schrijven van een helder design heeft TNO continu inzichtelijk wat er gemaakt moet worden. Omdat onze software developers ervaring hebben met development op cloud infrastructuur lukt het ons om in korte tijd de API te implementeren. 

Software engineer vs software developer?
Zoals je ziet doet een software engineer bij Itility echt ander werk dan een software developer. Je beoordeelt continu nieuwe tools, werkt veel samen met verschillende mensen en werkt vooral op systeemniveau. Is dit ook herkenbaar in jouw organisatie? 
Lees meer blogs over software & automation op onze website.

AG Connect wordt momenteel geüpdatet! Gedurende het updaten kunnen er geen wijzigingen worden gedaan in de database.
Reactie toevoegen
AG Connect wordt momenteel geüpdatet! Gedurende het updaten kunnen er geen wijzigingen worden gedaan in de database.