lördag 6 februari 2010

Om ambitioner, karriärsval och vår yrkesstolthet

Nyligen har jag varit inblandad i rekryteringen av nya utvecklare. Förutom insikten om att vi är ganska sällsynta, fick det mig in på ämnet karriärsval och ambitioner.

När jag började plugga systemutveckling 1998 var den gemensamma uppfattningen hos mig och mina klasskompisar att programmering var kul men inte slutstationen. Ju förr man fick dra på sig slipsen och titulera sig projektledare eller något annat flott, desto bättre! Programmering var något man började med för att senare klättra raskt uppåt för att inte alls ha med kod att göra. Tanken då var att någon annan ju skulle koda det vi bestämt, designat eller arkitektat.

Jag minns tydligt mina formuleringar i mina jobbansökningar: "jag siktar på att en dag lyfta blicken från koden och arbeta mera med projektledning". När jag efter mina första fem år som utvecklare sökte nytt jobb menade jag formuleringen mer än förut och tänkte att mina fem år som utvecklare borde ju ge pay off snart!

Nu inser jag hur fel jag hade. Mina första fem år som utvecklare gav pay off, men inte det jag tänkt. Jag blev bättre - på att utveckla, inte projektleda. Varför skulle det vara då självklart att jag som utvecklare skulle nalkas projektlederi? Varför skulle mina fem års programmerande göra mig till en bra projektledare eller, för den sakens skull, ens intresserad av projektledning.

Nu frågar jag mig istället: vad är roligt och utmanande i mitt arbete? Vad är det som får igång min kreativitet, mitt engagemang och min nyfikenhet? Det är lätt att svara på. Dom stunder jag sitter och programmerar - skapar - är de absolut mest utmanande. Nu, med snart åtta års erfarenhet känner jag mig än mindre fullärd som programmerare än någonsin. Det innebär inte att jag är sämre, bara att jag förstått att allting hela tiden utvecklas. Ju mer man gör sig medveten av vad som finns tillgängligt och vad andra gör, inser man att det finns mycket man inte kan eller inte provat.

Med den bakgrunden, att allting förändras, hur kan vi som programmerare / systemutvecklare då se som självklart att vårt yrke är ett steg mot något annat? Varför kan vi inte bara finna stolthet i vårt yrke och finna glädjen i att bli mer och mer professionella på just det?

Det finns ju två vanliga vägar vi kan välja att gå, som alternativ till att stanna kvar som programmerare / systemutvecklare (vad är skillnaden egentligen, varför skriver jag / mellan dessa titlar?).

Projektledare innebär ju oftast att administrera. Att hålla koll på projektet, planera tid, följa upp arbete och svettas med kunder. Själva rollen erbjuder ju ingen hands-on med koden direkt. Som projektledare handlar det mer om arbetsledning och administration än utveckling. I mina öron lockar det inte.

Arkitekt innebär oftast att koden börjar tyna bort från skrivbordet (nivån av försvinnande beror kanske på typ av arkitekt) och att man mer använder Visio och Outlook som sin utvecklingsmiljö. Visst är det kul att sitta och spåna om lösningar, beskriva dem och eventuellt rita diagram över dem. Men vore det inte trist att inte få skörda frukten och se lösningen växa fram i kod? Dan North pratade på Öredev om arkitektrollen och att det var ett problem att denne ofta inte har kontakt med koden längre. "Code? I am an architecht, can't you SEE my beard?!".

Poängen är inte att dissa dessa andra yrken. Inte alls. Poängen är att se dem som andra yrken. De behövs och förtjänar all respekt, men de är inte en naturlig följd av ett par år som systemutvecklare. De är yrken man kan välja, oavsett om man varit utvecklare eller ej.

Jag har börjat se annorlunda på framtiden. Jag är nöjd med att vara utvecklare, nöjd med att bli bättre på att göra just det. Jag har mycket kvar att lära och är fortfarande gladast när jag får koda. Hade jag varit i en organisation där mitt yrke innebar en serverad lösning som jag, utifrån strikta riktlinjer, skulle koda hade min glädje säkert varit mindre Jag vill ha mer frihet. Men jag undrar om sådana ställen verkligen finns. Med dagens agila trender krävs vi systemutvecklare att göra mer av allt. Vi är lite projektledare, lite arkitekter och en stor portion programmerare. Därför undrar jag hur många strikt uppstyrda "programmerare" det finns idag.

