C:\Users\WebRodent\AI-Adoption>

Introduksjon

Velkommen til DevOps-veiledningen for WebRodent. I den hurtigskiftende verden av programvareutvikling og drift er det viktig med en helhetlig og forståelig tilnærming. Denne veiledningen gir et klart rammeverk og praksis for effektive arbeidsflyter, høykvalitets programvarelevering og sikre rutiner. Hovedfokusene er samarbeid, automatisering og kontinuerlig forbedring.

Med WebRodent håndboken ønsker vi:

Å gi klare retningslinjer for CI/ CD prosesser

Effektivitet og kvalitet i våre leveranser oppnås gjennom klare og forståelige retningslinjer. Innen programvareutvikling som stadig endrer seg, gir tydelige prosedyrer oss evnen til smidig tilpasning. Dette spenner fra kodeintegrasjon til infrastrukturhåndtering. Målet er å minimere flaskehalser, redusere feilrater og sikre en pålitelig levering av software.

Å vektlegge sikkerhet i alt vi gjør

I vår digitaliserte tid er sikkerhet en absolutt nødvendighet. Vi har et ansvar for å beskytte vår egen og brukerens informasjon, uansett om det er gjennom kodeutvikling eller datalagring. Dette innebærer regelmessige sikkerhetssjekker, bruk av kryptering og kontinuerlig opplæring av teamet. Med sikkerhet i kjernen av vår virksomhet bygger vi tillit og robusthet mot potensielle trusler.

Å fremme god kommunikasjon og samarbeid mellom team

Suksess drives av effektivt teamarbeid. Klare kommunikasjonslinjer og et sterkt fokus på samarbeid er kritisk for å sikre at alle jobber mot et felles mål. Dette betyr regelmessige møter, bruk av samarbeidsfremmende verktøy, og et kontinuerlig fokus på åpenhet. Med en samkjørt innsats oppnår vi mer sammen.

Å støtte en kultur for kontinuerlig læring og deling av kunnskap

For å holde tritt med den raske utviklingen i teknologi og industri, er en kultur preget av læring og kunnskapsdeling essensiell. Dette innebærer å motivere teamet til å oppsøke nye læringsmuligheter og dele den tilegnede kunnskapen. Ved å se feil som læringsmuligheter, vokser og forbedrer vi oss sammen.

Å ivareta bedriftens kjerneverdier under utviklingsprosessen

For å ivareta bedriftens overordnet strategi, er det viktig at det er ivaretatt i alle prosjekter og utviklingsprosesser. Dette innebærer at alle prosjekter og produkter som det jobbes med i WebRodent, skal ta hensyn til bedriftens overordnet strategi. "Strategien er beskrevet i Strategi for utvikling i forretningen"

Veiledning for Commits

For å sikre kvalitet og sporbarhet i vår kodebase, er det avgjørende med klare retningslinjer for hvordan vi håndterer commits. I WebRodent har vi utarbeidet to arbeidsprosesser som vi støtter. Begge støttes av våre produkt repositories.

Veiledning for Commits

Generelle retningslinjer

Beskrivende Meldinger

Klare beskrivelser av endringen og dens hensikt. En tydelig commit-melding gir kontekst for teammedlemmer og hjelper med fremtidig referanse. Meldinger skal starte på et enkelt verb som: Added, Updated, Removed, Fixed. Dette gir en lettere lesbarhet for de som gjennomfører kvalitetssikring eller skal feilsøke og trenger å spore endringer i git.

Kontinuerlig Integrasjon

Inkluder automatiserte bygg, tester, og sørg for umiddelbare tilbakemeldinger ved feil. Regelmessig integrering av endringer og automatisert testing bidrar til tidlig oppdagelse av feil, sikrer kvalitet, og reduserer manuell innsats.

Strategi for Branching: Trunk-based development

Dette sikrer at kode som er under utvikling, holdes adskilt fra stabile release-koden og tillater en kontrollstruktur for kildekoden som holder main fri for uferdig kode.

Pull før Push

Hent oppdatert kode fra remote før du pusher/ merger til main. Uavhengig om du foretrekker arbeidsflyt 1 eller 2, det er vitkig at du tar eget ansvar for egen kode, og sørger for at dine bidrag integrerer godt med resten av kildekoden.

Arbeidsflyt 1: Skogsrotten

“Skogsrotten er en rotte som liker rom til å utforske, besøker regelmessig med sine større og mer omfattende funn.”

Commits

Sporbarhet kan oppnås i commit meldinger eller i PR-kommentaren.

Branching strategi

Du lager en ny branch “feature/<det du jobber med>”. Feature branches har typisk en levetid på 3-6 timer, altså 1 dag om behov, og maksimum 2 dager. Hvis det føles vanskelig å nå, så er det kanskje et tegn på at feature-oppdateringen du jobber med, bør brytes ned i flere mindre deler.

PR og Review prosessen

Når du jobber som en skogsrotte, så er dette en god måte å uthente feedback på det du jobber med. Da kan teamet gjennomføre reviews og komme med tilbakemelding rett fra sitt utviklermiljø. Det er en super måte å forbedre kodingen sin via teamets delte kunnskap. Du vil også jobbe jevn og ofte igjennom PR og review prosessen, og det er ikke alltid nødvendig å gjennomføre en review. Derfor er dette opp til utviklerens vurdering.

