user question-circle dropbox exclamation folder-open-o sign-in exclamation-triangle ban youtube building-o icon-mouse-pointer angle-down angle-up location-arrow file-text-o heart-o heart envelope bars comment times info-circle envelope-o thumb-tack list-alt google lock at map-marker search twitter linkedin facebook bold users bar-chart home chevron-left chevron-right check chevron-down chevron-up file-pdf-o eye filter pencil-square-o database rss-square link whatsapp cogs upload calender plus minus picture-o sort step-backward step-forward weixin share share shopping-cart circle download level-up star phone check-square-o clock-o arrow-up trash-o external-link arrow-down price-tag

Waar wacht je nog op? Schrijf je in en word koning van je carrière!

6 tips om een goede software engineer te worden

Michiel van der Avoird - woensdag 14 november 2018

Hoe word je een goede software engineer? Een tijdje terug vroegen we jullie om adviezen. Doet een ingenieur hetzelfde als een programmeur of developer? De meningen zijn verdeeld, definities verschillen. Wil jij software ingenieur worden? We geven je 6 tips.

Wat doet een software engineer?

De termen programmeur, developer en engineer worden in de praktijk vaak door elkaar gebruikt. Daarom is het lastig om een eenduidig antwoord te geven op deze vraag. Het geheel van software engineering behelst grofweg het proces, de structuur, technologie en organisatie van softwareontwikkeling voor complexe systemen. Naast logische, wiskundige theoretische aspecten spelen engineering- en managementaspecten een rol.

Definities lopen uiteen:
  • “De toepassing van een systematische, gedisciplineerde, kwantificeerbare aanpak bij de ontwikkeling, uitvoering, en onderhoud van software" (Jacquard).
  • "De gedisciplineerde toepassing van technische, wetenschappelijke en mathematische principes en methoden gericht op de economische productie van kwalitatief hoogwaardige software” (W. Humphrey).
  • Volgens het Agile modellingprincipe draait engineering meer om communicatie, waarbij ideeën van de gebruiker of opdrachtgever via programmeurs omgezet worden in softwareapplicaties.

Software engineering volgt technische ontwerppatronen, principes en methodes en betreft meer dan programmeren alleen. Je kunt daarom stellen dat de vaardigheden van een engineer verder reiken dan die van programmeurs of developers. Anderzijds kun je stellen dat de aard van het werk wordt bepaald door de omstandigheden en persoonlijkheid van een ICT’er.
  • Ingenieurs ontwerpen en realiseren oplossingen en applicaties voor complete netwerken, besturingssystemen en/of databases.
  • Daarbij zijn zij gespecialiseerd in een set programmeertalen en ontwikkelomgevingen.
  • Sommige engineers werken alleen, de meesten maken deel uit van een agile IT-team.
  • Engineers zijn (deels) verantwoordelijk voor testing en documentatie.
  • Soms instrueren en begeleiden zij eindgebruikers, zoals werknemers van opdrachtgevers.

Een ingenieur houdt zich bezig met software voor complete platforms (en niet voor één klant). Een product moet aantrekkelijk zijn, een groot publiek aanspreken en keer op keer gedupliceerd kunnen worden met het oog op continuïteit en kwaliteit. De SE heeft een brede blik, denkt verder vooruit en stelt vragen met betrekking tot schaling en hergebruik.

 

Tips voor de succesvolle software engineer    

 

       1. Voorkom onderschatting, beloof niet te veel

Onderschat de hoeveelheid werk niet. Om en nabij 50% van alle projecten hebben te weinig budget of worden te laat opgeleverd. Houd dit in gedachten als je (voor het eerst) projectleider bent. Er moet een technisch ontwerp met tijdsplanning, budgettering en rolverdeling voor het hele ontwikkelproces worden opgesteld.  Als je niet uitkijkt kom je op gespannen voet te staan met je teamleden.

Wees conservatief met je schattingen en bouw van tevoren een buffer in voor mogelijke fouten. Zo kun je voor de afgesproken kosten opleveren. Meer tijd geeft je de vrijheid je product te perfectioneren. Communiceer open en blijf consistent in je dialoog met belanghebbenden.

 

       2. Perfectie bestaat niet

Misschien ben je bang zaken over het hoofd te zien bij de inrichting van je project of de samenstelling van het technische ontwerp. De kans is groot dat je alles ‘perfect’ wilt doen. Zo zijn de meesten van ons immers geconditioneerd.

Iedereen loopt tegen beperkingen aan, perfectie bestaat niet. Je kunt niet alles van tevoren weten en controleren. Er zijn talloze alternatieven voor elke beslissing. Kies naar eer en geweten, objectief of op instinct. 

 

       3. Houd koers

Het maakt niet uit welke functie je uitoefent: focus houden is cruciaal. Stel doelen aan het begin van je project en committeer je daaraan. Hiermee voorkom je featuritis cq. feature creep of creeping featurism. Je kunt niet iedereen tevredenstellen. Lever het product zo snel mogelijk op. Je weet niet wat de klant van de software vindt totdat je het aanlevert.

 

       4. Verzamel feedback vroeg

Vroege releases, veel opleveren en zo snel mogelijk feedback ontvangen vormt de kern van agile development. De mening van de klant is misschien wel het belangrijkste onderdeel van je softwareproject. Door vroege feedback weet je of het product voldoet aan de specificaties en wens van de opdrachtgever. Vroege releases stellen je in staat kapotte code te repareren en in ieder geval een minimum viable product (MVP) op te leveren.

 

       5. Zoek voordat je vraagt

Zoek eerst zelf naar een antwoord voordat je een vraag stelt. Doe research, verken nieuwe, andere code. Dit betekent Googlen en Stack Overflow uitpluizen. Dat is niet iets slechts; het internet is van onschatbare waarde voor ontwikkelaars bij het zoeken naar oplossingen voor complexe problematiek. De kunst is om de juiste vraag te formuleren.

 

       6. Optimaliseer voor eenvoud

Code schrijven is een kwestie van software optimaliseren om gestelde doelen te halen. Klanten en eindgebruikers moeten met het product kunnen werken, dus voorkom onnodige complexe interfaces et cetera. Collega-ontwikkelaars moeten je code kunnen lezen en doorgronden, dus kies altijd voor de eenvoudigere, schonere benadering.
  1. ICTerGezocht.nl
  2. Blog ICTerGezocht.nl