next previous XP: varför fungerar det? Något om tentan. Innehåll Introduktion till eXtreme Programming (XP) Varför fungerar XP? Något om tentan Vad ska man läsa och hur ser den ut? OOMPA 2000 Föreläsning 13
previous next 2 XP: Varför fungerar det? Något om tentan.. eXtreme Programming eXtreme Programming (XP), hur var det nu Tillvägagångsätt (12 grundpelare) Planeringsspel planera snabbt förutsättningarna för nästa release; prioritera, teknikkrav Små releaser släpp nya versioner ofta Metafor hitta en enkel och bra metafor Enkel design gör designen så enkel som möjligt Testa testa koden kontinuerligt. Måste lyckas innan utvecklingen går vidare. Skriv testerna först! Omstrukturera ("refactoring") strukturera om ofta; ta bort onödig kod, förenkla osv Parprogrammering två programmerare per maskin Kollektivt ägande av koden alla äger och kan ändra i koden Kontinuerlig integration integrera och bygg systemet flera gånger per dag 40-timmarsvecka jobba som regel inte mer än 40 timmar per vecka Inkludera en "kund" i teamet inkludera en "riktig användare" på full tid Följ kodstandard förenklar kommunikation
previous next 3 XP: Varför fungerar det? Något om tentan.. Varför fungerar XP Några motiveringar till varje regel efter Beck Han säger i princip att alla regler behövs tillsammans för att det hela verkligen skall fungera –Dock fungerar ”regler” som testa först, enkel design, refactoring och kontinuerlig integration även utan att resten av reglerna används eller hela XP genomförs
previous next 4 XP: Varför fungerar det? Något om tentan.. Planeringsspelet Man kan väl inte starta utvecklingen med bara en vag plan? Det är väl sedan inte möjligt att kontinuerligt uppdatera planen? Om inte –Kunderna uppdaterar själva Baserat på uppskattningar av programmerarna –Planera tillräckligt så kunden får en ide om vad som är möjligt –Korta releaser så att eventuella fel snabbt uppdagas –Kunden finns med och kan kontinuerligt uppdatera
previous next 5 XP: Varför fungerar det? Något om tentan.. Täta releaser Antaganden: –Man kan inte rimligen producera efter några få månader. –Man kan inte rimligen göra releaser i cykler på bara några få dagar Om inte –Planeringsspelet hjälper dig att fokuser på det mest väsentliga –Man integrerar kontinuerligt, så paketeringskostnaden blir minimal –Testningen reducerar defekterna så att långa testsekvenser inte behöver genomlöpas –Du kan göra en enkel design, tillräcklig för aktuell release men kanks inte för alltid
previous next 6 XP: Varför fungerar det? Något om tentan.. Metaforer Man kan väl inte börja utveckla med bara en metafor? Det finns väl inte tillräckligt med detaljer och vad händer om man har fel? Om inte –Du snabbt får feedback från riktig kod och tester –Kunden ”gillar” att prata om systemet med metaforen –Du kontinuerligt ”refactors” så att du modifierar dina kunskaper om metaforen och vad den betyder i praktiken
previous next 7 XP: Varför fungerar det? Något om tentan.. Enkel design Du kan väl inte ha tillräcklig design för dagens kod? Du målar in dig i ett hörn, utan möjlighet att fortsätta Om inte –Du är van att strukturera om koden Så förändringar är inget som gör dig orolig –Du har en bra metafor så framtida förändringar följer en ”ide” –Du programmerar med en partner, som hjälper dig att göra en enkel och motiverbar design
previous next 8 XP: Varför fungerar det? Något om tentan.. Testning Man kan väl inte skriva alla tester som behövs? Det tar väl för lång tid. ”Programmerare skriver inte tester!” Om inte –Designen är så enkel den kan bli –Du programmerar med en partner, så om du själv inte kommer på en test så kan kanske din partner –Du känner tillfredställelelse då du ser att alla tester fungerar –Kunden känner tillförlit till systemet då han/hon ser att alla tester fungerar
previous next 9 XP: Varför fungerar det? Något om tentan.. Refaktoring Man kan väl inte strukturera om systemet hela tiden? Det tar väl för lång tid och är för svårt att kontrollera och troligen förstörs väl hela systemt? Om inte –Du är van vid kollektivt ägande av kod Så att ändra där det behövs är inget du ser som ett problem –Du följer en kodstandard –Du programmerar i par –Du har en enkel design –Du har tester –Du integrerar hela tiden Så man vet snabbt om någon del är i konflikt med någon annan –Du är utvilad
previous next 10 XP: Varför fungerar det? Något om tentan.. Parprogrammering Du kan väl inte skriva all kod i par? Det går väl för långsamt? Vad händer om folk inte passar ihop? Om inte –Kodstandard används –Alla är utvilade –Paren skriver testerna ihop, så att dom kan ”förena” förståelsen innan dom tacklar den huvusakliga implementationen –Paren har en metafor –Paren jobbar med en enkel design, så båda är med på vad som händer
previous next 11 XP: Varför fungerar det? Något om tentan.. Kollektivt ägande av kod Alla kan väl inte tillåtas att ändra vadsomhelst överallt? Folk kommer väl förstöra till höger och vänster Om inte –Du kan integrerar ofta, så att risken för konflikter minskar –Du skriver och kör tester, så att risken för att förstöra något minskar –Du parprogrammerar, så att man minskar risken för att förstöra koden –Du följer kodstandard
previous next 12 XP: Varför fungerar det? Något om tentan.. Kontinuerlig integration Du kan väl inte integrera efter bara ett par timmar? Integration tar väl för lång tid? Om inte –Du kan köra testerna kvickt Så att man vet att inget är trasigt –Du programmerar i par Hälften så mycket att integrera –Du omsrukturerar, så att det är många smådelar Minskar risken för konflikter
previous next 13 XP: Varför fungerar det? Något om tentan.. 40-timmarsvecka Man hinner väl inte göra tillräckligt på 40 timmar? Om inte –Planeringspelet ger dig det som är av mest värde att jobba med –Kombinationen av planeringsspelet och testning reducerar frekvensen av hemska överaskningar –Alla ”regler” tillsammans gör att du kan gå fort fram
previous next 14 XP: Varför fungerar det? Något om tentan.. Kund på plats Det kan väl inte var mest effektivt att ha en riktig kund på plats på full tid? Om inte –Dom kan ge värde åt projektet genom att skriva funktionstest –Dom kontinuerligt kan hjälpa till att göra prioriteringar
previous next 15 XP: Varför fungerar det? Något om tentan.. Kodstandard Du kan väl inte be teamet att följa en viss standard? Programmerare är ju individualister och gör helst som dom brukar göra. Om inte –Hela XP hjälper dem att vara med i ett vinnande lag
previous next 16 XP: Varför fungerar det? Något om tentan.. Seminarium 6 På seminarium 6: första timme så presenterar deltagarna en läst artikel –Väljs bland förslagen på –Presenteras/diskuteras ca 10 minuter –Troligen delar vi in grupperna efter vilka artiklar som lästs Andra timmen genomförs en eXtreme Hour
previous next 17 XP: Varför fungerar det? Något om tentan.. Vad är en eXtreme Hour Under en eXtreme Hour går man igenom hela XP- processen mycket snabbt, dvs på en timme Av nödvändighet så är den applikation som implementeras av mer artificiell natur och man brukar normalt jobba med papper och penna
previous next 18 XP: Varför fungerar det? Något om tentan.. Tentamen vad ska jag läsa och kunna? Stora delar av boken och artiklarna i kursbunten tenteras Du tenterar antingen ti 24/10 kl 8-13 i F12-15, 45, eller (ej båda gångerna) lö 28/10 kl i V21-22, Tentamen kommer bli lite mindre omfattande än tidigare –Tentan bör klaras av på max tre timmar men av schematekniska skäl så får du ändå fem timmar på dig Extentor finns på följande sida För fler detaljer se läsanvisningarna på