GladLaks - Environmental Data App for Norwegian Aquaculture
As part of a team, I designed and developed the app "GladLaks" - an environmental data app for Norwegian aquaculture. The app also won the prestigious award "App of the Year" in the annual course competition, where we competed against 38 other teams.
DESIGN
9/16/20227 min read
PROJECT SUMMARY
Gladlaks is an app designed to display environmental data related to Norwegian aquaculture facilities in a user-friendly manner. Targeted at veterinarians in the industry, it utilizes APIs from the Norwegian Meteorological Institute, BarentsWatch, and Norkyst800 for real-time data. The app incorporates Android's Material Design 3 framework for accessibility and is written in Kotlin and XML using Jetpack Compose.
During the project, I handled planning, administration, team-building, user research, interaction design, programming, and report planning and writing. We adopted agile methodologies, and the app is based on pre-established cases from the Meteorological Institute. Gladlaks showcases my diverse skills and leadership abilities.




Hva er GladLaks?
Gladlaks er en app som viser miljødata tilknyttet norske oppdrettsanlegg i hav på en oversiktlig og meningsfull måte. Det er ment som et hjelpeverktøy for veterinærer i oppdrettsnæringen.
Appen bruker data fra ulike API, bla. fra Meteorologisk institutt, BarentsWatch og Norkyst800.
I tillegg til relevant framvisning av data tilknyttet de spesifikke oppdrettsanleggene er det også en favorittfunksjonalitet hvor brukeren kan markere de ulike anleggene som favoritter. Disse vil da huskes mellom hver kjøring av appen ved hjelp av en database.
Vi hadde stort fokus på brukeren og universell utforming under utviklingen av appen og tok i bruk Android sitt nye designrammeverk Material Design 3 som inkorporerer UU-prinsipper. Appen selv er skrevet i Kotlin og XML i Android Studio ved hjelp av Jetpack Compose rammeverket.










Designsystem til appen basert på Material Design 3.
Systemet gjorde det mye enklere for oss å modularisere koden til selve appen og levere den i små inkrementer. Det gjorde også kommunikasjonen mellom designerne og utviklerne smidigere og bedre.
Designsystem
Min rolle:
Gjennom prosjektet har jeg hatt flere roller og ansvarsområder knyttet til:
planlegging
teambuilding
administrasjon
innsiktsarbeid
interaksjonssdesign
programmering
modellering
rapportplanlegging + skriving
Dette var også roller flere av oss delte på eller byttet på underveis i prosjektet.
Planlegging:
Jeg var med på å lage en overordnet prosjektplan, og passe på at denne ble overholdt og oppdatert. Jeg passet også på at avtalt møtefrekvens ble overholdt.
Teambuilding:
Det var viktig for oss å legge et godt grunnlag for prosjektsamarbeidet tidlig, da vi mente dette ville påvirke arbeidet og sluttløsningen vår positivt. Vi gjennomførte derfor bli-kjent-middager hvor jeg initierte og gjennomførte ulike teambuildingøvelser som "polaritetstesten", "mennesketypetesten", "personlig swot-analyse" og forventningsavklaringer. Dette hjalp oss å forstå våre styrker og svakheter på både individuelt og gruppenivå, samt forstå hvilke ulike behov som fantes i teamet. Da kunne vi tilrettelegge for godt samarbeid og arbeidsmiljø ved bla. å fordele arbeidsoppgaver etter interesse og styrker, inkludere hverandre i ulike deler av arbeidet, samt legge til rette for at det gikk an å jobbe både alene og med andre til fleksible tider.
Administrasjon:
Jeg gjorde også administrative oppgaver som å booke møterom, planlegge og skrive møtereferat og holde orden i disk- og mappesystemene hvor arbeidet vårt ble lagret.
Innsiktsarbeid og interaksjonsdesign:
Hovedansvaret mitt under prosjektet lå på innsiktsarbeid og interaksjonsdesign. Her planla jeg og gjennomførte ulike former for datainnsamling som dokumentanalyse, intervju, observasjon og brukertesting. Jeg gjorde også analyser av den innsamlede dataen og fant problemområder, og utledet behov som ble videreutviklet til systemkrav gjennom flere iterasjoner. Dette arbeidet var i stor grad med på å utforme appens form, funksjon, layout, visuelt utseende og tekstlig språk.
Programmering:
Jeg var med på å utvikle appen og programmerte flere deler av kodebasen, både backend- og frontendfunksjonalitet.
Modellering:
Jeg lagde flere modeller for funksjonaliteten og infrastrukturen til appen for å planlegge og tydeliggjøre strukturen for utviklerne. Bla. lagde jeg et "use-case-diagram" for hovedfunksjonaliteten og et klassediagram som viser alle klassene i programmet og sammenhengen mellom disse.
Rapportplanlegging + skriving:
Jeg hadde hovedansvaret for å planlegge og strukturere sluttrapporten til prosjektet. Jeg produserte også mye tekst i sammenheng med dette. Her fikk jeg oversikt over prosjektets gang, og forsøkte å strukturere det slik at rapporten ga et godt bilde av prosessen vår. Jeg delegerte også oppgaver knyttet til rapporten og så til at disse ble gjennomført.










