development, thoughts, work

Hva er en god systemutvikler?

Dusty road in a desert landscape with a car
Veien til å bli en god systemutvikler er hompete, støvete og endere kanskje ikke der du tror.
Kilde: https://www.flickr.com/photos/honzasoukup/2398942904/

Hva er en god systemutvikler? Dette er et ladet spørsmål, så først vil jeg legge ned min definisjon av systemutvikling. Det er et lagspill der man sammen leverer en digital løsning på en utfordring / problem.Legg merke til at jeg ikke sier «hva er en god programmerer». Hvorfor ikke? Fordi programmeringsdelen er bare en  del av det som inngår i systemutvikling. Så, hvilke egenskaper trengs for å være en dyktig systemutvikler i 2018 og i tiden fremover? 

Kommunikasjon 

Du trenger først og fremst å være i stand til å kommunisere med de du jobber med. Det betyr at du kan gjøre deg og dine tanker forstått enten verbalt eller skriftlig. Det er sjelden man sitter alene og utvikler noe uten at man må kommunisere med noen. Dette gjelder både i jobb, men også i stor grad i feks Open Source. En del av det å kommunisere bra er å bli forstått, men også det å gjøre det på en måte som er positiv for de rundt deg. Hvis du sliter med kommunisere det du gjør, tenker eller mener så vil du merke at det å jobbe som systemutvikler kan være frustrende. Å kontinuerlig jobbe med hvordan du kommuniserer muntlig og skriftlig er en veldig viktig det av det å drive systemutvikling. Det er også viktig å forsøke mestre både den uformelle (f.eks chat) og den mer formelle som går på å skrive dokumentasjon eller lignende. 

Empati

