1

Onderwerp: Werkzaamheden als front-end developer

Omdat de term front-end development bij mij nogal 'ruim' overkomt. Vroeg ik mij af wat voor werkzaamheden jullie bij je werkgever uitvoeren. Zo kom je de term 'front-end developer' in vrij veel vacatures tegen, maar vaak met totaal verschillende functie omschrijvingen.

Ben jij als werknemer (of freelancer) alleen bezig met CSS, JS & HTML of maak je ook geregeld weleens een uitstapje naar PHP, Ruby of iets anders wellicht. En maak je dan aan de lopende band websites voor klanten, gebaseerd op een (custom) CMS systeem of ben je eigenlijk alleen maar bezig met de verbetering/uitbreiding van 1 of 2 websites, applicaties of misschien een combinatie?

Kortom: wat voor takenpakket heb jij als front-end developer?

2

Re: Werkzaamheden als front-end developer

Wat ik verwacht van een mede front-end ontwikkelaar (bijvoorbeeld als ik ze interview) is specialisatie in HTML, CSS en JavaScript (en JavaScript kan zelfs nog optioneel zijn). Een goede front-end ontwikkelaar heeft n.m.i. affiniteit met iig de meeste gerelateerde gebieden zoals usability, design, accessibility, security, etc. Het is fijn als deze ontwikkelaar bekend is met meerdere programmeertalen, zodat die enigszins kan navigeren door back-end code, en de belangrijkste flow kan volgen. Maar diepgang in front-end is belangrijker dan heel breed zijn; ik werk meestal in teams waar ruimte is voor specialisten op die andere vlakken.

Als Fronteers hebben we ten tijde van onze oprichting besloten dat we onder front-end ontwikkelaar iedereen willen verstaan (en potentieel welkom willen heten bij de vereniging) die code schrijft die door de browser wordt getoond / uitgevoerd. Dus niet PHP/Ruby/Java/..., welke door de server worden uitgevoerd, maar (naast HTML/CSS/JavaScript) wel Flash/SilverLight/AngularJs/... We hadden zelf geen affiniteit met Flash/Silverlight, maar mochten mensen zich bezig willen houden met die onderwerpen binnen het kader van de vereniging (dus t.b.v. de professionalisering daarvan), dan stonden we daar volledig voor open. (Met Angular lijken we jammer genoeg ook een beetje de boot gemist te hebben met deze ontwikkelaars bij de vereniging betrekken - hoewel we wel iig een paar contacten hebben met actieve Angular developers, en hopelijk als Fronteers nog iets van toenadering kunnen bewerkstelligen; ik zie zelf veel net beginnende Angular developers uit de back-end wereld komen, die zo veel van front-end ontwikkelaars kunnen leren op gebieden als hoe en waarom toegankelijkheid, progressive enhancement, etc. Anyhoo, dat terzijde...)

Wat ik persoonlijk (freelancer) doe verschilt heel veel van opdracht tot opdracht, maar ik heb een heel brede achtergrond (WO Technische Informatica, dus Java kennis, eind jaren 90 begonnen met classic ASP, daarna veel PHP en zelfs ColdFusion gedaan (en dingen als database performance tuning, en Solr, en, en, en...)), dus bij langdurige opdrachten groei ik bijna altijd breder uit dan de pure front-end rol (zoals boven gedefinieerd) waar ik oorspronkelijk voor wordt gevraagd, gewoon puur omdat ik het kan, en inspring waar nodig. (Vaak ben ik de enige ontwikkelaar met diepgaande kennis op security gebied, of bijvoorbeeld nu zit ik redelijk diep in allerlei Java code te wroeten, omdat twee van de drie Java developers waar ik mee samenwerk op vakantie zijn, en ik toch verder wil. (En dan vraag ik de laatst overgebleven developer gewoon af en toe om m'n commits te reviewen, dat ik geen heel gekke dingen heb gedaan.))
En verder bestaat m'n takenpakket steeds vaker uit "praten", omdat ik en dingen kan uitleggen aan product owners en projectmanagers, en mee kan denken met architecten of interactie ontwerpers, en wensen kan vertalen naar technische requirements voor back-end developers of database administrators.

Ik heb eigenlijk wel altijd dat ik langdurig werk aan een enkel systeem (wat niet een enkele website hoeft te zijn, maar iig een enkele codebase) - aan de lopende band (simpele) websites afleveren is gelukkig een tak van sport die ik heb weten te vermijden.

3

Re: Werkzaamheden als front-end developer

Het eenvoudigste takenpakket van een frontender is het omzetten van een grafisch design naar HTML en CSS met misschien hier en daar wat JavaScript en dat weer doorgeven aan de backenders.

In de praktijk gaat het takenpakket veel verder dan dat.

Je ontvangt niet alleen een grafisch design, maar je bent ook betrokken bij de totstandkoming ervan. En niet alleen bij de vormgeving, maar ook bij het interaction design.

De HTML, CSS en mogelijk JavaScript die je vervolgens schrijft, houdt rekening met semantiek, SEO, usability (voor gehandicapten en iedereen), verschillende schermen, verschillende soorten invoer (muis, touch), verschillende browsers, veiligheid en performance.

De HTML is vaak verweven met een templatetaal, zodat het gelijk aansluit met de backend.

De code is goed onderhoudbaar, getest en opgeslagen in een versiebeheersysteem zoals Git.

Je zorgt voor bouwscriptjes als dat nodig is, bijvoorbeeld om SASS of Less om te zetten naar CSS en om CSS en JavaScript te minifyen als ze groot worden. Maar wel zo dat je tijdens het ontwikkelen de broncode blijft zien.

Vervolgens zorg je dat je bij blijft. HTML5 en CSS3 is basiskennis. Het leuke van frontend is dat je je in meerdere richtingen kunt ontwikkelen: grafisch design, interactie, usability, SEO, typografie, kleurenleer, SASS/Less, JavaScript frameworks, backendtalen, templatetalen, IDE's, domeinnamen, hosting, HTTP, webservers, Linux, bash, veiligheid (XSS en CSRF), SQL, SVG, WebGL, video, fotografie, leesbare teksten, internationalisatie, SCRUM enzovoorts enzovoorts.

Er zijn Fronteersleden die WordPress-sites voor klanten maken. Die zullen ongetwijfeld kennis hebben van PHP. Ik denk dat veel frontenders kennis hebben van backendtalen maar ik denk ook dat ze in hun werk vaak beperkt blijven tot HTML, CSS en JavaScript.

En welk takenpakket ikzelf heb? Ik ben net als Sander freelancer, dus dat wisselt nogal.

Op dit moment ben ik bezig met het ontwikkelen van een nieuwe interface voor TV-settopboxen. Met webtechnologieën dus. Dat is voornamelijk JavaScript in combinatie met React en CSS.

Daarvoor maakte ik complexe formulieren voor een verzekeraar. Daar kwam ook een groot deel PHP bij kijken.

En daarvoor had ik een project waarbij ik veel SASS heb gebruikt om een website responsive te maken.

Per opdracht/werkgever kan het takenpakket er dus heel anders uitzien.