extreme Programming, motivation og baggrund november 2002 november 2002 Erfaringer fra XP og non-xp projekter - ved Carsten Juel Andersen 1



Relaterede dokumenter
Det vigtigste først! Dette er måske den vigtigste bog der nogensinde er skrevet om agile vs. vandfald. Muligvis fordi det vel stadig er den eneste

extreme Programming Hvad er XP?

extreme Programming Kunders og udvikleres menneskerettigheder

Ud af krisen. Software på tværs, 15. juni 2009

Agil-model versus V-model set i lyset af en testers dilemmaer

Objektorienterede metoder

Kvalitetssikring og agile udvikling

Hvem er vi? Kursus Introduktion. Kursuslærerne. Agenda for i dag

RMI introduktion. Denne artikel beskriver Java RMI (Remtote Method Invocation).

Test med JUnit 3. Denne artikel introducerer JUnit 3. Den forklarer ideen med JUnit. Og den viser hvordan man konkret bruger det.

Test med NUnit. Denne artikel introducerer NUnit. Den forklarer ideen med NUnit. Og den viser hvordan man konkret bruger det.

Introduction til.net remoting i C#

DANMARKS NATIONALBANK LEVER AGIL UDVIKLING STADIG I DET VILDE VESTEN

Automatisering Af Hverdagen

Agil softwareudvikling i praksis. v/ Thomas Schou-Moldt, Lead Architect, Miracle A/S

Singleton pattern i C#

Projekt - Valgfrit Tema

ZBC Vordingborg Marcus Rasmussen, Oliver Meldola, Mikkel Nielsen 17/ The Board Game

Visual Studio Team System. Team Build en grundpille i søgen efter it-projektproduktivitet?

It-håndbogen. Uddrag af artikel trykt i It-håndbogen. Gengivelse af denne artikel eller dele heraf er ikke tilladt ifølge dansk lov om ophavsret.

Københavnerdrenge skal lære nye vaner på camp

Objektorienterede metoder

1-2-3 klasse Præsentationsporteføjle

Design by Contract. Design and Programming by Contract. Oversigt. Prædikater

INTRODUKTION TIL LØSNINGSFOKUSERET SAMTALE

Fokusområde Matematik: Erfaringer fra PISA 2012

Design by Contract Bertrand Meyer Design and Programming by Contract. Oversigt. Prædikater

Søren Chr. Sørensen 3. September 2013 NETVÆRK TIL SPREDNING AF NATURFAGLIG KULTUR

Det der giver os energi

MILJØARBEJDET PÅ AAU SØREN LØKKE / AAU / DCEA / AAU OPLÆG OM MILJØUDVALGET OG MILJØARBEJDET PÅ AAU TIL MORGENMØDE I NBEN OM GREEN LEAN 26/6 2013

Singleton pattern i Java

Computerspil - Kappa

Go, go, go Søren Wengel Mogensen

LÆRERVEJLEDNING. Fattigdom og ulighed

Lægen & Terapeuten Foredrag, workshops og seminarer

PRÆSENTERER. Et stærkt personligt udviklingsprogram i naturlig ledelse

Retningslinier for trekkies.dks DM, version 5 oktober 2006

HUB FOR DESIGN & LEG

Løbetræning for begyndere 1

TOVHOLDER GUIDE BEDRE TIL ORD, TAL OG IT

DMRI Teknologisk Institut Resultatkontrakt Produktionsteknologi til fødevarer

BRUTTO CV Peter Petersen

Hvorfor skal vi bruge objekt orienteret databaser?

Ungdomskultur og motivation i udskolingen

Automatiseret Test & Continuous Integration. Rikke Simonsen & Mads Danquah

Social kapital som arbejdsmiljøværktøj

Undervisningsbeskrivelse

Indhold. Indhold Indhold. Forord... 9

Brøker kan repræsentere dele af et hele som et område (fx ½ sandwich, ½ pizza, ½ æble, ½ ton grus).

Bilag Læringsstile og feedback i naturfagsundervisningen 2012

HTX. Afsluttende projekt. E-learning Komunikation/It C Helena, Katrine og Rikke

Word. Strukturering, henvisninger m.m.

Rygtespredning: Et logistisk eksperiment

