Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add advent calendar post by Tim #480

Merged
merged 1 commit into from
Dec 31, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions src/en/blog/2024/12/complete-your-team.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
title: Complete your team
date: 2024-12-24
author: Tim Severien
summary: "When looking at codebases or web-based products, we can learn a lot about their authors, their priorities, which technologies were used, and more. Unfortunately, we can also identify skill gaps and afterthoughts. In fact, you don’t have to be a developer to spot these, as they regularly hinder regular usage. Run some websites through Lighthouse and we find a myriad of issues — often performance and accessibility-related. Why do so many websites have the same flaws?"
categories:
- Adventcalendar
key: advent-2024-tim
---

If job openings are any indication of what an average web development team looks like, it seems the average team is skilled at JavaScript, or rather JavaScript frameworks, and a host of tools that come from the JavaScript ecosystem like React, TypeScript, Zod, GraphQL/tRPC, Prisma/Drizzle, and many more. Often, these developers are so caught up with these tools and skills, that they’re at best somewhat competent in technologies and concepts we used to consider fundamental, like HTML and CSS. These openings also rarely mention accessibility, front-end performance, search engine optimization, or basic security practices. Apparently, these are all afterthoughts.

It’s clear that we, as an industry, build homogeneous — both technically and otherwise — teams with a lot of overlapping skills, leaving many essential skills to develop good software woefully absent. Consequently, many qualities are lacking in codebases whereas the JavaScript code is generally good or great. It’s sad the user won’t notice the neatness of our JavaScript, but will notice a poor [Time To Interactive](https://web.dev/articles/tti), a missing [skip link](#LINK_NAAR_JOSEE) when using a keyboard to navigate, or the announcement of dozens of ”click here“ links when requiring a screen reader.

Just like a state-of-the-art high-end computer with a decade-old processor will suck ass, so will every website and web app where essentials are afterthoughts. To achieve quality, we must achieve quality across the board. We cannot do that with significant skill gaps. Teams without a good coverage of skills to meet what they’re supposed to deliver are incomplete.

I will spare you from being shamed into developing skills you don’t want. Teams, however, do have the responsibility to identify and address skill gaps. If the description above sounds like your team, perhaps you should run a small workshop to self-assess and reflect on skills, or to gauge competency through tests or exercises. If your team is indeed primarily JavaScript-oriented, it’s likely there’s a [front-of-the-front-end](https://bradfrost.com/blog/post/front-of-the-front-end-and-back-of-the-front-end-web-development/)-shaped skill gap, and the flaws of the product you’re developing can be mitigated by filling it.

After identification comes mitigation. We can watch some talks or follow a training, but developers specialize in these things — you can’t catch up in a day or two. Alternatively, we can up the product quality by hiring a consultant or freelancer to identify the issues and potentially help fix them. But that won’t prevent future mistakes.

The only lasting fix is to have the knowledge in the team at all times, to make sure team members have complementary skills. This is also the hardest option to sell internally — you’ll have to convince whoever makes that decision. It’s a tough sell, and one that is unlikely to happen short-term. You can do both — mitigate issues immediately by hiring help temporarily and making sure that the next job opening fits your needs. Regardless of your approach, nothing happens when skill gaps are never identified or left unaddressed.

Run some websites through Lighthouse, and you’ll find perfectly functional sites with accessibility, performance, and other issues. Typically, the kind that could’ve been avoided with the skills of a front-of-the-front-end developer.
23 changes: 23 additions & 0 deletions src/nl/blog/2024/12/voltooi-jouw-team.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
title: Voltooi jouw team
date: 2024-12-24
author: Tim Severien
summary: "Wanneer we naar code of naar websites kijken, kunnen we veel leren over de makers, hun prioriteiten, welke technieken er gebruikt zijn, en meer. Helaas kunnen we ook slordheden ontdekken. Daar hoef je geen ontwikkelaar voor te zijn, gezien reguliere gebruikers ook deze problemen ervaren. Test een aantal websites met Lighthouse, en we zien verschillende mankementen, vaak problemen met de laadsnelheid of toegankelijkheid. Waarom hebben zoveel websites dezelfde problemen?"
categories:
- Adventskalender
key: advent-2024-tim
---

Als vacatures indicatie zijn van hoe een gemiddeld web development team er uit ziet, lijkt het er op dat het gemiddelde team goed is in JavaScript, of met JavaScript frameworks, en verschillende tools die uit de JavaScript ecosysteem komen, zoals React, TypeScript, Zod, GraphQL/tRPC, Prisma/Drizzle, noem maar op. Deze developers zijn zo gericht op deze tools en vaardigheden, dat het hun afleid om kennis en ervaring op te doen met fundamentele technologieën en concepten, zoals HTML en CSS. Vacatures voor dit soort teams bevatten ook zelden toegankelijkheid, front-end performance, zoekmachineoptimalisatie, of security als vaardigheid. Dat zijn klaarblijkelijk allemaal bijzaken.

Als industrie lijken we homogene teams te prefereren, zowel op technisch als op andere vlakken, met overlappende vaardigheden, waardoor veel vaardigheden die essentiëel zijn voor goede software ontbreken. Het gevolg is dat veel producten hierdoor mankementen bevatten terwijl de JavaScript erg goed kan zijn. Helaas merkt de gebruiker weinig van dat laatste, maar zal wel een trage [Time To Interactive](https://web.dev/articles/tti), een ontbrekende [skip link](#LINK_NAAR_JOSEE) wanneer de toetsenbord gebruikt wordt om te navigeren, of de aankondiging van vele “klik hier” links wel opmerken wanneer gebruikers afhankelijk zijn van een screanreader.

Net als dat een nieuwe high-end computer met een hele oude processor langzaam is, zullen websites waar de essentials niet op orde zijn ook niet goed werken. Wil je goede software, moet de kwaliteit op (nagenoeg) alle vlakken goed zijn. Dat lukt niet wanneer er belangrijke vaardigheden ontbreken bij de ontwikkelaars. Een team dat goede software moet opleveren, maar niet de vereiste vaardigheden heeft, is incompleet.

Iedereen heeft eigen interesses, dus ik ga je nu niet overtuigen om ergens in te verdiepen, maar als team heb je wel de verantwoordelijkheid om ontbrekende vaardigheden in het team te identificeren en aan te kaarten. Als de eerder benoemde baanomschrijving bij jouw team past, wellicht is het tijd om vaardigheden in kaart te brengen of om competentie te meten met een workshop, quiz of oefeningen. Als iedereen in jouw team daadwerkelijk JavaScript-gericht is, is de kans groot dat er wat te verbeteren valt in [front-of-the-front-end](https://bradfrost.com/blog/post/front-of-the-front-end-and-back-of-the-front-end-web-development/)-gerelateerde onderwerpen.

Na het identificeren is het tijd om te mitigeren. We kunnen wat presentaties bekijken of een training volgen, maar er zijn mensen die zich hier in specialiseren — deze vaardigheden heb je niet met een dag of twee. Een andere en tijdelijke oplossing om de kwaliteit van projecten verbeteren, is door een consultant of freelancer er naar te laten kijken en eventueel mee te helpen in het oplossen. Hiermee ga je echter geen problemen in de toekomst voorkomen.

De enige permanente oplossing is om de kennis ten alle tijden in het team te hebben, dat het team elkaar aanvult. Dit is ook het moeilijkst om intern te verkopen, want zowel teamwissels als het aannemen van nieuw personeel heeft invloed op uitgaves en budgetten. Vaak kost het ook wat tijd, dus je kan bijvoorbeeld op korte termijn tijdelijke hulp inkopen, maar ook zorgen dat de eerstvolgende vacature past bij wat het team nodig heeft. Ongeacht hoe je het intern verkoopt, ontbrekende skills blijven als je ze niet identificeert of het niet aankaart.

Test eens een aantal websites met Lighthouse of een andere tool, en je zal zien dat perfect functionerende sites regelmatig toegankelijkheid, performance, en andere problemen hebben. Vaak zijn dit problemen die voorkomen had kunnen worden met de vaardigheden van een front-of-the-front-end developer.