morn
mårn
Handlingsrom per beslutningsbyrde / https://mikrobloggeriet.no/doc/enklere-9 En kommentar på https://www.kodemaker.no/blogg/2021-11-mer-mindre/, med argument for at prinsippet gjelder bredere enn kode.
jeg har ikke nødvendigvis tenkt så mye på dette, men som utviklere argumenterer vi ofte med teknisk opsjonalitet, ie hvis vi gjør dette nå, så får vi disse mulighetene i framtiden. Eksempel. Vi byttet fra Compojure til Reitit. En av opsjonene vi kunne få av dette var at vi kunne inspiserere rute-treet (fordi det nå var data) og gjøre noen form for basic testing av alle endepunkter evt se hvor god testdekning vi hadde av rutetreet. Brukte vi denne opsjonen? Nei.
Vi bruker fortsatt compojure 😄
Vi har et sideregister på innsiden, da. Med data.
(->> kontoret.sider.index/page-vars
(take 3))
;; => (#'kontoret.sider.adresseskjema.page/page
;; #'kontoret.sider.adressevaskside.page/page
;; #'kontoret.sider.driftside.page/page)
(->> kontoret.sider.index/page-vars
first
deref)
;; => {:id :pages/adresseskjema,
;; :client-module :kontoret,
;; :layout
;; {:render #'matnyttig.ui.layouts/render-app-layout,
;; :data-requests
;; [{:feed
;; [:feed/personalia
;; {:bruker/id [:ring/request :sesjon/aktiv-bruker :bruker/id]}],
;; :as :bruker}
;; {:feed
;; [:feed/brukers-features
;; {:bruker/id [:ring/request :sesjon/aktiv-bruker :bruker/id]}]}]},
;; :required-permissions #{:rettighet/føre-tilsyn},
;; :render #'kontoret.sider.adresseskjema.ui/render,
;; :route ["adresseskjema"],
;; :data-defining-params #{}}Jeg tror handlingsrom vs. beslutningsbyrde er et godt mål. Å ta et valg gir per definisjon mindre handlingsrom, men å ta feil valg kan innsnevre handlingsrommet såpass mye at å få til det du egentlig prøver på plutselig blir kjempevanskelig. Minner meg om https://www.kodemaker.no/blogg/2021-04-21-lag-ditt-eget-rammeverk/: Får håpe du liker valgene som allerede er blitt tatt for deg!
med et eget rammeverk, kan man også legge til rette for at ny kode man skriver ikke må ta valg! Ingen beslutningsbyrde når man ikke må ta valg.
Morn!
Go'mørning!
Morn!
Morn!
Morn!
God morgen!
Mrn. I går lærte jeg om Littles Law. For dem som driver med PR’er er det ganske kult. Den sier basically at throughput = (work in progress)/cycle time. Dette betyr altså at hvis du vil øke throughput, så må du enten ha mer wip eller kortere cycle time. I en PR verden så kan man se på throughput som antall PR’er merger til master, og cycle time som tiden fra PR’en blir åpnet til den blir merget. Så, bruker man lang tid i review prosessen, er det nesten umulig å få høy throughput uten å jobbe på ørten ting samtidig. Og da er det vel akkurat på tide at @christian767 våkner og sier at hvis du merger rett til master så er cycle time i PR prosessen 0 og throughout går mot uendelig. Og for dem som synes at dette føles litt som essensen i the Goal, så tror jeg det er helt riktig.
Dette er tre ulike personer, ja
Min første tanke halvveis inn i første setning var "Dette er jo The Goal!" 😄 Så, en rett på den.
Min neste tanke var "Slutt med PR" 😂
Å jobbe rett på main gir deg ikke uendelig med throughput, men du fjerner seremoni og koordinering rundt "review" som forsinkende ledd. Så du kommer nærmere den faktiske throughputen folka dine har.
Kostnaden av WIP øker også over tid. Samme dag koster 100 linjer WIP-kode 1 penge. Morgenen etter koster de samme 100 linjene 1.2 penger. På ettermiddagen koster de 1.5 penger.
Det er et veldig godt poeng!
Forståelsen av koden er mye mer ferskvare enn deler produsert i en fabrikk.
Selv om jeg liker tanken på at noen åpner en varmeovn hvor herdingsprosessen var ferdig i går en gang, og nå må bruke mye tid på å finne ut hvem sine deler er dette, og hva er de egentlig til?
Fint bilde! 😊
@teodorlu kan du forklare det med WIP kostnader?
Jo lenger du lar uferdig arbeid ligge, jo dyrere blir kostnaden. Det er uferdig, og du må jobbe jobbe deg rundt at det er uferdig. @isak var det det du lurte på?
@teodorlu ja. ok - fair.
På jobb er vi en del som har lest The Goal av Elyahu Goldratt, 1984. Boka er en historie om en person som jobber med forbedring av en fabrikken, og tittelen henviser til målet når man skal lage fabrikk, > maximize throughtput while minimizing inventory and operational cost På norsk oversetter jeg det til > maksimer gjennomstrømning mens du minimerer uferdig arbeid og operasjonell kostnad Når funksjonalitet i et produkt er gjennomstrømningen, er uferdig funksjonalitet uferdig arbeid, og prisen på utviklere og systemer operasjonell kostnad. Så det er fabrikk-metaforen igjen! Og fabrikk-metaforen er super for å "holde ting enkelt og nå målet" (minimer beslutningsbyrde), men passer ikke like supert når vi skal ut og utforske nye ting (lage nytt handlingsrom).
Jeg synes oversettingen inventory → uferdig arbeid taper litt av den opprinnelige konteksten, og stemmer for varelager. Det er ikke bare uferdig funksjonalitet som medfører en kostnad, men også ferdig funksjonalitet som ingen bruker.
Enig! Spurte nettopp sidemannen om en oversettelse, men vi kom ikke på noe bra. Så "løsningen" ble å skrive på norsk og engelsk 😂
Jeg har lest den også, fin den. Med WIP og grener, PRs osv i programmering så tenker jeg mest på cognitive load. Det å holde et system i hodet er vannskelig nok, men når du ganger det med flere grener, versjoner, osv. blir det ganske tungt.
+ context switching kostnader
nettopp. Alt av "rusk" mellom de mentale tannhjulene som ødelegger og distraherer.
Vi har claudet litt rundt dette på jobben. Og ja, vi bruker PR’er og sånt Men det er artig her å se hvor varelageret blir stående for ulike utviklere
Er venstre og høyre to forskjellige personer?
Morn!
Morn!
morn!
Morn!
> Og da er det vel akkurat på tide at @ cjohansen våkner og sier at hvis du merger rett til master så er cycle time i PR prosessen 0 og throughout går mot uendelig. Vi er nok ikke helt på 0 WIP. Tanker må tenkes, og commits lever på utviklermaskinene før push. Men vi slipper i alle fall litt mental sjonglering om "alternative virkeligheter i åpne PR-er".