Ah, utvecklare. De mytiska varelserna som skriver snabbt, dricker kaffe som om det var en olympisk sport, och på något sätt "fixar datorer" för sina vänner och familj. Men vad gör de egentligen hela dagen? Låt mig måla upp en bild – spoiler: det är mycket mer komplicerat (och roligare) än bara "skriv koden".
Låt oss bryta ner det med hjälp av ett flödesschema som jag har bifogat. (Ja, flödesscheman, för om det finns något som utvecklare älskar, så är det att organisera kaos visuellt.)
Förfrågan börjar vanligtvis med något oskyldigt som "Kan du bara ändra färgen på den här knappen?" eller "Vi behöver den här funktionen live i morgon – det borde inte vara svårt." Icke-tekniska personer föreställer sig utvecklare som lätt trycker på knappar som trollkarlar: abrakadabra! Ny funktion distribuerad!
Verkligheten? Den "lilla" ändringen utlöser en kedjereaktion som är längre än din Netflix-binge-watch-lista.
Först måste utvecklare ta reda på var den här funktionen ens finns i koden. Föreställ dig att försöka hitta en enda strumpa i ett hus med 500 lådor. Så känns det att läsa någon annans kod. Och strumpan är på eld.
Efter att ha grävt igenom koden, ställer de upp ett lokal utvecklingsmiljö. Det låter fint, eller hur? Det är i grund och botten deras privata testområde där misstag inte kommer att bryta företagets webbplats. Men det här "testområdet" tar timmar att ställa upp eftersom verktyg plötsligt bestämmer sig för att sluta fungera. ("Varför är Docker arg idag?" "Oh, ingen anledning, det hatar dig bara.")
Utvecklare skriver sedan lite kod. Sedan inser de att de har brutit något annat. Sedan fixar de det som de brutit, vilket av misstag bryter något annat. Till slut, efter fyra ronder av svordomar och lite gråt (tyst, medan de dricker kaffe), fungerar koden! Nästan. Kanske.
Koden går igenom versionkontroll (Git) – ett verktyg för att hålla alla från att trampa på varandras tår. Men att slå ihop ändringar i Git är som att försöka förhandla fram ett fredsavtal mellan småbarn som alla vill ha samma leksak. Konfliktlösning är en utvecklares riktiga superkraft.
Innan koden ser dagens ljus måste utvecklare testa den. De klickar på varje knapp, fyller i varje formulär och utför ritualer för att kalla QA-gudarna. Sedan kommer någon från QA (Kvalitetssäkring) och hittar buggar på ställen som utvecklare inte ens visste fanns. ("Vänta, knappen fungerar inte om du är inloggad som en vänsterhänt person som använder Internet Explorer 11???")
Slutligen är koden redo att gå live. Icke-tekniska personer föreställer sig utvecklare som trycker på en stor grön "GO"-knapp. Nej. Det är mer som att tåget genom en minfält medan man jonglerar. Något alltid går fel. Servern kraschar. Databasen glömmer att den finns. Funktionen försvinner mystiskt som en dålig trollkarls trick. Utvecklare fixar allt i realtid medan de svettas blod.
När funktionen är live, rullar feedbacken in: "Varför är inte knappen blå istället för grön?" "Kan du flytta den 3 pixlar till vänster?" Cue intern skrikning. Utvecklare uppdaterar tyst flödesschemat och återvänder till Steg 1.
Så nästa gång du hör, “Det är bara en liten ändring,” kom ihåg detta: bakom varje klick, rullning och svep finns en episka saga som involverar kodstrider, kaffe och en nypa kaos. Utvecklare gör mer än att “skriva saker i en dator” – de är problemlösare, trollkarlar, terapeuter (till sin kod) och ibland mirakelverkare.
Så kanske köp din utvecklarvän ett kaffe idag. De har förtjänat det.
Robert Mejlerö är en fraktionell CTO och grundare av CTO som en Tjänst (ctotmc.com)
Vi är ett schweiziskt företag (LLC) baserat i
Schweiz.