PARPROGRAMMERING PULSEN INTEGRATION Tommy Hgvall tommy hagvallpulsen se

  • Slides: 24
Download presentation
PAR-PROGRAMMERING PULSEN INTEGRATION Tommy Hägvall tommy. hagvall@pulsen. se Daniel Celan daniel. celan@pulsen. se

PAR-PROGRAMMERING PULSEN INTEGRATION Tommy Hägvall tommy. hagvall@pulsen. se Daniel Celan daniel. celan@pulsen. se

8 600 anställda, 900 vårdplatser Öppenvård Ett av de ledande universitetssjukhus. Länssjukhus med högspecialiserad

8 600 anställda, 900 vårdplatser Öppenvård Ett av de ledande universitetssjukhus. Länssjukhus med högspecialiserad vård och betjänar två miljoner människor i Mellansverige Medicinsk teknik, Sjukhusfysik och IT – MSI Infrastruktur, Arbetsplats, Drift och Verksamhetsstöd 120 medarbetare Kunderna i Region Uppsala finns inom vård, kollektivtrafik, fastighetsförvaltning, administrativ förvaltning samt IT-sektionens olika avdelningar

Som första sjukhus i Sverige installerar Akademiska en robot för beredning av cytostatika. Blandinator

Som första sjukhus i Sverige installerar Akademiska en robot för beredning av cytostatika. Blandinator Roboten har döpts efter en tävling där barn-onkologens patienter fick skicka in sina förslag - Status på patienter och tillgänglighet sjukhussängar samt vårdplatser på akuten - Journalsystem - Remissfrågor och svar - Nationella tjänster patientinformation

Wisdom of Crowds Används inom Medicin där en grupp av läkare diskuterar kring en

Wisdom of Crowds Används inom Medicin där en grupp av läkare diskuterar kring en diagnos En större grupp av personers kunskaper har högre sannolikhet att vara mer rätt än genomsnittet Collective Intelligense – Machine Learning - AI Desto mer data och information som samlas in desto större beslutsunderlag ger en ökad sannolikheten att beslut blir ”mer korrekt” över tid

1940 Eniac datorn, Jean Bartik och Betty Sneider de första programmerarna som arbetade i

1940 Eniac datorn, Jean Bartik och Betty Sneider de första programmerarna som arbetade i par. “You can critise each other and find each others errors and use the best ideas”

Par-programmering ses som en disciplin i sig själv oavsett om utvecklingen är agil eller

Par-programmering ses som en disciplin i sig själv oavsett om utvecklingen är agil eller mer traditionell 50+ år senare Kent Beck xtreme programming – agil utveckling ”Par-utveckling” är en förekommen term inom verksamhetsutveckling Inom det militära ledarskapet är ”Stridsparet” grunden för överlevnaden i strid

Par-programmering Vad är det ? En utvecklare Två utvecklare VS Solo-programmering Autonom utveckling i

Par-programmering Vad är det ? En utvecklare Två utvecklare VS Solo-programmering Autonom utveckling i silos Expert på funktionerna “den som kan” för hjälp Ingen eller lite teamwork ”It takes two to Tango” Par-programmering Ett team av 2 utvecklare bildar ett par Använder samma dator Turas om att använda keyboard och mus Den ena ”för” och den andra ”följer” Båda varvar och delar kunskaper Arbetar tillsammans på samma uppgift

Ex. på par - Ha fler par - Pröva byta par Remote par Lokalt

Ex. på par - Ha fler par - Pröva byta par Remote par Lokalt par

LT KE Båda Senior EN Junior Erfaren: Föreslå en mer Novis att para UT

LT KE Båda Senior EN Junior Erfaren: Föreslå en mer Novis att para UT E R F A R E N Kunskaper för att Lösa olika uppgifter och komplexa problem Senior ÅR SV T ÖJ LIG T NOVIS Olika erfarna: Förslå att para med varandra Alla som parar blir mer erfarna Junior OM N O V I S DE AN ”B” AN M Novis: Föreslå en mer erfaren att para ”A” ERFAREN

UPAL - Utmanande - Personliga - Ansvarstagande - Långsiktiga Tommy Par-programmering pågår Daniel

