Hva gjør du når du skal sette igang et nytt prosjekt? Hva slags teknologi skal du velge? Hva med tredjepartsbibliotek/produkter som vil hjelpe deg? Og hva gjør du om det er flere som skal være med på å ta en beslutning? Om du er konsulent så sitter du kanskje hos en kunde som stoler på at du tar riktig beslutning?

Jeg har vært hos flere kunder hvor det tilsynelatende er tilfeldig hva som blir valgt av ny teknologi. Det kan være alt fra en ny NoSQL database som er i vinden for tiden, eller det kan være at valg av rammeverk gjøres fordi noen på prosjektet har lyst til å få erfaring med noe som virker spennende. Har du noen gang opplevd at du har endt opp med å angre på beslutningen? Uansett grunn til å velge nytt vil det være en sjanse for økt risiko, kompleksitet eller tidsbruk. Når man velger noe nytt fremfor noe kjent vil det fort dukke opp problemer man ikke har forutsett. Alle styrker og svakheter med det nye vil man ikke kunne gjette seg til før man har fått erfaring.

Når man skal velge nytt vil jeg foretrekke å lene meg på andre som har mer erfaring enn meg selv. Slik som denne radaren hos ThoughtWorks. Jeg har ennå ikke vært på et prosjekt hvor man har hatt forutsetning til å ta bedre valg enn hva man kollektivt gjør i vår bransje. Om man skal velge nytt JavaScript rammeverk kan man for eksempel se på hvor mange andre som velger det. Om du er ærlig med deg selv, har du forutsetning til å gjøre et bedre valg?

En av grunnene til at jeg liker å støtte meg på flere enn deltakerne i prosjektet, er fordi det ikke nødvendigvis er de samme som velger ny teknologi som er tilstede etter at prosjektet har pågått en stund. Da vil det være en fordel at man har valgt noe som flere vil være kjent med og som har et godt fotfeste i bransjen. Finner du kompetanse på teknologien andre plasser? Finnes det et aktivt community rundt det du har valgt? Er bedriften du jobber for moden for å velge det absolutt nyeste? Er det greit å eksperimentere?

I en bransje som beveger seg så fort som vår, er det alltid behov for å eksperimentere. Et eksperiment bør ende opp i en analyse om hvorvidt teknologien bidrar til noe positivt inn i løsningen. Dette medfører derfor en ekstra kostnad.

Om man skal eksperimentere med noe man mangler kompetanse på internt så har man noen valg som er lurt å vurdere:

  • Få inn nødvendig kompetanse i en periode for å lære opp interne ressurser.
  • Få inn nødvendig kompetanse etter en “proof of concept” for å kjøre en analyse på om man er på riktig vei.

Jeg mener det er lurt å ikke eksperimentere med for mange ting samtidig. Gjør man det, er det veldig fort gjort at det som eksperimenteres med “by default” blir en del av løsningen uten at man er klar over konsekvensene på lang sikt. Det kan rett og slett være vanskelig å vite hva som har bidratt til forbedring, eller i verste fall forverring.

Noen ganger kan det være helt nødvendig å velge nytt. Kanskje det brukes teknologi som ikke vedlikeholdes lenger, eller at leverandøren av et produkt du bruker har varslet at det ikke vil vedlikeholdes utover en gitt dato. Da kan kosten av å ikke velge nytt være større enn å velge nytt.

Når man velger ny teknologi er det alltid en fare at man i etterkant får informasjon som gjør at man tenker at valget kunne vært bedre. Da er det greit å kunne argumentere for at valget var bevisst, og basert på informasjon som var tilgjengelig på det tidspunktet valget ble gjort.

Om du er interessert i en annen vinkling på det å velge nytt anbefaler jeg dette foredraget av Dan North. Det er veldig relevant og legger til enda flere dimensjoner man bør ha i bakhodet.