Tyvärr är ju verkligheten att om man blir för bra på att utveckla kommer man i många fall bli erbjuden steg "uppåt", vilket innebär mindre och mindre av det man är så bra på. Man blir "promoted to incompetence", dvs man skickas uppåt så länge man är riktigt bra på sitt jobb tills man stannar på ett man inte är lika bra på... (Kallas också The Peter Principle). Jag skulle vilja se en framtid där karriärsstegen innebar att bli bättre och bättre på att utveckla. Att få erkännande för sitt kunnande, sina färdigheter och sin kunskapsspridning till andra.

Men okej, visst finns det personer som hittar en alternativ karriär genom att befordras. Men jag vill slå ett slag för att värdera de som är riktigt bra utvecklare. Klappa dem på axeln, ge dem högre lön - men skicka inte alla längre bort från koden.

Vad alla andra väljer att göra i sin karriär är ointressant. Det är vårt eget karriärsval som är det viktiga. Är man glad och nöjd med det man gör och ser en framtid i det - fortsätt med det! Det tänker jag göra. Men här och nu stryker jag "siktar på projektledarrollen" ur mitt CV.

Over and out!

Dagens kodarmusik: Pain of salvation - Road salt (Ja, jag är ett melodifestival-freak)

måndag 1 februari 2010

Alla vill bidra med något - vad är vårt bidrag?

Tittade på Skavlan i SVT där filosofen Alain de Botton var med. Alain talade om ämnen från sin bok "the pleasure and sorrows of work". En verkligt intressant man med många spännande tankar. En sak han sa fastnade hos mig: i vårt arbete vill vi alla känna att vi har en mening, att vårt arbete gör skillnad för någon annan. Oavsett hur litet bidraget är gör det oss lyckliga.

Jag har länge funderat över vad vårt bidrag egentligen är. Vi levererar ju något väldigt abstrakt, ettor och nollor. I bästa fall syns vår applikation, men vad bidrar det egentligen till? Svaret är användarnytta.
Som utvecklare är inte vårt syfte att skapa teknisk briljans, innovation eller smarta funktioner. Vårt syfte är att göra skillnad för våra användare. Ofta hamnar jag själv i diskussioner oim hur vi kunde bygga det ena eller andra på olika sätt för att göra det så tekniskt smart som möjligt. Mindre ofta handlar diskussionen om på vilket sätt användaren skulle komma till gagn.
Det kan bero på att de flesta av oss sitter ett par led från den nytta vi egentligen förväntar oss. Vi skulle egentligen vilja göra en direkt nytta genom att bidra till företagets välstånd, bättre klimat eller en bättre värld. För de flesta av oss är den direkta nytta vi gör förknippat med hur väl någon annan kan använda vår mjukvara för att göra sin del i kedjan. En användare kan då skapa ett bättre produktsortiment, som sedan kan marknadsföras av marknadsavdelningen som sedan kan säljas av säljledet. Alla har vi vår del i nyttan, det gäller bara att finna vår plats.

Det känns som en lättnad att ha hittat min del i det stora ekorrhjulet. Med andra ord ska användaren bli min bästa kompis framöver, den jag vill göra glad, den jag vill göra mitt bästa för. Självklart måste ett visst mått av teknisk briljans förekonma, både för att göra jobbet på bästa sätt men också för utmaningen, för att polera det professionella egot en smula. Expertkänslan man får av välskriven och vällbyggd mjukvara skapar en professionell lycka. Men det får inte överskugga varför vi egentligen utvecklar. För, lets face it - ingen användare, inget jobb.

Mitt i skrivandet av detta inlägg lyssnade jag på podcasten .Net rocks (som är helt grym, by the way). Man intervjuade Juval Löwy, levande utvecklarlegend och sjukt intelligent snubbe. Han sa något som fastnade, ungefär: Det vi utvecklare producerar hamnar i en av två kategorier. Den ena är affärsnytta. Den andra är "plumbing", rörmokeri, infrastruktur. Användaren bryr sig inte alls om rörmokeriet i mjukvaran, ändå är det där vi gör absolut mest arbete.

Även om Juval hade en annan poäng med uttalandet än just användarnytta, visst låter det bekant? Vår möda ligger mer på hur vi bygger än på vad vi bygger och varför.

Jag bjuder gärna in till ett inlägg om hur vi får den andra sidan att se på oss på samma sätt. Att vi är där för att hjälpa, men att vi behöver veta hur vi kan hjälpa.

I en artikel i Computer Sweden förra veckan tyckte Lars Dahmén att vi skulle sätta oss bredvid användarna i lunchrummet. Det låter som en bra idé. Leta upp en användare, bjud på en kopp kaffe och fråga vad du kan göra för honom/henne! Jag tror det kan vara början till en vacker vänskap...

Over and out!

Dagens kodarmusik: Signum - Push Through (Edit)