CoWork er et lite firma med bredt spekter, noe vi fikk demonstrert til fulle i programmet på årets første fagdager.
Vi i fagutviklings-gruppa planla gjennomføringen, og oppfordret alle CoWorkers om å komme med forslag til arbeidsverksteder som de selv kunne lede. Innad i CoWork spriker vi mellom smidig ledelse og coaching, arkitektur, teknologiledelse, design, koding og devops. Programmet ble lagt opp med parallelle spor, dermed kunne vi kjøre noen litt lengre sesjoner, hvor folk kunne hoppe av og på. Vi fikk valgfrihet, men vi mistet kanskje en mulighet for en arena for å skape en felles bevissthet. Dette tar vi med oss videre i planleggingen av neste fagdag, som blir i slutten av august.
Her er en kort oppsummering av alle sesjonene som vi hadde på fagdagene:
Vi gjennomførte en analyse av ulike typer problemer vi jobber med, særlig i kontekst av veletablerte organisasjoner der det gjerne settes en klar grense mellom drift og innovasjon. De to tenkemåtene vises Ikke nødvendigvis i organisasjonsstrukturen (om DevOps prinsippene er på plass) men med tanke på verdien som produseres om man jobber med “vekst“ kontra “låst” tilnærming.
Fasilitator: Rune Ulvnes
En halvdags arbeidsverksted sammenfattet fra Domain-Driven Design (DDD) kurset som CoWork tilbyr sine kunder. Vi gikk gjennom grunnprinsippene i DDD, dekomponering av komplekse systemer i forretningsrelevante kontekster og måten organisering og interaksjoner mellom produktteam påvirker IT-arkitekturen på. Det hele ble avrundet med engasjerende gruppearbeid på et bruksmønster om Inverse Conway Maneuver anvendt på et foreldet system.
Fasilitator: Mufrid Krilic
Hvordan systematisk gjenbruke kunnskapen og erfaringen vi erverver i store og komplekse prosjekter slik at det kommer andre kunder til gode? En god måte for å få dette til er gjennom en historie av ulike steg organisasjoner går gjennom i sin evolusjon og av dets systemer. Vi konkretiserte dette ved historiefortelling fra et større prosjekt der CoWork hjalp til å med å oppfylle grunnleggende kundebehov, både på produkt og teknisk side. Alt fra formidling av forretningsforståelse mellom produktledelsen og produktteam, påvirkning av strategiske teknologivalg til eierskap av kodebase og leveranseprosess.
Fasilitator: Arnstein Andreassen
Vi startet med å prate om forholdet mellom økende kompleksitet og mindre kontroll i store kodebaser med lav testdekning. Selv om vi var enige om at testene er eneste vitenskapelig tilnærming vi har for å håndtere økende kompleksitet, er akseptansetest-drevet utvikling, med trykk på tverrfaglighet, mulig å få oppfylt i praksis? I dette arbeidsverkstedet gikk vi gjennom prinsipper og eksempler av akseptansetesting i koden og utfordret hverandre om testene kan skrives med så høy grad av domeneorientert måte slik at forretningssiden kan forstå testene og delta aktivt i utformingen. Her kan begrepsapparat ut fra domenespråket være forsterket med arkitekturstiler som Heksagonal arkitektur gi et godt utgangspunkt.
Fasilitator: Nils Arve Sandberg
NFT arbeidsverkstedet foregikk over to hele dager, hvor første del var en innføring i blokkjeder og NFT med et forsøk på å forklare hva som er bruksområdet i dag, og hvilken nytte det potensielt kan få i videre utvikling. Vi jobbet med å utvikle NFT-kontrakter og lærte oss en hel del om å bruke verktøy som OpenSea, Metamask, hvordan utvikle Smarte kontrakter for å kunne kontrollere flyten i blokkjeder. Flere av deltagerne fikk publisert NFTer, hvorav ingen har gått viralt på skrivende tidspunkt.
Fasilitator: Christoffer Vig
En av de faste artifaktene når man jobber med Scrum er evaluering etter at sprinten er ferdig, hvor man forsøker å finne forbedringspunkter.
Reviewen ender ofte opp med en meningsløs oppramsing av operative tiltak uten å heve blikket opp til kundenivå og nytte på et større plan. I dette arbeidsverkstedet forsøkte vi å vise hvordan vi kan få til en siste “tight” med energi, kjærlighet og omsorg, både for teamet men spesielt for kundene/brukerne.
Fasilitator: Rune Ulvnes
Vennskap er en sentral verdi for CoWork, og som ekspert i konfliktløsning foreslo Reinert dette arbeidsverkstedet. Vi gikk igjennom hvordan vi kan forbedre forholdet til hverandre, gjennom temaer som dialog, tilbakemeldinger, møteledelse, hvem har ansvaret for hvordan du føler deg, emosjonell modenhet, tillit, lytting, humor, konflikthåndtering etc. Vi utvikler vennskap, ikke bare fordi det er gøy, men for å gjøre en bedre jobb!
Fasilitator: Reinert Kamøy
At strømregningene er dyre for tiden er det ingen tvil om, men hva er det egentlig som stikker av med all strømmen?
Med en Tibber Pulse kan man lese av strømforbruket sitt i sanntid. Koblet med flere smarte termostater som forteller om de står på eller ikke er det mulig å gå litt dypere inn i strømforbruket sitt. Hvilket rom er egentlig dyrest å varme opp?
Utgangspunktet for workshopen var altså 15 linjer python som mottok meldinger fra to Pulser hjemme hos noen av deltakerene. Vi dykket så inn i Azures utvalg innom IoT. To timer senere var en Event Hub, en SQL database, en Cosmos-DB og en Stream Analytics jobb klare til fortelle oss hvilken termostat som sved med på strømregningen.
Dette kunne jo vært gjort langt billigere og med langt færre linjer kode (og betraktelig lavere CO2-avtrykk) ved å gjøre uttrekket på rasperry pi-en som snakket med Pulsen, men det var jo ikke ponget med øvelsen.
Fasilitator: Christian Rieck
Vi tok veldig raskt for oss OpenId Connect og Microsoft Authentication Library (MSAL) i en rask demo. Det ble lagt vekt på forskjellen mellom et ID-token og et access-token, samt konsekvensen av hva man ønsker å gjøre på vegne av den innloggede brukeren (bruk av scopes).
Microsoft Graph kaller seg selv "organisasjonens dør til Microsoft 365-data for produktivitet, identitet og sikkerhet". Det tillater en herlig dose skripting i Office365, som å booke et møterom hver gang noen skriver noe på Teams. I denne workshopen begrenset vi oss til å sende epost på vegne av en innlogget bruker.
Vi satte opp en konsollapplikasjon med device flow som ble vist på storskjermen. Den første i rommet til å logge seg inn med den oppgitte koden på telefonen sin fikk gleden av å få sendt en epost i sitt navn. Videre eksperimenterte vi ved hvordan hvilke scopes vi ba om påvirket access-tokenet vi fikk tilbake, og hvordan påloggingskjermen til Azure endret seg i takt med dette.
Helt litt slutt gikk vi igjennom forskjellen av at et program kan utføre en handling "på vegne av én innlogget brukre" (delegate-rights) og "på vegne av hvem som helst" (application-rigths) i MS Graph.
Fasilitator: Christian Rieck
Hvordan tilnærmer vi oss det ukjente og forholder oss til høytflyvende strategiske målsettinger som kan være vanskelige å konkretisere - og bruker backlog som et verktøy (istedenfor at den representerer administrativ støy og smerte)
Noen stikkord: hierarkisk backlog, Impact Mapping, Lean Value Tree, o.m.
Fasilitator: Frode Langseth
Sist, men ikke minst, det sosiale aspektet ved faglig utvikling i fellesskap er en av grunnsteinene i veksten av enhver organisasjon. Det å ha det gøy sammen på jobb er med på å skape både kreativitet og utholdenhet slik at vi kan adressere de mest komplekse utfordringene i hverdagen.