Motivation. Menneske-til-menneske-forhold, fem faser. Fremvækst af identitet. Empati Sympati Gensidig forståelse

nikolaj stegeager Organisationer i bevægelse Læring UdvikLing intervention

Hvad er dine erhvervsmæssige erfaringer med at arbejde med parametri?

Undervisningsvejledning vægtstoprådgiveruddannelsen

DKK Rally-lydighed, Øvede-klassen. 40. Fristende 8-tal

Bryd vanen, bøj fisken og gør en skelsættende forskel!

Den motiverende samtale

Interview med Jørgen Schøler Cheflæge Hospitalsenheden Horsens.

Struktureret Test og Værktøjer Appendiks til bogen Struktureret Test

A Profile for Safety Critical Java

Program Dokumentation PC Software Skrevet af. Gruppen. Version 1.0

INSPIRATION TIL LÆRERE

REBECCA HANSSON BABYTEGN. Forlaget BabySigning 3

Sådan giver vi vejledning i verdensklasse Ca. 2 timer


Tirsdagssejladser Brugervejledning til Sailwave

... afholdes kundebesøget

TIPS TIL SAMARBEJDET OM SAMTALEGUIDEN

MUS BESKÆFTIGELSESMINISTERIET

Portfolie Redesign. Forord. Det tekniske. Tema ide. Css. opløsning.

Af journalist Sofie Pedersen

1. Skulpturen som medie. 2. Cronhammar og skulpturer

livsglæde er en af de største gaver vi kan give børn

NA World Service Konferensen Los Angeles, Californien 2014

Guide til pressekontakt

Sundhedskampagne. Skadelig brug af teknologi Jakob Hannibal

Særligt sensitive mennesker besidder en veludviklet evne til at reflektere og tage ved lære af fortiden.

Introduktionsperioden

Peter Grynderup Poulsen

Unges motivation og lyst til læring. v/ Mette Pless Center for Ungdomsforskning, Aalborg Universitet, København

Tilværelsespsykologi - bekymringssamtalen

teknikker til mødeformen

Usability-arbejde i virksomheder

4.3 Du må også være discipel

Investerings- og finansieringsteori, F05, ugeseddel 3

Indsats: Tryghedsvandringer 2015 Status Hvad er status på aktiviteterne (gennemført/planlagt)

Vil du anbefale os? Boganmeldelse. Tomas Lykke: - Kundeloyalitet i praksis

Installationsvejledning til LMeSmartClient

CERTIFICERET SALGSLEDELSE I PRAKSIS (CSP)

Bettina. Profil. Not. Hot. Fang min opmærksomhed med lethed og humor. Profil for Bettina. Job:

It-inspirator afsluttende opgave. Betina og Helle Vejleder. Line Skov Hansen. Side 1 af 6

Modul 5. Practice. PositivitiES. On-line-kursus. Engagement og mening. Applied Positive Psychology for European Schools

Installér din Officepakke 2013

Målet er at skabe fokus, tænke over hvad vi gør, og hvorfor vi gør det!

Introduction til.net remoting i VB.NET

Transkript:

extreme Programming nogle observationer... Carsten Juel Andersen Softwarearkitekt juel@captator.dk www.captator.dk november 2002 Erfaringer fra XP og non-xp projekter - ved Carsten Juel Andersen 1 Min historie 1982 Bidt af en gal computer 1989 Uddannet Teknikum ingeniør fra Sønderborg 1990 Udviklingsingeniør siden teknologisspecialist Større projekter (en sæson med adskillige produkter samlet 50 swudviklere, eget projekt ca. 10) 1997 Ansat på Teknologisk Institut Konsulent/underviser SA/SD, OO, Java, XP mv. 1999 Købte XP bogen på OOPSLA Hørte også her de første erfaringsindlæg Har siden holdt en del foredrag om XP og XUnit / testførst m.v. 2000 Deltog på XP2000 Her var en anseelig del af guru -erne for Agile metoder til stede Vild optimisme 2001 Deltog på XP2001 Agile Manifesto som det store Bekymring over problemer med at indføre XP 2002 Stiftet Captator for at arbejde med MS.NET november 2002 Erfaringer fra XP og non-xp projekter - ved Carsten Juel Andersen 2 extreme Programming - motivation og baggrund ved Carsten Juel Andersen 1

