Folk som börjat med mjukvaruutveckling och inte trivs - hur har ni hanterat det?

Permalänk
Medlem

Folk som börjat med mjukvaruutveckling och inte trivs - hur har ni hanterat det?

Tjena, jag tänkte bara skriva av mig lite angående min nuvarande arbetssituation eftersom jag antar att många är i en jämförbar sits (särskilt gällande jobb inom mjukvaruutveckling) och ville höra hur folk har hanterat det.

Jag tänkte ursprungligen att jag kunde passa bra inom mjukvaruutveckling av diverse anledningar, främst att jag alltid varit intresserad av datorer/logik/matte och gillar att djupdyka i saker och att jag gillar struktur.

Att mjukvaruutveckling är strukturerat visade sig dock vara totalt fel. Min erfarenhet är att det är extremt rörigt; i stora drag:
- Förr eller senare landar man alltid i stora projekt där en enorm mängd kod skrivits, till stor del av andra utvecklare varav flera har slutat och/eller gjort quick-fix lösningar som gör koden traggling att förstå. Koden är i sin tur för omfattande för att hinna gå igenom, vilket innebär att man får nöja sig med att man bara hinner med att sätta sig in i det som är absolut nödvändigt för uppgiften man löser just nu.
- Det är nästintill omöjligt att sätta konkreta mätbara mål, eftersom det är väldigt svårt att uppskatta hur lång tid något kommer ta - När som helst kan man fastna i 3 dagar på en liten oförutsedd bug som kommit upp.

Jag känner mig väldigt psykiskt utmattad av att hela tiden bara förstå en mycket liten del av det man arbetar med, och i princip inte kan ha några mätbara mål.

Sen vill jag egentligen arbeta i teams där man inte sitter själv utan jobbar aktivt med andra. På sikt tänker jag att jag kan jobba som någon form av projektledare / systemarkitekt där man inte kodar, men ser i nuläget ingen klar väg dit. Jag har ungefär 2 års erfarenhet, men känner att jag har väldigt lite ork att söka jobb pga nuvarande jobbet, och jag vet inte heller vad jag ska söka på för roller.

Så jag antar att det är många som är i liknande position - dvs att man av olika anledningar blivit missnöjd med mjukvaruutveckling. Hur har ni hanterat det? Har ni några tips på vad man kan göra i en sånhär situation?
Och har ni några tips på roller som jag kan söka på för att ha mer socialt arbete men som ändå gör att jag kan använda min bakgrund med IT? Är för övrigt maskiningenjör.

Permalänk
Medlem

Jag älskade att plugga på universitet, allt som hade med datorer och programmering och liknande att göra, och jag var ganska bra på det och tänkte att jag skulle ha ett fantastiskt kul arbetsliv framför mig samtidigt som jag tjänade pengar. Men i verkligheten är det ingenting som det man pluggar. 95 % är att kopiera kod/text/filer från ett ställe till ett annat och ändra lite så det passar på det nya stället. 1 % kanske är likt det man gör på universitetet.

Jag har hanterat det genom att spara pengar och ta ledigt i perioder. Men framför allt så är det bara att stå ut, det tar inte lång tid innan man går i pension... Saker blir iaf bättre med tiden, i början var det svårt att släppa jobbet och jag kunde spendera kvällarna hemma med att läsa på om saker jag behövde kunna för att lösa uppgifterna dagen efter (t ex läsa på om ett programmeringsspråk/API/ramverk man använde), men nu för tiden tänker jag sällan på jobbet när jag inte jobbar.

Jag har också ett jobb där jag passar bättre socialt. Även om arbetsuppgifterna är tråkiga är det iaf kul att träffa kollegorna, vilket det inte direkt var på första jobbet jag hade (de var inte otrevliga eller så, men jag kunde inte riktigt slappna av med dem eller vad jag ska säga, svårt att förklara).

Permalänk
Medlem

Ett allmänt tips som gäller all typ av icke strukturerad stress som du själv inte är orsak till: släpp det och gå vidare. Lättare sagt än gjort men om du inte vill gå in i väggen så behöver du, oavsett jobb, någon gång lära dig det. Ta hjälp om du inte klarar det själv.
Det är ju trots allt inte du personligen som har orsakat den röra du nu fått tagit över.

Det är möjligt att programmerare är extra utsatt för denna typ av arbetsmiljö men dom är långt ifrån ensamma om att uppleva en icke fungerande struktur i organisationer.
Nackdelen med det förhållningssättet är ju att man riskerar att bli lite apatiskt inställd till arbetet överlag så det gäller att hitta en lagom nivå.

Edit:
Det finns ju en gräns såklart på hur mycket man ska acceptera och om du känner att den passerats så kanske det helt enkelt är bättre att byta arbetsplats.

Permalänk
Medlem

Låter som att du är konsult?

Tycker du borde söka dig till ett produktbolag. Tror du skulle passa bra där - behövs folk som bryr sig om hållbar kod och inte vill lösa saker på det snabbaste sättet. Där handlar det mer om att skapa kod som är hållbar och går att underhålla under en längre tid och som är motståndskraftig mot ändrade specifikationer.