UPAL - Utmanande - Personliga - Ansvarstagande - Långsiktiga Tommy Par-programmering pågår Daniel

Daniel reflekterar Vad är nyckeln till par-programmering ?

Daniel reflekterar Vad är nyckeln till par-programmering ?

Kvalitet på koden Detaljer avgör Produktivitet Bolla ideér och lösningar Tänka högt och vara

Kvalitet på koden Detaljer avgör Produktivitet Bolla ideér och lösningar Tänka högt och vara lyhörd Olika bakgrund och erfarenhet Passar inte alla Kompetensspridning

Förare Byt roller ! Rallykörning Vem gör vad ? Navigatör Rallykörning Kommunikation Samarbete Rolller

Förare Byt roller ! Rallykörning Vem gör vad ? Navigatör Rallykörning Kommunikation Samarbete Rolller Fokus på helhet och större sammanhang Ett högre medvetande och ett par extra ögon Vad är nästa steg och ex. riktningen för nästa sväng Föraren är den som kör Kognitiva processer, dokumentation Har ögonen på vägen En erfaren utvecklare med en roll som Navigatör behöver ha Utför aktiviteter som sker just nu Hur skall det utföras? tålamod med en Förare som är nybörjare och junior ! Skriver kod och fokuserar detaljer Hur kan det förbättras ? Följs arkitekturregler och guidelines ? Hur kommer det att testas ? Hur kommer det att skala ? Fokus på detaljer

1 – Ett snabbt sätt att få igång utvecklare 2 – Ökar kvaliteten på

1 – Ett snabbt sätt att få igång utvecklare 2 – Ökar kvaliteten på koden – två par ögon som ser 3 - Ökar motivation och fokus – tändvätska för motivation en sämre dag 4 - Ökar produktiviteten – triggar och utlöser sinapser i hjärnan Varför Par-programmering på Pulsen ? 5 - Främjar innovation - hittar lösningar 6 - Bra för team building – kännedom om andra utvecklares kunskaper Delar med sig hur man utför uppgifter Lär sig genomförande genom ”trial and error” Repetition i inlärning och utövandet ger bättre minne Att göra misstag skapar kunskap och erfarenhet Lära sig programmera, systemera, felsöka Hitta genvägar, tips och trix Fördela uppgifter mellan två hjärnor istället för en Paret kommer förmodligen hitta och använda rätt tillvägagångssätt. T. ex använda rätt syntaxer, mönster och välja rätt byggstenar Para … gärna mer och ofta … än aldrig ! Personal – Minskar betydelsen och risken att någon slutar Vid rekrytering som hjälp vid utvärdera en sökandes kompetens Har de empati, är de sociala, är de intresserade , är de interaktiva, ställer frågor och ger feedback ?

Fördelarna överstiger utmaningarna. Fördelar par-programmering Utmaningar par-programmering Kontinuerlig granskning av koden Ansträngande Korsvis utbildning

Fördelarna överstiger utmaningarna. Fördelar par-programmering Utmaningar par-programmering Kontinuerlig granskning av koden Ansträngande Korsvis utbildning Kontinuerligt socialt interaktivt, tänker högt Bygger empati Brist på personlig tid Strukturerad kod ger färre buggar Delar med sig av kod Kod som behöver mindre underhåll Sociala avvikande besvärligheter De flesta Mindre av ett lotteri utmaningar går att hantera och Inget behov asynkront invänta granskning av koden Snabb On-boarding åtgärda Personlighetskonflikter Förälskade par, blyghet, argumentationer Dominanta par - baksätesförare Mindre ombearbetning Inget utrymme att själv fördjupa sig vidare Mera fokus Brist på ägandeskap Färre distraktioner och störningar Intensivt, tätt arbetsförhållande Mer korrekt implementering av affärskrav Passiva par, ”jag vill bara inte göra det” Klart kan verkligen betyda gjort Alla känner till dina brister Olika kommunikationsstilar, Olika sätt att kommunicera och ej kompatibla Gamla hundar lär sig nya trick Konflikt om tangentbordet, krig om val av editor Alla vet dina styrkor Distribuerade team, över tidszoner

Resultat ? “You want us to pay double for the same job ? ”