De 12 XP praktikker Refaktorering Simpelt design Test Programmering Kode standarder Kort tid mellem releases Kollektivt ejerskab Fortløbende integration Programmering i par 37-timers arbejdsuge Team praktikker Metafor The Planning Game Kunde involvering Test Kort tid mellem releases Proces november 2002 Erfaringer fra XP og non-xp projekter - ved Carsten Juel Andersen 3 Værdierne som XP værdsætter Kommunikation Mangel på samme er ofte en fejlkilde XP er en team-process med konstant kommunikation Enkelthed design ikke for imorgen, men kun for idag Feedback Optimisme er en fare, feedback er medicinen :-) MOD Frygt ikke følgefejl, men hav mod til at turde lave ændringer! november 2002 Erfaringer fra XP og non-xp projekter - ved Carsten Juel Andersen 4 extreme Programming - motivation og baggrund ved Carsten Juel Andersen 2

Refaktorerings katalog Refactoring Improving the Design of Existing Code beskriver et katalog af 72 refaktoreringer Der er beskrevet et motiv og en løsning for hver Ofte går en refaktorering begge veje alt efter omstændighederne ex: Pull Up Field kontra Push Down Field Eksempler fra bogen Collapse Hierarchy, Encapsulate Field, Extract Class, Inline Class, Introduce Assertion, Introduce Null Object, Move Field, Move Method, Pull Up Field, Push Down Field, Replace Constructor with Factory Method, Replace Inheritance with Delegation, Replace Magic Number with Symbolic Constant november 2002 Erfaringer fra XP og non-xp projekter - ved Carsten Juel Andersen 5 Hvornår skal man refaktorere? Når koden lugter! (bad smell), som ex. Duplikeret kode Lange metoder Store klasser Lange parameter lister Divergerende ændringer (klasse er blevet ændret mange gange med forskellig fokus) Haglgeværskirurgi (en rettelse = ændringer mange steder) Switch statements Doven klasse Spekulativ generalisering Mellemmand november 2002 Erfaringer fra XP og non-xp projekter - ved Carsten Juel Andersen 6 extreme Programming - motivation og baggrund ved Carsten Juel Andersen 3

Junit/NUnit/XUnit et testværktøj Keep the bar green to to keep the code clean...... Citat fra www.junit.org november 2002 Erfaringer fra XP og non-xp projekter - ved Carsten Juel Andersen 7 Fortløbende integration Når en programmeringsopgave afsluttes Sætter den taskansvarlige sig ved integrationsmaskinen Det sikrer at check-in serialiseres Det checkes på en clean maskine Herefter testes rettelserne og rettelsen checkes ind i versionssystemet 1. Clean maskine 2. Nyeste version hentes ud fra versionsstyringssystemet 3. Egne rettelser lægges ind på maskinen 4. Compiler og afvikl alle unittests - skal give grønt lys 5. Rettelserne checkes ind i versionsstyringssystemet 6. PAUSE J!! november 2002 Erfaringer fra XP og non-xp projekter - ved Carsten Juel Andersen 8 extreme Programming - motivation og baggrund ved Carsten Juel Andersen 4

Fortløbende integration nightly build Sørg for at projektet altid kan passere alle tests med grønt lys! Der findes værktøjer til at lave en fuldautomatisk build og testafvikling Kør den hver nat Få resultatet når I møder på arbejde om morgenen november 2002 Erfaringer fra XP og non-xp projekter - ved Carsten Juel Andersen 9 Release planlægning - Story Card En historie er er ikke en fuldkommen specifikation, men blot et et løfte om en senere samtale mellem kunde og udvikler om hvad denne historie indebærer En historie (Story) - er skrevet på et kartotekskort, hvorpå der står en overskrift på den givne historie et estimat samt eventuelle yderligere kommentarer, som var vigtige for kunden eller udviklererne i det, den blev påført kortet november 2002 Erfaringer fra XP og non-xp projekter - ved Carsten Juel Andersen 10 extreme Programming - motivation og baggrund ved Carsten Juel Andersen 5