Självklart finns det en drös av quickfixes även där och kod av blandad kvalitét som man blir mörkrädd av (och ibland får man själv göra quickfixes man inte är nöjd med tack vara tighta deadlines under vissa perioder). Dock har du större makt där du faktiskt kan avsätta tid att städa upp. Själv tycker jag det är ganska så givande att se något gå från skräp till något som faktiskt är läs- och skalbart.

Sen kan man bidra till att inte mer skräp kommer in - skapa en bra kodstandard/kodstruktur. Det är ganska kul att bygga sitt eget interna bibliotek med återanvändbara funktioner och moduler. Man kan skapa lösningar som är anpassade till ens eget sätt att arbeta och som gör det smidigare att återanvända kod i olika delar av projektet. Det handlar inte bara om att lösa specifika problem utan också om att bygga något som är flexibelt, underhållbart och som andra i teamet också kan dra nytta av.

Visa signatur

10700K | NVIDIA RTX 3080

Permalänk
Medlem

Tråkigt att du känner att ditt jobb inte riktigt funkar. Jag trivs bra med mjukvaruutveckling, så tänkte ge lite tankar på hur jag upplever yrket. Min ingång är att man självklart ska skriva fin kod, men att det är lite mer komplicerat i verkligheten.

En sak jag inte såg framför mig när jag pluggade var hur pass socialt det är att arbeta som utvecklare, åtminstone i agila team. Mycket av tiden spenderas med att diskutera lösningar och krav, läsa/reviewa kod och ge feedback etc.

Där jag har jobbat så har dessa mjuka egenskaper värderats lika om inte högre än hur snygg och effektiv kod du skriver. Dvs det har för mig lönat sig mer att vara lätt att jobba med än vad det har gjort att skriva perfekt kod. Detta kan i sin tur bidra till att det är svårt att sätta kvantitativa mål, precis som du känner TS. De mål som jag upplever fungerar är de mål man sätter upp tillsammans som team, ex denna sprinten ska vi leverera feature X. Det är svårt att ha individuella mål när man jobbar i agila utvecklingsteam i min erfarenhet.

Sen försöker jag se koden som ett verktyg för att lösa problem, inte en prestation i sig. Om jag har skrivit en utmärkt och maintainable bit kod som ändå inte löser problemet som skulle lösas, då är ju denna kod värd noll och intet (nu överdriver jag för att göra en poäng, såhär svartvitt är det inte riktigt i verkligheten). Detta leder till att man får anpassa verktyget man väljer (koden) till vad det är för problem som ska lösas. Om det är en enkel funktion i frontend så kommer jag ofta ge den lite mindre kärlek än en kritisk API endpoint skulle få.

Like it or not, men i slutändan handlar det alltid om pengar. Stakeholders vill skeppa features till kund, och utvecklare vill ta hand om sin kod. Det är en svår balans, och alla team jag arbetat i har haft olika syn på detta. Dock upplever jag med tiden att med mer erfarenhet så har jag även mer mandat att säga till när jag anser att det behövs en refaktorering eller liknande, för att hålla koden i gott skick. Så försök ha tålamod!

Mitt sista tips är att inte försöka vara en superhjälte och fixa alla brister du hittar, särskilt i en stor kodbas. Det kan leda till att du riskerar att bränna ut dig, så ta det försiktigt. Är det en dålig kodbas, so be it. Beroende på projekt så kanske den är nedlagd inom ett par år dessutom. Då kommer ingen minnas alla fina funktioner som du rättade till.

Lycka till och jag är övertygad om att du kommer hitta rätt inom IT, bara du hamnar på en plats som tänker hyfsat som du när det kommer till kvalitet!

Permalänk
Medlem
Skrivet av gelbrect:

jag alltid varit intresserad av datorer/logik/matte och gillar att djupdyka i saker och att jag gillar struktur.
….
Och har ni några tips på roller som jag kan söka på för att ha mer socialt arbete men som ändå gör att jag kan använda min bakgrund med IT? Är för övrigt maskiningenjör.

Förmåga att hantera komplexitet, socialt, organisatoriskt och intellektuellt, är mer värt än behov av struktur.

Kombinationen av oförmåga till att hantera komplexitet och strukturbehov leder ofta till NIH-syndromet: ”Allt är skit och borde skrivas om”.

Även om det är sant, helt eller delvis, så är det sällan produktivt, förutom hos extremt högpresterande och smarta individer som faktiskt kan genomföra en refakturering utan att ställa till problem.

Min erfarenhet är att ”koden är skit och allt borde skrivas om” väldigt ofta kommer från individer som inte förstår vad koden gör och därför kommer misslyckas med en refakturering. Fenomenet uppstår förstås oftare med svårläst kod som löser ett komplext problem, mer eller mindre buggigt och ostrukturerat.

