I Frend har vi derfor utarbeidet 5 retningslinjer basert på vår erfaring og anerkjent metodikk for å sikre gode leveranser og minimere risikoen for kundene våre.
De 5 bud for et vellykket utviklingsprosjekt
Et utviklingsprosjekt kan utgjøre en betydelig investering og risiko for en liten/mellomstor bedrift.
I innlegget “Har moderne skyverktøy fjernet behovet for egenutviklede løsninger?” diskuterer vi noen av svakhetene moderne skyverktøy lider av i dag, og hvorfor vi i Frend mener at riktige skyverktøy kombinert med smart systemutvikling er en effektiv måte å skape økt lønnsomhet og konkurransekraft.
De 5 retningslinjene
1. Ikke finn opp hjulet på nytt
2. Kunden skal ta en aktiv del i utviklingsprosessen
3. Bygg modulært og i mikrotjenester når det er mulig
4. Bygg løsninger med lang levetid
5. Design bærekraftige løsninger
1. Ikke finn opp hjulet på nytt
Det kan være fristende å prøve og lage “det perfekte verktøyet” - et skreddersydd produkt som tilfredsstiller dagens (og fremtidens) behov og som kun inneholder funksjonaliteten bedriften trenger.
Men når behovene til en tradisjonell virksomhet som oftest er standardiserte og generiske er det nesten alltid en dårlig og dyr løsning å utvikle et nytt verktøy fra bunn. Det finnes som regel veletablerte hyllevare som kan løse disse bedre og betydelig rimeligere.
I Frend starter vi alle prosjektene våre med en innsiktsfase der vi blant annet setter oss dypt inn i problemstillingen og undersøker om det finnes verktøy på markedet som allerede løser kundens behov. Vi jobber også for å ha en høy inhouse kompetanse på både markedsledende skyplattformer og systemutvikling.
2. Kunden skal ta en aktiv del i utviklingsprosessen.
I Frend har vi en agil tilnærming til utvikling. Dette innebærer at vi har et fokus på funksjonelle del-leveranser der kunden tar aktiv del i utviklingsprosessen og tester systemet jevnlig. I praksis betyr dette at prosjektet er oppbygd i gjentagende sprinter som varer i mellom to og fire uker. Hver sprint er bygd opp likt og skal resultere i et funksjonelt produkt som kan presenteres og testes.
En slik tilnærming sikrer at vi i gjennom hele prosjektet har en felles oppfatning av hva systemet skal løse, prioriteringer, prosjektstatus og forventninger. Fokuset på jevnlige funksjonelle leveranser sikrer at vi prioriterer riktig i utviklingsfasen og at kunden rasket mulig sitter på en løsning som kan testes og brukes. Å sette kunden i sentrum av utviklingsprosessen øker sannsynligheten for at kundens bransjeinnsikt blir overført til systemet.
3. Bygg modulært og i mikrotjenester når det er mulig.
Mange virksomheter bygger fortsatt sine digitale tjenester på såkalte monolitter. En monolitt er en applikasjon som prøver å løse mange relaterte behov i ett og samme system.
Et eksempel på monolitter er tradisjonelle e-handelsplattformer. Disse inneholder gjerne et PIM (Product Information Management) for å håndtere informasjon om produkter, et CMS (Content Management System) for å håndtere annet innhold, en webserver som hoster nettbutikken og en shipping- og betalingsløsning, alt i én plattform.
Et typisk problem hos monolitter er at de raskt vokser seg så store og komplekse at videreutvikling blir komplisert og ineffektivt. Mange opplever at for mye ressurser går med til å rette feil og fjerne teknisk gjeld i stedet for å utvikle nye verdiskapende tjenester.
Derfor utvikler vi i Frend alltid modulært og i mikrotjenester når det er mulig. Mikrotjenester er en måte å bryte store programvareprosjekter inn i isolerte, løst koblede moduler, der hver modul har ansvaret for en avgrenset funksjonalitet. Denne måten å bygge systemer på har blitt enormt populær og kommer med mange fordeler, blant annet at:
Applikasjonen blir mer robust da en feil i én modul ikke behøver å påvirke resten.
Applikasjonen blir i større grad teknologiuavhengig. Mikrotjenester gir fleksibiliteten til å teste ut nye teknologier eller rammeverk på individuelle tjenester eller moduler
Applikasjonen blir mer skalerbar. Siden tjenestene er separerte er det enklere å skalere der det er behov.
4. Bygg løsninger med lang levetid
Mange virksomheter sitter fast i eldre egenutviklede løsninger som verken blir videreutviklet eller vedlikeholdt. Mangelen på vedlikehold fører til applikasjonen er utsatt for feil og sikkerhetshull, mens fraværet av videreutvikling medfører at applikasjonen ikke endrer seg i takt med virksomheten og markedet.
Det er flere faktorer som kan bidra til at en egenutviklet applikasjon blir utdatert og mister sin nytteverdi. En vanlig årsak er det ble valgt en teknologi eller et rammeverk som hverken var modent eller veletablert nok, og at det blir vanskelig å finne utviklere med rett kompetanse etter noen år.
En annen vanlig årsak er at applikasjonen har vokst seg så stor og kompleks at det nærmest er umulig for nye utviklere å sette seg inn i løsningen. Applikasjonen er gjerne dårlig dokumentert, rotete strukturert og bruk av konvensjoner er fraværende.
I Frend utvikler vi derfor alltid systemer med levetid i bakhodet. Vi velger veletablerte teknologier og godt kjente rammeverk i våre utviklingsprosjekter og har som mål at kundene våre ikke skal være leverandøravhengig. Videre har vi et gjennomgående fokus på god dokumentasjon, ryddig og strukturert kode, testing og vedlikehold.
5. Design bærekraftige løsninger.
Visste du at dine digitale tjenester også har et fotavtrykk på miljøet? Å besøke en webside kan faktisk tilsvare et CO2-utslipp på flere gram. Det er derfor utrolig viktig å designe miljøvennlige løsninger med effektiv kode og infrastruktur som minimerer energibruk.
I Frend jobber vi aktivt for å redusere vårt og våre kunders karbonavtrykk. Dette innebærer blant annet at vi benytter grønne hostingleverandører drevet på fornybar energi og designer tjenester uten unødvendige dataoverføringer og prosessering.