Release planlægning - points Hver historie estimeres efter et pointsystem Et point = en effektiv mandeuge Der kan gives 1, 1.5, 2, 2.5 og 3 points En historie må aldrig være større en 3 points så skal den splittes til mindre historier En historie kan ikke være mindre end 1 point klips flere små historier sammen til 1 historie så den opnår 1 point til sammen november 2002 Erfaringer fra XP og non-xp projekter - ved Carsten Juel Andersen 11 Release planlægning - omfang Med de givne estimater kan man herefter udregne den nødvendige projektudstrækning antal iteration af (normalt) 3 ugers udstrækning antaliterationer = pointsum / projekthastighed Projekthastigheden (velocity) bestemmes udfra følgende Ved starten på projekt (1. iteration) - 1 point pr. udvikler efterfølgende - antal points nået i foregående iteration november 2002 Erfaringer fra XP og non-xp projekter - ved Carsten Juel Andersen 12 extreme Programming - motivation og baggrund ved Carsten Juel Andersen 6

Release planlægning - resultat Resultat af release planlægning er 3 stakke af kort 1 stak til første iteration 1 stak til øvrige historier i denne release 1 stak til alle de andre historier R R R R R R Nu ved vi: Hvad der er med i første release og hvornår projektet er færdigt (selvom vi godt ved det ikke holder i længden... :-) Dette er bedre en et gantkort hvor detaljeringen har en tendens til at forplumre billedet november 2002 Erfaringer fra XP og non-xp projekter - ved Carsten Juel Andersen 13 Agile Manifesto Manifest for agile softwareudvikling "Vi forsøger at finde bedre måder at udvikle software på, ved selv at være udførende og ved at hjælpe andre. Gennem dette arbejde, har vi fundet frem til at værdsætte følgende værdier Det individuelle individ og samarbejde frem for metoder og værktøjer Fungerende software frem for omfattende dokumentation Samspil med kunden frem for kontraktforhandlinger Reaktion på forandring frem for at følge en plan november 2002 Erfaringer fra XP og non-xp projekter - ved Carsten Juel Andersen 14 extreme Programming - motivation og baggrund ved Carsten Juel Andersen 7

Referencer til bøger og websteder om XP november 2002 Erfaringer fra XP og non-xp projekter - ved Carsten Juel Andersen 15 Artikler om XP Chrysler Goes to Extremes Distributed Computing, oktober 1998 http://www.distributedcomputing.com Embracing change with Extreme Programming Kent Beck, IEEE Computer, Oktober 1999 Extreme Programming: Flatten the change-cost curve by using XP in project planning and testing Kent Beck, C++ Report, May 1999, pp. 26-29, 44. http://archive.creport.com/9905/html/from_pages/feature.shtml Experiences in Applying Extreme Programming to a Java- Based Project Fred George, Rob Billington Erfaringsindlæg fra OOPSLA 99 november 2002 Erfaringer fra XP og non-xp projekter - ved Carsten Juel Andersen 16 extreme Programming - motivation og baggrund ved Carsten Juel Andersen 8

Junit / XUnit referencer Extreme Testing Ron Jeffries, Software Testing & Quality Engineering, V1I2, March/April 1999, pp 22-27., http://www.xprogramming.com/software_testing.htm Simple Smalltalk Testing: With Patterns Kent Beck, original artikel om XP test. http://www.xprogramming.com/testfram.htm JUNIT: A Cook s Tour Erich Gamma & Kent Beck; Java Report, Maj 1999 XP test framework for Java (JUnit) og.net (NUnit) http://www.junit.org, http://www.nunit.org Andre XUnit frameworks http://www.xprogramming.com/software.htm november 2002 Erfaringer fra XP og non-xp projekter - ved Carsten Juel Andersen 17 Web XP ressourcer Ward Cunninghams Wiki om XP http://c2.com/cgi/wiki?extremeprogrammingroadmap Ron Jeffries XP site http://www.xprogramming.com Don Wells XP site http://www.extremeprogramming.org Martin Fowler http://martinfowler.com Agile Alliance http://www.agilealliance.org november 2002 Erfaringer fra XP og non-xp projekter - ved Carsten Juel Andersen 18 extreme Programming - motivation og baggrund ved Carsten Juel Andersen 9