Arbeidsflyt 2: Husrotten

“Husrotten er en rotte som liker å besøke ofte for alle små behov.”

Atomic Commits

Én spesifikk endring per commit. Dette sikrer enkel sporing og gjør det enklere å forstå endringene som er gjort, samt eventuelt rulle tilbake til en tidligere versjon om nødvendig.

Trunk-based i praksis for hyppig commits

Du trenger ikke å branche ut i feature branches fra main. Når du bidrar i små og presise commits, så kan det være en del overhead å jobbe mot feature branches, og det kan bli vanskelig å vite når du er “ferdig”.

Kodegjennomgang: En Kvalitets- og Samarbeidsdrevet Prosess

Kodegjennomgang er en essensiell del av softwareutviklingsprosessen. Dens formål strekker seg utover det å bare sikre kvalitetskoden. Det er også et kraftig verktøy for teamkommunikasjon, kunnskapsdeling, og for å bygge en kultur for kontinuerlig forbedring.

Tidspunkt

Det er avgjørende å initiere kodegjennomganger raskt etter en forespørsel. Dette sikrer at koden fortsatt er frisk i tankene til utvikleren, noe som fører til en mer effektiv og meningsfull gjennomgang. Dette vil også bidra til å opprettholde fremdriften i prosjektet, slik at endringene kan integreres smidig.

Omfang

En kodegjennomgang skal være konsis og fokusert. Ved å begrense gjennomgangen til enkelte endringer sørger man for at gjennomgangen ikke blir overveldende, og at diskusjonen forblir målrettet. Dette øker sjansen for at kritiske problemer blir identifisert, og at de viktigste delene av koden blir vurdert nøye.

Fokus

Selv om kodeestetikk og stil kan være viktige for noen prosjekter, bør fokus under en kodegjennomgang hovedsakelig være på logikk. Er koden funksjonell? Er det noen potensielle feil? I tillegg er det avgjørende å se på sikkerhetsaspekter og vurdere koden med tanke på ytelse. Dette sikrer at programvaren ikke bare fungerer som den skal, men også at den er robust og effektiv.

Tilbakemelding

Kritikk kan være vanskelig å ta, spesielt når det gjelder noe så personlig som ens egen kode. Derfor bør tilbakemeldinger være konstruktive og spesifikke. Når man påpeker et problem eller foreslår en forbedring, kan det være nyttig å inkludere referanser til dokumentasjon eller beste praksis. Dette gir grunnlag for forslagene og hjelper utvikleren med å forstå og lære.

Sikkerhetsrutiner: Å Bygge Tillit

I den digitale tidsalderen er sikkerhet ikke bare et ønske, men en absolutt nødvendighet. For startups, som ofte opererer med begrensede ressurser men likevel håndterer verdifull informasjon, er det avgjørende å ha solide sikkerhetsrutiner på plass. Her er en grundigere forklaring på våre sikkerhetsprosedyrer

Autentisering

Det er avgjørende å initiere kodegjennomganger raskt etter en forespørsel. Dette sikrer at koden fortsatt er frisk i tankene til utvikleren, noe som fører til en mer effektiv og meningsfull gjennomgang. Dette vil også bidra til å opprettholde fremdriften i prosjektet, slik at endringene kan integreres smidig.

Databeskyttelse

En kodegjennomgang skal være konsis og fokusert. Ved å begrense gjennomgangen til enkelte endringer sørger man for at gjennomgangen ikke blir overveldende, og at diskusjonen forblir målrettet. Dette øker sjansen for at kritiske problemer blir identifisert, og at de viktigste delene av koden blir vurdert nøye.

Kodesikkerhet

Selv om kodeestetikk og stil kan være viktige for noen prosjekter, bør fokus under en kodegjennomgang hovedsakelig være på logikk. Er koden funksjonell? Er det noen potensielle feil? I tillegg er det avgjørende å se på sikkerhetsaspekter og vurdere koden med tanke på ytelse. Dette sikrer at programvaren ikke bare fungerer som den skal, men også at den er robust og effektiv.

Dokumentasjon

Vi utarbeider et kort risikonotat som beskriver formålet, omfang, deltakere, metodevalg, identifiserte obs-områder, utfordringer, og resultatet av risikovurderingen. Vedlegg inkluderer en risikotabell, en risikomatrise, og eventuelt en restliste. Som støtteverktøy benytter vi Digitaliseringsdirektoratets Excel-verktøy for en effektiv og systematisk gjennomføring av risikovurderingen. Med denne konsise tilnærmingen følger vi nøye Digitaliseringsdirektoratets veiledning, sikrer integriteten av våre systemer, og bygger tillit hos våre kunder og samarbeidspartnere.

Sikkerhet er et hovedfokus

Å investere i sikkerhet er å investere i fremtiden til selskapet. Med disse rutinene på plass sikrer vi ikke bare at WebRodent er beskyttet, men også at vi bygger tillit blant kunder, partnere og investorer. I en verden hvor cybertrusler stadig øker, setter vi sikkerhet i førersetet, og sørger for at teamet vårt, uansett hvor lite, er godt utrustet for å håndtere dem.