Resultat ? “You want us to pay double for the same job ? ” Par-programmering Förväntade utfall och effekter Fun and fear-less development Förutsägbarhet Tillfredställelse Student Pair Programming: Uppsats av Niki Larsson 2019 Effektivitet Självförtroende Kvalitet Inlärning

Mindre fel och högre kvalitet på koden Förutsägbarhet

Mindre fel och högre kvalitet på koden Förutsägbarhet

Empiriska studier visar värdet över tid Effektivitet Quantify the benefits in the long run

Empiriska studier visar värdet över tid Effektivitet Quantify the benefits in the long run The Costs and Benefits of Pair Programming Study: https: //collaboration. csc. ncsu. edu/laurie/Papers/XPSardini a. PDF

IBM rapport visar kostnad på $8000 per fel Kvalitet

IBM rapport visar kostnad på $8000 per fel Kvalitet

Utvecklare är gladare Uppskattar arbetssättet Känner sig mer produktiva Tillfedsställelse Självförtroende I praktiken ->

Utvecklare är gladare Uppskattar arbetssättet Känner sig mer produktiva Tillfedsställelse Självförtroende I praktiken -> “True Continous Integration” - “Code-review on the go” - ”Collective code ownership” - “Trunk-based development” -> känns bra för utvecklare !

University of Utah study - 15% increase in code development expense is recovered in

University of Utah study - 15% increase in code development expense is recovered in the reduction in defects, as the following example illustrates. Let a program of 50, 000 lines of code (LOC) be developed by a group of individual programmers and by a group of collaborative programmers. At a typical rate of 50 LOC/hour, the individuals will develop this code in 1000 hours. It will take the pairs 15% longer or 1150 hours -- a cost of 150 hours. Representative statistics reported , programmers inject 100 defects per thousand lines of code In 1991 Nick Flor, a masters student of Cognitive Science, reported on distributed cognition in a collaborative programming pair he studied.

Enorm kapacitet tillgänglig med två personer Delar av en hjärna kan inte arbeta samtidigt

Enorm kapacitet tillgänglig med två personer Delar av en hjärna kan inte arbeta samtidigt Kombinerar 2 olika sätt att tänka: - Taktiskt och strategiskt Kontinuerliga reflektioner Både teori och praktik -> genomförande Från: Omedveten Inkompetens - när du inte vet hur dålig du är Vänster hjärnhalva Regelbaserad Minne Lagring av innehåll och återkoppling Höger hjärnhalva Kognitionsbaserad Ögon Data fångas in Centrala nervsystem Koordinering och orkestration Händer Software robots Till: Medveten Inkompetens – när du vet hur dålig du är 22

Teamet behöver en bra start och struktur Kunden tillhandahåller: - Onboarding - Utrustning och

Teamet behöver en bra start och struktur Kunden tillhandahåller: - Onboarding - Utrustning och resurser - Delad utvecklar workstation - Programportalen Citrix åtkomst till Remote Desktop - Åtkomst, Rättigheter, Anslutningar - Verktyg Dokumentation - Checklistor och guidelines - Källkodsrutiner - Driftsättning - Technical architecture patterns - Architecture - Templates - Scripts and Archetypes - Automation och förenklingar - Säkerhetskrav Rutiner: Status uppdateringar, prioritet, datum och deadlines PDCA - Plan Do Check Act Hur mycket tid behöver ni för att slutföra arbetet ? När kan ni vara klara ? Kommer vi klara deadline ? Fler parallella projekt och uppgifter. Om uppgift är klar eller vänteläge uppstår så fortsätt med annan uppgift Det finns alltid behov att förbättra och utveckla arketyper. Åtgärda och fixa kända problem och buggar. Uppdatera dokumentationen. Viktigt att närvara vid fika och samtala och dela med sig till kollegor Pomodoro – max 25 minuters intervalller – fika, toalett, lunch eller promenad Rapportera tiden varvat på olika projektkoder samt interna koder för arkitekturarbete

? Tack ! Tommy Hägvall tommy. hagvall@pulsen. se Daniel Celan daniel. celan@pulsen. se

? Tack ! Tommy Hägvall tommy. hagvall@pulsen. se Daniel Celan daniel. celan@pulsen. se