“Fisken påvirkes av det omliggende miljøet på en direkte måte. Det fysiske miljøet ved en oppdrettslokalitet, det vil si vannets saltholdighet, temperatur og bevegelse [strøm], kan variere mye fra dag til dag. [...] Andre sammensatte parametere som tykkelsen på blandingslaget eller statistiske forhold kan være interessant å inkludere. Det samme gjelder muligheten for å beskrive forventet smittepress fra lakselus.”
- forsker ved havforskningsinstituttet
















Prosess
Vi fokuserte på å drive en smidig prosess med flere iterasjoner og tok inspirasjon både fra KanBan- og Scrum-metodikken. Vi har hele veien hatt med oss en dynamisk kravspesifikasjon som har blitt oppdatert minst ved hver iterasjon. Prosjektet er basert på et utvalg av ferdiglagde caser utformet av Meteorologisk Institutt.








Iterasjon 1 - utforsking
Iterasjon 2 - datainnsamling
Iterasjon 3 - produksjon
Iterasjon 4 - sluttspurt
I iterasjon 1 valgte vi en case som omhandlet oppdrettsnæringen og fremvisning av data knyttet til dette (det var kav om at det skulle utvikles en app). Vi kjente ikke til denne næring fra før av så det var viktig at vi skaffet oss initiell innsikt i domenet og mulige problemområdet før vi satte i gang. Vi måtte skaffe oss forståelse for næringens behov før vi så på mulige løsninger. Derfor gjorde vi mye generell datainnsamling ved å lese rapporter, se på dokumentarer og bli kjent med eksisterende løsninger. Vi måtte også bli kjent med ressursene det var krav om at vi brukte som spesifikke API'er og teknologi. Vi ble også bedre kjent og satte gode grunnlag for et team-samarbeid. I tillegg gjennomførte vi workshopper med fokus på "grenseløs idémyldring" for å sette i gang problemløsningen.
I iterasjon 2 gjennomførte vi mer målrettet datainnsamling bla. ved å gjennomføre et ekspertintervju med en forsker ved Havforskningsinstituttet. Ved kvalitativ analysen fikk vi nyttig informasjon om teknisk/faglig terminologi og sammenhenger, samt behov knyttet til næringen. På bakgrunn av dette (og kravene i faget) bestemte vi oss for å lage en eller annen app som kunne vise fram miljødata på oppdrettsanlegg. Vi utformet flere lavoppløselige skisser til en mulig app, både med forslag til funksjonalitet og layout. Vi kartla også mulige interessenter i næringa for å få oversikt over mulig konfliktområder.
I iterasjon 3 gjorde vi enda mer spisset innsikt ved å snevre inn målgruppen til å gjelde veterinærer som jevnlig besøker oppdrettsanlegg i forbindelse med arbeid. Vi gjennomførte et intervju med en fra målgruppen og utledet enda mer spesifikke behov og krav gjennom analyse. Ut ifra innsikt fram til nå utviklet vi en persona og tenkt brukscenario. Vi gjorde også en observasjon av en proxy for et oppdrettsanlegg for laks på The Salmon i Oslo (vel vitende om at dette er en kommersiell aktør). Dette var nyttig for å se hvordan data brukes og framstilles i næringen. Parallelt med innsiktsarbeidet satte vi i gang med produksjonen av kodebasen og MVP (minimum viable product).
Iterasjon 4 er preget av typisk "deadline-jobbing" hvor mange småting justeres og fikses på fortløpende ved tett kommunikasjon og samarbeid for å rekke fristen.
Vi intervjuet en domeneekspert som jevnlig bruker liknende løsninger i næringen og fikk mye gode forslag til videreutvikling av vår egen løsning, samt noe motstridende informasjon med de tidligere intervjuene. Vi justerte det vi kunne, og implementerte det vi rakk. På grunn av uforutsette hendelser fikk vi ikke evaluert med ekte brukere, men gjennomførte heller rollespill-brukertest internt i gruppa hvor vi tok på oss brukerrollen. Den siste tida gikk til ferdigstilling.