Bøgerne i XP serien Extreme Programming Explained Kent Beck; ISBN 0-201-61641-6 Den oprindelige bog om XP skrevet af idemanden bag: Kent Beck. Bogen gennemgå de grundlæggende elementer af XP og forsøger at give en baggrund for hvorfor de enkelte dele af XP er vigtige. Planning Extreme Programming Kent Beck, Martin Fowler; ISBN 0-201-71091-9 Bogen om the planning game. Her beskrives dette ene princip i XP til bunds. Mange af delene af planlægning kan benyttes også uden at benytte de øvrige XP principper. En god bog hvis man vil vide mere om at planlægge og styre sine projekter. Extreme Programming Installed Ron Jeffries, Ann Anderson, Chet Hendrickson; ISBN 0-201-70842-6 Fra 3 af de oprindelige C3 projektdeltagere/konsulenter er her bogen, der prøver at give en mere grunding praktisk indgang til de enkelte XP principper. november 2002 Erfaringer fra XP og non-xp projekter - ved Carsten Juel Andersen 19 Bøgerne i XP serien Extreme Programming Examined Giancarlo Succi, Michele Marchesi; ISBN 0-201-71040-4 I maj 2000 blev den første konference om XP afholdt på Sardinien, Italien. Denne bog er de redigerede conference proceedings. Den indeholder alle de bedste artikler fra konferencen. Extreme Programming Explored William C. Wake; ISBN 0-201-73397-8 Herfra er opdelingen af de enkelte praktikker i 3 kategorier: Programmering, Team praktikker og process hentet. Bogen holder sig til at beskrive praktikkerne. Den giver også nogle gode råd på hvilke praktikker, der kan benyttes selvom man ikke ønsker en 100% XP process. Der er flere bøger i denne serie, men der er simpelthen for megen gentagelse mellem bøgerne til at de er af nogen nytte november 2002 Erfaringer fra XP og non-xp projekter - ved Carsten Juel Andersen 20 extreme Programming - motivation og baggrund ved Carsten Juel Andersen 10

Bøger om XP og beslægtede metoder Refactoring: Improving the Design of Existing Code Martin Fowler, Kent Beck m.fl.; ISBN 0-201-48567-2 Dette er en utrolig god bog om disiplinen Refactoring. Den indeholder en længere introduktion om hvad refaktorering er, men den vigtigste del er et katalog af refaktoreringer. Her er beskrevet fordele og ulemper ved de enkelte løsninger. Ofte kan en refaktorering gå begge veje, i nogle tilfælde er en løsning bedste - i andre den modsatte. Dette katalog giver gode regler for hvornår man bør bruge det ene, og hvornår man bør benytte det andet. Surviving Object-Oriented Projects Alistair Cockburn; ISBN 0-201-49834-0 En bog om Alistair Cockburn s egen familie af letvægts metoder: Crystal. Bogen beskriver også en række projekter. Vil man vide noget om hvad der gør et oo-projekt sucessfuldt, og hvad der får det til af fejle er dette en god bog at læse. Alistair Cockburn er også en af dem der gennem de senere år har slået hårdt på at det er det personlige aspekt, der udgår den største del af et projekts success. Det er i god tråd med XP s filosofi. november 2002 Erfaringer fra XP og non-xp projekter - ved Carsten Juel Andersen 21 Bøger om XP og beslægtede metoder The Pragmatic Programmer Andrew Hunt, David Thomas; ISBN 0-201-61622-X Hvordan bliver man en bedre programmør? Ved at læse denne bog! Bogen giver en masse råd - lidt al a XP s principper - om hvordan man kan blive en bedre programmør. Denne bog er også for den enkelte, dvs. at man kan bruge mange af rådene herfra uden nødvendigvis at skulle overbevise alle man arbejder sammen med for at kunne bruge dem. november 2002 Erfaringer fra XP og non-xp projekter - ved Carsten Juel Andersen 22 extreme Programming - motivation og baggrund ved Carsten Juel Andersen 11

Spørgsmål www.captator.dk nyheder, artikler, demoer,... november 2002 Erfaringer fra XP og non-xp projekter - ved Carsten Juel Andersen 23 extreme Programming - motivation og baggrund ved Carsten Juel Andersen 12