Cerebrum-samarbeidet

Arbeidsgruppa sitt forslag til korleis Cerebrum-samarbeidet i BOTT skal fungere, etter overgang til felles kodebase.

Status: Utkast

Visjon

Cerebrum-samarbeidet skal vere:

  • Opent og delande, ved å tilrettelegge og motivere for diskusjonar og bidrag frå kvarandre, både i formelle og uformelle forum.
  • Prøvande, ved å fokusere på kontinuerleg forbedring og akseptere feil.
  • Kvalitetsbyggande, ved å sette høge krav til fellesfunksjonalitet.
  • Etterretteleg, ved å publisere så mykje som mulig opent for verda.
  • Ressursbesparande, ved å tilrettelegge for samarbeid om funksjonalitet som fleire treng.
  • Ikkje-ekskluderande, ved å akseptere at institusjonar har eigne, lokale behov der det ikkje er mulig eller nyttig med fellesfunksjonalitet.

Alle deltakarar må akseptere at samarbeidet gir gevinster på bekostning av lokale hensyn og prioriteringar. Samarbeidet vil prioritere løysingar som 1) bidrar til mest effektivisering totalt sett, og 2) som er best for flest deltakarar.

Organisering

Samarbeidet vil trenge eit visst nivå av formalitet og byråkrati, for å sikre at vi ikkje divergerer eller at nokon innfører ei endring som skaper store, negative konsekvenser. Samtidig ønsker vi ikkje ei unødvendig byråkratisering av samarbeidet. Dette er ein balansegang som vi må vere opne for å prøve oss fram i.

Vi foreslår at samarbeidet i første runde er enkelt organisert. Kvar institusjon styrer sjølv eigne prioriteringar for kva dei vil bidra med. Det er først ved konflikter i kode eller prioriteringar at samarbeidet tek styring. På sikt skal det vurderast om samarbeidet skal ha meir styring av prioriteringar for Cerebrum, og korleis deltakarane bidrar i dette.

Samarbeidet krever at alle deltakande institusjonar bidrar i det daglege arbeidet med felleskode, spesielt i gjennomgang av kodeendringsforslag.

Ved konflikter er eskaleringa:

  1. Tech leads frå kvar institusjon må bli enige.
  2. I siste instans tek produkteigar for Cerebrum på USIT ei avgjersle.

Omfang

Cerebrum-samarbeidet skal:

  • Tilrettelegge for eit bra samarbeid mellom institusjonane, og koordinere ved behov
  • Vedlikeholde visjon og spelereglar, og sikre at dei følgast
  • Forvalte Cerebrum core og sikre at kodestandard og designmal følgast
  • Sikre at prioriteringar vert følgde
  • Tilrettelegge og forvalte felles verktøy for samarbeidet
  • Tilrettelegge for deling av Cerebrum-modular og Cerebrum-relaterte tenester

Spelereglar

For å skape eit effektivt samarbeid treng vi spelereglar som er enkle og støtter opp om visjonen:

  • Samarbeidet skal i fellesskap bli enige om og vedlikeholde sin visjon og spelereglar.
  • Samarbeidet skal ha ein felles kodestandard og designmal. Desse skal vere nedskrevne.
  • Samarbeidet skal ha ein standardisert QA-prosess for felleskode, som alle skal følge. Denne skal vere nedskreven. I første runde er denne:
    1. Kvar utviklar oppretter ein Pull Request for endringane.
    2. Kodeendringane verifiserast av ein automatisert testprosess.
    3. Minst to utviklarar, frå minst to institusjonar, må godkjenne kodeendringane. Ved uenighet skal tech lead frå kvar institusjon i samarbeid bli enige om endringa. Ved uenighet også her vil produkteigar på USIT beslutte.
    4. Utviklaren merger inn endringa til master, som skal kunne prodsettast hos kvar enkelt institusjon. Versjoneringa må følgast og publiserast.
  • Samarbeidet skal vedlikeholde ein oversikt over repo for andre felles tenester som er direkte eller indirekte relatert til Cerebrum (til dømes passord-app som er laust kobla med Cerebrum). Tenester internt i Cerebrum skal på sikt skillast ut frå Cerebrum core, og gjerast laust kobla til Cerebrum. Samarbeidet skal ha ein stad å kunne legge desse.
  • Samarbeidet skal bli enige om kva felles verktøy som skal brukast, og jamnleg revurdere desse. Felles verktøy må ikkje byttast for ofte, for å bevare stabilitet, men heller ikkje for sjeldan, til å få med seg nye, meir effektive verktøy.
  • For kvar deltakande institusjon:
    • Kvar institusjon må følge visjonen og spelereglane til samarbeidet.
    • Kvar institusjon må følge felles kodestandard, designmal og QA-prosess.
    • Kvar institusjon må bruke felles verktøy for Cerebrum-arbeid.
    • Kvar institusjon må dele sine prioriteringar for Cerebrum, så dei andre kan velge å samarbeide eller koordinere.
    • Kvar institusjon må bidra med å rydde i teknisk gjeld. Samarbeidet vedlikeholder ei prioritert liste med teknisk gjeld som kvar institusjon kan plukke frå.
    • Kvar institusjon bør legge funksjonalitet som ikkje passer i Cerebrum core på eit definert område for samarbeidet. Dette så andre kan sjå gjennom og vurdere å ta det i bruk sjølv. Funksjonaliteten må inneholde ein beskrivelse av kva det gjer.
Emneord: bott-cerebrum, cerebrum Av Tobias Langhoff, Steinar Kleven, Kenneth A. Johansen, Kai Vaade, Fredrik Larsen, Joakim Hovlandsvåg
Publisert 17. feb. 2017 09:05 - Sist endret 3. mars 2017 10:08