DEV Community

Fortiv Design
Fortiv Design

Posted on

Varför webbutveckling alltid tar längre tid än du tror — en genomgång av de dolda lagren

Varför webbutveckling alltid tar längre tid än du tror
Vi har haft den här konversationen många gånger. En kund kommer in med en tydlig bild av vad de vill ha, en rimlig tidslinje och en budget som känns välmotiverad. Sedan börjar projektet. Och någonstans i vecka tre eller fyra uppstår frågan: varför tar det här så lång tid?

Det är inte en dum fråga. Det är en helt logisk reaktion på något som ser enkelt ut utifrån men som är allt annat än enkelt inifrån. Det här är vad vi har lärt oss om varför det är så — och varför det troligen inte kommer att förändras.

De tre faserna ingen fakturerar tydligt nog
Varje webbprojekt innehåller minst tre faser som sällan syns i en offert men som alltid äter tid: kravanalys, tekniska beroenden och iterativ testning.

Kravanalysen är den fas där vi kartlägger vad systemet faktiskt behöver göra — inte vad kunden tror att det behöver göra. Det är en viktig distinktion. En kund som säger "vi vill ha en bokningskalender" har en funktionell bild. Vi behöver förstå: ska den synkroniseras mot ett externt system? Ska den hantera tidszoner? Ska bekräftelsemejl gå ut automatiskt? Varje svar på dessa frågor påverkar arkitekturbeslutet.

Tekniska beroenden är nästa lager. En komponent som ser fristående ut är sällan det. En checkout-modul beror på betalningsleverantörens API, som beror på en webhook-implementation, som beror på hur sessionhanteringen är uppsatt, som beror på hur cookiepolicyn är konfigurerad. Det är inte en kedja — det är ett nät.

Iterativ testning är det folk glömmer tills det är för sent. Det handlar inte om att klicka runt och se om det "funkar". Det handlar om edge cases, om vad som händer när en användare gör något oväntat, om responsivitet på enheter vi inte designade för, om vad som händer vid timeout.

Hundratals mikrobeslut som måste hänga ihop
Design ser enkelt ut. En layoutskiss i Figma tar kanske en dag att ta fram. Men varje designbeslut bär med sig tekniska konsekvenser.

Ta typografi som exempel. Ett typsnitt som ser bra ut i en mockup kan kräva en fontladdningsstrategi som påverkar Largest Contentful Paint. Det kan kräva fallback-fonter som beter sig annorlunda i olika webbläsare. Det kan kräva en licens som inte täcker web embedding.

/* Vad som ser enkelt ut i CSS */
font-family: 'CustomFont', sans-serif;

/* Vad det faktiskt kräver bakom kulisserna /
@font-face {
font-family: 'CustomFont';
src: url('/fonts/custom.woff2') format('woff2');
font-display: swap; /
påverkar CLS och LCP */
font-weight: 400;
}
Det är ett litet exempel, men det illustrerar mönstret. Varje visuellt val har ett tekniskt svar. Varje tekniskt svar har en konsekvens för prestanda, tillgänglighet eller underhållbarhet. Och alla dessa beslut måste hänga ihop — tekniskt, visuellt och affärsmässigt.

Integrationer är där tidslinjerna spricker
Om det finns ett enskilt område där projekt konsekvent tappar tid är det integrationer mot externa system.

Betalningslösningar, bokningssystem, CRM-plattformar, e-postautomation, lagerhantering — alla dessa har egna API:er, egna dokumentationer och egna quirks. Vi har sett välskrivna API:er med felaktig dokumentation. Vi har sett stabila system som beter sig annorlunda i staging-miljö jämfört med produktion. Vi har sett tredjepartsleverantörer som ändrar sitt API utan förvarning.

// Vad API-dokumentationen lovar
{
"status": "success",
"order_id": "12345"
}

// Vad API:et faktiskt returnerar i edge cases
{
"status": "success",
"order_id": null,
"message": "Order queued"
}
Det är inte ett hypotetiskt exempel. Det är ett mönster vi känner igen. Och det är omöjligt att planera bort helt — man kan bara ha kompetensen att hantera det snabbt när det händer.

SEO och prestanda är inte ett sista steg
Det här är kanske den dyraste missuppfattningen vi stöter på. SEO-struktur, laddningstider och mobilanpassning behandlas ofta som tillägg — något man lägger på i slutet när funktionen är klar.

Det fungerar inte. En URL-struktur som är SEO-optimal måste bestämmas innan routing är implementerat. En bildoptimeringsstrategi måste bestämmas innan bildkomponenter är byggda. Core Web Vitals-optimering kräver arkitekturella beslut tidigt — det är inte något man patchar in efteråt.

Vi har sett projekt där SEO-arbetet i efterhand krävde en partiell ombyggnad av hela navigationsstrukturen. Det är inte ett SEO-problem. Det är ett planeringsfel.

Det är skillnaden mellan SEO som faktiskt rankar och SEO som en teknisk checklista som bockas av i sista minuten.

Kunden som hjälper till för mycket
Det finns ett välkänt mönster i projekt: kunden vill vara involverad, och det är bra — men involvering på fel ställe och vid fel tidpunkt kostar mer än det sparar.

Innehåll som levereras sent förskjuter hela tidslinjen. Designfeedback som ges efter att komponenter är kodade kräver omarbete på flera nivåer. Beslut om teknisk stack som ifrågasätts halvvägs in skapar teknisk skuld som måste hanteras.

Det handlar inte om att kunden inte ska vara med. Det handlar om att fel typ av involvering vid fel tidpunkt multiplicerar arbetet. Ett fel i kravfasen kostar en timme att rätta till. Samma fel i implementationsfasen kostar tio. I produktionsfasen kan det kosta ännu mer.

Vad det egentligen handlar om
Webbutveckling är inte en linjär process. Det är ett nät av sammankopplade beslut där varje val påverkar nästa, och där komplexiteten ökar exponentiellt med varje integration, varje designspecifikation och varje affärskrav som läggs till.

Det är inte ett argument för att projekt ska ta hur lång tid som helst. Det är ett argument för att förstå vad tid faktiskt används till — och varför kompetensen att navigera dessa beroenden är det som avgör om ett projekt landar rätt eller inte.

För den som funderar på ett webbprojekt och vill förstå vad en helhetslösning faktiskt innebär — där webb, SEO och tekniska integrationer hänger ihop från dag ett — finns mer att läsa här.

Top comments (0)