Du trenger å være empatisk og forstå de rundt deg. Systemutvikling er å løse problemer for mennesker (startsett, noen ganger å løse problemer for andre maskiner etc men ofte er det mennesker) og da er evnen til å sette seg inn i deres situasjon essensielt. Spesielt i løpet av de siste årene har dette blitt viktig, da teknologien vi utvikler direkte påvirker menneskers lov. Hvis vi som utvikler disse løsningene gjør det uten et snev av empati gjør vi livet til de rundt oss verre, ikke bedre. Systemer utviklet uten tanke på de det påvirker kan få fatale konsekvenser og kan være skillet mellom liv og død (se https://www.nytimes.com/2018/10/15/technology/myanmar-facebook-genocide.html). 

Oppsummert

Kommunikasjon og empati er viktige for å være en bra systemutvikler i tiden fremover. Det betyr ikke at selve faget programmering er uvesentlig og at de to egenskapene jeg nevner gjør at du ikke trenger utvikle den faglige siden av systemutvikling. Det jeg mener er at i tillegg til kunnskaper i faget må du ha menneskelige egenskapene for å være en god systemutvikler. Tiden da systemutvikling var en solo greie er over og kommer aldri tilbake (heldigvis). Ei heller vil tiden da vi laget systemer bare for lolz være det. Det vi lager påvirker verden og menneskene i den, og det ansvaret som ligger på oss som utvikler systemene skal vi ta på alvor.

Kortslutning Podcast har en episode om samme tema, sjekk den ut: “Må du være lidenskaplig opptatt av programmering for å bli en bra utviklar?”

Standard
work

Distribuerte produksjonsenheter er kommet for å bli – eller Remote Work FTW

Credit: https://www.flickr.com/photos/snowpeak/14351894398/

Jeg tok en sjanse i sommer, jeg gikk over i en jobb hvor jeg visste at jeg kom til å jobbe som del av et distribuert team i Vibbio. Resonnementet bak å prøve var at om det funker og jeg liker det kan det åpne nye muligheter for å gjøre morsomme ting i femtiden.

Jeg har en erfaring med å jobbe distribuert og det var under en oppsigelsestid hvor jeg var fristilt. Da jobbet jeg med en person i Seattle og vi klarte og levere det vi skulle. Riktignok varte dette bare ca tre uker. Etter det var planen å finne noe annet, det ble aldri noe av.

Å skulle jobbe distribuert uten å ha noen du kan bare snu deg til også snakke med var skremmende. Alle som har jobbet med meg vet at mitt behov for å snakke er der ganske hyppig (beklager..). Jeg har også merket at jeg liker mennesker og liker å snakke med folk. De gangene jeg har hatt foreldre permisjon har jeg snakket hull i hodet på de hjemme fordi jeg ikke har fått snakket. Så vi kan si at kona var minst like bekymret.

Antagelig jobber du alt distribuert

Jeg her nå gjort det en måned og har vel egentlig erfart at det å jobbe distribuert er ikke så ulikt å jobbe i en stor bedrift. Hvis du uansett bruker digitale hjelpemiddel for all dag til dag kommunikasjon så er overgangen til å jobbe distribuert liten. Om kollegaen er i en annen etasje, bygg eller land betyr lite. Eneste overgangen er at du ikke like enkelt kan kaste bort tid på å bare snakke med folk.

Veldig mange steder har tatt i bruke ting som Slack / HipChat eller lignende. De aller fleste styrer oppgaver og prosjekter via digitale løsninger. Hvis vi skal oppsummere så er det egentlig bare møter som må endres (og strengt tatt er vel det bare 100% positivt ettersom alle selskaper er elendige på å holde møter) til å bli digitale via videokonferanse.

Ikke nødvendigvis hør på alle råd

Hvis du får muligheter til å ta en jobb som har et distribuert team, så er det verdt å sjekke ut. En liten viktig ting er å sjekke at dere er i samme tidssone. Etter hva jeg har hørt er det en helt annen greie og kanskje ikke så chill om dere er ca på samme tidssone (selv om min første remote jobb var på tvers av tidssoner og var bra, så tror jeg det først og fremst var fordi vi var et team på to mennesker).

Hvis du leser på nettet om Remote Work er det selvsagt en mega industri som er veldig klar på at dette med å jobbe distribuert krever at du leser masse greier, kjøper bøker, handler inn kontormøbler, setter deg inn i hvordan du skal gjøre dette mega endringen. Det er litt som når du får barn for første gang og begynner lese alle tingene du bare  ha, men som du senere innser er fullstendig unødvendig.

Jeg kjøpte 37 Signals sin Remote: Office Not Required bok, som var nyttig og lese men kanskje mest nyttig for de som trenger argumenter for å begynne jobbe distribuert. Utover det har jeg ikke gjort noe. Dagene jeg er hjemme sitter jeg ved kjøkkenbordet (fordi det er ikke plass til noe kontor). Jeg har ingen spesiell rutine annet enn å levere unger dit de skal også få meg kaffe.
Folk er selvsagt forskjellige, men det er verdt å ikke lese for mye og heller bare prøve seg frem selv. Snakk med folk du kjenner og stoler på som har gjort dette alt.

Hva er anderledes?

En ting jeg merker veldig er at du må være flinkere til å formulere deg presist og kanskje bruke litt lengre tid på å utforme det du skal kommunisere. For meg personlig er det ekstremt positivt, da jeg kan være litt vel rask og noen ganger ikke helt være innforstått med at kanskje ikke alle vet alle detaljer jeg har i mitt hodet. Du merker at det å bare slenge ut noe på Slack ikke funker så bra. Tidligere har jeg gjort det mye, men da har jeg som regel tatt det “offline” rett etterpå for å liksom rette opp i ting som ble misforstått.
Jobber du distribuert så må du rette opp alt skriftlig også, noe som kan bli lange og tunge chat dialoger. Så jeg forsøker å bli flinkere til å komme med litt mer gjennomtenkte og velskrevne ting for å unngå lange chat tråder.

Dokumentasjon kommer automatisk, fordi du må formulert noe skriftlig for å gjøre noe. Dermed har du allerede før du begynner noe dokumentasjon og for å forklare dine intensjoner klart ovenfor de andre må du som regel skrive litt til når du er ferdig med en oppgave. Vanligvis kunne du bare reist deg opp også sagt “ey, jeg har laga noe kom å se” eller tatt det i lunchen. Distribuerte jobbing gjør at du er nødt til å ha en “papirsti” for at andre skal kunne forstå hva du holder på med.

Credit: https://www.flickr.com/photos/indi/3104247104/

Sjefer som er vant til å være “manager of chairs” vil bli helt åpenbart unyttige og være uten hjelpemiddel til å fortsette styre teamet på en gal måte. Å være på team hvor viktigste delen av jobben er å ha ræva si på en stol på et kontor er ikke gøy og ekstremt demotiverende. Ved å fjerne muligheten til å kalle “å se at folk er på jobb” ledelse så flyttes også fokus på hva det er som leveres av verdi. Det er ekstremt positivt og kanskje en av de aller største fordelen med distribuerte team.

Jeg merker at jeg må jobbe litt med min holdning / fremtoning i video møter. Hvis hele kroppen min og stemmen min utstråler “jeg vil gjøre noe annet, make it stop!!” så er det ganske dårlige signaler. I vanlige møter kan du rette dette opp med “koseprat” før / etter møtet, mens i videokonferanse får du liksom ikke det.

Konklusjon:

Å uttale bastant at dette er AWESOME etter rundt to måneder er i overkant naivt. Jeg vil si jeg er overrasket over at jeg liker det såpass bra allerede. Skepsisen jeg gikk inn i dette med er i ferd med å forsvinne. Jeg merker at friheten og ansvaret du får ved å jobbe distribuert passer med bra, kanskje varer det også.

Standard
Misc, thoughts, work

0’er og 1’ere

Trondheim Developer Conference var stedet jeg valgte for å bearbeide følelser om noe som skjedde for seksten år siden. En Historie Om 0 og 1 er et foredrag hvor jeg forsøker å beskrive hvordan det var for meg å møte veggen og hva jeg ser som problematisk med dagens utviklermiljø. Hvorfor? Fordi vi som jobber med systemutvikling trenger å snakke om de vanskelige menneskelige tingene. Jeg håper at ved å fortelle min historie kan jeg hjelpe andre og kanskje hjelpe til å endre usunne holdninger som er i vårt miljø.

Uka før TDC holdt jeg en “dry run” av foredraget for mine kolleger i NRK noen dager før konferansen, mest fordi da slapp jeg å lage alt ferdig kvelden før. Det viste seg at det skulle bli noe av det vanskeligste jeg har gjort (minus minnetaler i begravelser). I det jeg skulle begynne kom det følelser jeg ikke ante var der. Etter foredraget hadde jeg en samtale som hjalp meg å få satt ord på veldig mange ting jeg ikke hadde klart selv. Å høre andre beskrive hvordan de følte det i en lignende situasjon,  og høre hvordan de opplevde det gjorde at jeg selv gravde opp en del ting jeg hadde lagt vekk. Selv etter så lang tid hjalp det å snakke med noen om hvordan dette var. På veien hjem fra jobb var hodet fylt av tanker og jeg var følelsesmessig helt utladet.

Jeg hadde aldri før satt ord på hvordan jeg følte det på den tiden, og det viste seg å være tøffere enn jeg hadde trodd. Det er seksten år siden og da det skjedde ville jeg vel bare videre. Bli frisk også fortsette å leve ut drømmen. Det var nok ting, som jeg ikke har satt ord på før nå, jeg burde ha bearbeidet. Men, jeg var ung og hadde ikke tid til slik. I tiden etterpå endret jeg ikke så mye. Det hendte jeg jobbet mye i perioder, men det var ting som var mulig for meg å mestre. Etterhvert ble jeg tryggere på meg selv og hva jeg kunne. Da begynte jeg å være strengere på jobbing. Mindre overtid og jeg brukte ofte min venn Chris’ sitat: “bad planning on your part, does not constitute a crisis on my part”.

Jeg er bare en som forteller min historie

Å snakke om ting, gjør noen ganger at folk tror du har en eller annen form for kunnskap de mangler. Jeg er overhodet ingen som kan noe om dette med utbrenthet eller hvordan fikse det. Det finnes smarte folk som du heller bør søke svar fra enn meg. Det eneste jeg vet er hva som skjedde med meg og hva som hjelper meg. Andre har sine historier og sine måter å jobbe gjennom det. Ikke ta min historie som noen fasit eller absolutt sannhet, men vær nyskjerrig og forsøk lese hva andre smartere folk kan si om disse tingene. Jeg ønsker bare å starte samtalen om tinge som er vanskelig. I håp om å gjøre det litt enklere for andre å fikse sin hverdag.

Rett etter og i tiden etter foredraget har jeg mottatt mange veldig hyggelige meldinger og hatt bra samtaler med folk. Å høre fra de som har vært igjennom det samme at dette var bra, betyr utrolig mye. Å se at folk vil anbefale kolleger og kjente å se det gjør meg takknemlig. Hver gang jeg holder denne typen foredrag tenker jeg i dagene før “hvorfor gjør jeg dette her!!??”. Tilbakemeldingene fra folk er svaret, å høre at du sa noe som ga mening eller hjalp er grunnen til å utlevere meg selv for alle å se.

Se EN HISTORIE OM ENERE OG NULLER fra Trondheim Developer Conference.

Standard
thoughts, work

Relax, it’ll be alright

Photo by https://www.flickr.com/photos/39877441@N05/6247115482/

Photo by https://www.flickr.com/photos/39877441@N05/6247115482/

I was so incredibly fed up waiting for the chance to make a living writing code. Since I was very young, I’d wanted to program computers for a living. The years it took me to get there felt like an endless wait of learning things I didn’t care for. Looking back though, the learning I didn’t care for was perhaps the most valuable. Anyways….
When I finally was given a job as a programmer I was living the dream, my dream. I was the guitarist who got a hit record with his band, the soccer player who signed his first professional contract, etc. In other words: it felt pretty damn good!

As a person starting a career in programming it is easy to feel you’re coming up short. Especially these days when news, ideas and The Next Thing is only a social media post away from you. We measure our own lives and achievements against those portrayed in the media. Needless to say, almost everyone of us falls short in such a match-up. It’s not because we lack dedication or passion.

Why aren’t you making the next killer app?

I get this question every now and then. People who aren’t deeply involved in our industry ask me this. A perfectly reasonable question in their mind. However it’s kind of like asking the janitor at a hospital why he’s not curing cancer. After all he works in the health industry. Ok, I’m exaggerating just a tad here. But, it’s questions like these many end up measuring themselves against. Why aren’t I a multi-billionaire? Why didn’t any of my startup adventures work out with me sitting on caribbean island drinking from a coconut? Why haven’t I written The Framework which the Web relies on and everyone loves? Having never been even close to accomplishing any of these things, does that mean I am a failure?

You should redefine success

I have made a living being a programmer since I was in my early twenties. Fortune has it that I’ve started a family during these years. I live in a nice place where many of my neighbours are now my friends. It close to the forrest and the outdoors, which is important to me. My job let’s me be who I am and which has many interesting challenges for me. I have two healthy children and an amazing wife. Is this success? For me, this is the most success I can hope for. I’m not going to create any killer apps or businesses that generate gazillions of cash. Success to me is to do what I love and be happy with what I have right now.

Being average is being normal

I’m never going to be a superstar coder who’s renown for my brilliant libraries, framework or thoughts about programming theory. My coding skills are average and I try to make up for that by having stamina and determination to never give up. You know what? Most in this industry are average just like me. It’s perfectly fine to be average, mediocre and one of the herd. You don’t have to be the Next Big Thing before you’re twenty five. Settle into a stride which suits you, take your time and enjoy your work. Don’t freak out because “everyone else is being amazing and I’m not”. The idols and stars we worship are exceptions, not the rule.

I am not “Silicon Valley material”

These days I don’t make it a priority to attend meet-up’s, I do however attend my kids soccer practice no matter what. This year I won’t attend a single conference, but I try to be at all school gatherings. I don’t think I’ve read more than a handful of programming related posts this year. If it hadn’t been for the fact I update a website on Github, my punch card would probably be empty. Does this make me a bad programmer? Surely I wouldn’t stand a chance in what is seen as the Mecca of software development, Silicon Valley. I don’t stop doing some of these things because it’s impossible for me to do it all, I just choose not to. If you’re able to all of this, great! If not, that’s also great. It means you’re being conscious about how you spend your time.

“Kill” your idols

In our industry we don’t worship people who live my kind of life. Our ideals are framed, still, by the idea of meritocracy. You should live, breath and shit coding every living second on this planet. Any spare time should be spent learning a new language, or better, write a new language. Not only that, but you should give talks and do a video blog. At a minimum you should host a meet-up, but better is to put on a conference.
Needless to say, very few of us measure up to these high expectations of what a good developer is. If you do all these things, you are amazing! If you don’t, you’re still amazing!

OK, listen up

If you’re starting out as a programmer, please don’t rate yourself according to the rules of meritocracy. You are so much more than the green squares on your Github punch card. The number of talks on speakerdeck.com. Success can be very different for you than what is portrayed in the media. Make it a priority to define what success is for you in your own context, it will help you find your own path.

Most importantly, just relax. Breath and take it easy. You don’t have to do all the things at once your first years in the industry. It’s perfectly fine to take things in your own pace. You’re a valuable programmer even though you aren’t running yourself to the ground. Everything doesn’t have to materialize itself within your first ten years of working. Everyone is different, we all learn and grow in our own pace. Don’t beat yourself up if you don’t measure up to the idols and ninja-super-rock-star-people. Those idols don’t actually exists, it’s mythical stories told bye people who need to exploit passionate people. Having a slick online presence and a killer rep in the business are superficial and very temporary.

Remeber, breath and relax

Focus on things that matter in the long run, and slow things down. It’ll be fine in the end, I hope. These things I’ve talked about are really existential questions more intelligent people have discussed at length before I wrote this. Finding happiness in the moment right her and now can be a hard. I struggle with it constantly and need to remind myself of what matters to me the most.

To read and learn more about many of these things I find reading The Book of Life website really interesting and it triggers me to think and evaluate my own perspectives.

Remember, breath and relax.

Thanks to Alexandra Leisse for input and inspiration.
Original postion on Medium.

Standard
work

Min Jævla Prosess – My Damn Process

Photo by: https://www.flickr.com/photos/vegard/15041090974/

Photo by: https://www.flickr.com/photos/vegard/15041090974/

I realized today that my way of doing things is really quite simple, so I decided to write it down:
This is my natural way of doing things. However, not everyone follow this simple three step process. It is like my current boss said: “I assume you just set off down a hill when you go skiing”. My response was: “Of course, I always do that. Don’t you?”. If you know everything about the terrain and have identified all the possible consequences, to me, you have removed all the fun.

It’s like Mater in Cars says when he does his backwards-driving: “I don’t need to see where I’m going, because I know were I’ve been”

 

The paragraphs above was  a post I wrote in 2014, but never published for some reason. Having just published “Giving advice” I definitely see the irony of having written this post. I hope this means I’m wiser and not just older.

Luckily I did add a comment to the Gist, which slightly balanced the tabloid 3-step process:

Additional activites you can / should do during step 3:

  • you should worry about wether what you started if this is a good thing
  • you should never think about all the consequences until you encounter them
  • you should check to see if the thing you envisioned is correct solution
  • you should be afraid when you start, if not you’re playing it too safe
  • you should always second guess and doubt your decision on starting on the endavor
  • and for the love of God, have some fun while doing all this.
Standard