En systemarkitekt eller projektledare som inte kan hantera social och intellektuell komplexitet kommer vara kass på sitt jobb. Det finns gott om projektledare, förvaltningsledare och scrummasters med den profilen, så det skulle kunna funka.

Hos kunden där jag konsultar just nu, produktbolag, blir de avdankade programmerarna kravställare eller spec-skrivare. De är förstås oftast 50+ snarare än två år ur högskolan - och de har en god kunskap om företagets relativt komplexa historik, legacylösningar och produktflora.

Men om man är maskiningenjör som jobbar med systemutveckling och inte gillar det, så är väl det rimligaste karriärvalet att börja jobba som maskiningenjör?

Permalänk
Medlem
Skrivet av trudelutt:

Jag har hanterat det genom att spara pengar och ta ledigt i perioder. Men framför allt så är det bara att stå ut, det tar inte lång tid innan man går i pension...

Hur tar du ledigt i perioder? Tjänstledigt då eller?

Och att hålla ut till pensionen känns rätt tveksamt med tanke på att det är rätt många år kvar dit då jag är relativt junior.

Permalänk
Medlem
Skrivet av tonii:

Nackdelen med det förhållningssättet är ju att man riskerar att bli lite apatiskt inställd till arbetet överlag så det gäller att hitta en lagom nivå.

Jag känner mig väldigt apatiskt inställd till arbetet nu; Allt känns bara hopplöst kaotiskt. Dock är själva arbetstempot och pressen från chefen väldigt låg (vilket jag kan förstå eftersom de hr uttryckt att de haft svårt att rekrytera tilldenhär rollen [undra varför]), så jag känner ingen risk att gå i väggen i nuläget, men situationen är väldigt seg.

Och problemet är då att jag vill söka annat, men jag vet inte vilka yrkesroller som skulle passa bättre. jag tror inte jag passar för kodning på sikt (även om jag förstå att man sannolikt behöver vara hyfsad på att koda för att kunna leda), men samtidigt vill jag inte släppa kompetensen inom utveckling som jag har.

Permalänk
Medlem
Skrivet av gelbrect:

Hur tar du ledigt i perioder? Tjänstledigt då eller?

Och att hålla ut till pensionen känns rätt tveksamt med tanke på att det är rätt många år kvar dit då jag är relativt junior.

Tjänstledigt eller att ta lite paus vid jobb-byte (funkar bäst vid högkonjunktur...).

Tiden går fortare och fortare ju äldre du blir. Man blinkar några gånger och helt plötsligt har det gått ett decennium osv.

Permalänk
Medlem

Det du stöter dig med är egentligen det som gör jobbet som mjukvaruutvecklare svårt. Det finns väldigt få objektiva rätt och fel i det här arbetet. Allting präglas av en stor mängd osäkerhet och det är i regel omöjligt att uppskatta hur lång tid någonting kommer att ta att genomföra. Ingen mängd erfarenhet kommer att minska de aspekterna, och jag kan inte tänka mig något jobb inom mjukvaruutveckling som inte behöver brottas med det. En nyckelfärdighet som du behöver i detta arbete är att jobba med denna osäkerhet och trots den prioritera vägen framåt. Detta gäller även om du väljer angränsande roller.

Nu har du bara några år på nacken, och vad jag förstår är detta ditt första jobb efter examen, och det innebär att du inte sett så mycket av arbetsmarknaden. Det är absolut möjligt att arbetsmiljön hos just din arbetsgivare är undermålig och att du skulle må mycket bättre någon annanstans, men de generella drag du nämner är bara realiteten av att jobba inom mjukvaruutveckling.

Vad gäller att du känner att det är omöjligt att sätta konkreta, mätbara mål så håller jag inte alls med. Det du verkar haka upp dig på är att sätta målen i relation till tid, vilket inte alls är nödvändigt för att målen ska vara mätbara. Här är några exempel på mätbara mål som jag satt upp för mig själv senaste veckorna, vissa avbockade, andra inte.

  • Förstå hur en PNG-fil är uppbygd och handskriv kod för att lägga till metadata i filen för att lösa ett problem med utskrifter - check, problemet är löst!

  • Färska upp minnet på hur blockbaserade krypteringsalgoritmer fungerar (ex. AES-CBC) såpass bra att jag kan förklara för resten av teamet - in progress ...

  • Vägled junior kollega i implementation av en hel feature, från början till slut - in progress ...

  • Trimma onödig loggning och minska kostnader - check, kostnader för loggning ner med 90% jämfört med maj!

Alla dessa mål är mätbara. Jag sätter dock sällan upp exakta mål. Exempelvis hade jag inte som mål att minska loggningskostnader med 90%, målet var att minska kostnader, punkt. Om man sätter målet som vad som ska åstadkommas, men utan att exakt kvantifiera det, så är det inte alls så svårt att sätta upp mål som sedan kan uppmättas. Givetvis kan det då vara svårare att veta när målet är uppnått, men det är i praktiken omöjligt att på förhand veta när man slår i diminishing returns, så jag finner att slutmålet bäst hittas längs vägen när det gäller personliga mål.