20
AGILE SOFTWAREENTWICKLUNG NACH BERTRAND MEYER (AGILE!) FAKULTÄT INFORMATIONSTECHNIK STUDIENGANG SOFTWARETECHNIK UND MEDIENINFORMATIK 22.01.2016 HOCHSCHULE ESSLINGEN WISSENSCHAFTLICHE PRÜFUNG WOJCIECH LESNIANSKI

Wissenschaftliche Vertiefung - Agile Softwareentwicklung ... · • Ablaufgetrieben (User Stories) • Refactoring • Kontinuierliche Integration • Test DrivenDevelopment • Pair‐Programming

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Wissenschaftliche Vertiefung - Agile Softwareentwicklung ... · • Ablaufgetrieben (User Stories) • Refactoring • Kontinuierliche Integration • Test DrivenDevelopment • Pair‐Programming

AGILESOFTWAREENTWICKLUNGNACHBERTRANDMEYER(AGILE!)

FAKULTÄTINFORMATIONSTECHNIKSTUDIENGANGSOFTWARETECHNIKUNDMEDIENINFORMATIK

22.01.2016

HOCHSCHULEESSLINGEN

WISSENSCHAFTLICHEPRÜFUNG WOJCIECHLESNIANSKI

Page 2: Wissenschaftliche Vertiefung - Agile Softwareentwicklung ... · • Ablaufgetrieben (User Stories) • Refactoring • Kontinuierliche Integration • Test DrivenDevelopment • Pair‐Programming

2

AGENDA

1. WarumeszurAgilitätkommenmusste2. BedeutendeagileTechniken3. AgilesManifest4. AgilePrinzipiennachBertrandMeyer5. Zusammenfassung

Page 3: Wissenschaftliche Vertiefung - Agile Softwareentwicklung ... · • Ablaufgetrieben (User Stories) • Refactoring • Kontinuierliche Integration • Test DrivenDevelopment • Pair‐Programming

183

WARUMESZURAGILITÄTKOMMENMUSSTE

Vorgehensmodelle regeln den organisatorischen Ablauf von Projekten ingeneralisierter Form.

Übersicht

1. Warumeszur

Agilitätkommen

musste

2. Bedeutendeagile

Techniken

3. AgilesManifest

4. AgilePrinzipien

nachMeyer

5. Zusammenfassung

VorgehensmodellebeschreibendenLifeCyclederSoftwareentwicklung

Historische Entwicklung:

1. „Vom Hirn ins Terminal“2. Spezifikationsorientiert: Planung für Gesamtsystem im Vordergrund3. Prototyporientiert: Produkt im Vordergrund4. Agil: Inkrementelle Auslieferung in kleinen Teilen

Page 4: Wissenschaftliche Vertiefung - Agile Softwareentwicklung ... · • Ablaufgetrieben (User Stories) • Refactoring • Kontinuierliche Integration • Test DrivenDevelopment • Pair‐Programming

184

WARUMESZURAGILITÄTKOMMENMUSSTE

ÜbergangzuadaptivenSystemen

• KlarerTrendzurVerkürzungderLieferfristen(kurzeZyklen) Requirements ändernsichrelativschnell. DerKundemusseinelaufendeSoftwaresehen,um„seinewahrenAnforderungen“zuerkennen

• AufVeränderungensollteschnellreagiertwerdenkönnen

• BedürfnissederMitarbeiterwurdenzunehmendindenFokusgestellt Selbstbestimmung Meisterschaft Sinnhaftigkeit

Übersicht

1. Warumeszur

Agilitätkommen

musste

2. Bedeutendeagile

Techniken

3. AgilesManifest

4. AgilePrinzipien

nachMeyer

5. Zusammenfassung

Page 5: Wissenschaftliche Vertiefung - Agile Softwareentwicklung ... · • Ablaufgetrieben (User Stories) • Refactoring • Kontinuierliche Integration • Test DrivenDevelopment • Pair‐Programming

18

2000 2001 20041997

5

BEDEUTENDEAGILETECHNIKEN

Übersicht

1. Warumeszur

Agilitätkommen

musste

2. Bedeutendeagile

Techniken

3. AgilesManifest

4. AgilePrinzipien

nachMeyer

5. Zusammenfassung

FeatureDrivenDevelopment

(FDD)

ExtremeProgramming

(XP)Scrum Crystal

Page 6: Wissenschaftliche Vertiefung - Agile Softwareentwicklung ... · • Ablaufgetrieben (User Stories) • Refactoring • Kontinuierliche Integration • Test DrivenDevelopment • Pair‐Programming

186

BEDEUTENDEAGILETECHNIKENEXTREMEPROGRAMMING (XP)

Ziele:• AbbaudesAufwandsfürSpezifikationen

• Testen• BetonungaufProgrammierung

WichtigePrinzipienvonXP:

• KurzeIterationen• Ablaufgetrieben(UserStories)• Refactoring• KontinuierlicheIntegration• TestDriven Development• Pair‐Programming

XPstellteinenProgrammiererinsZentrum.

Übersicht

1. Warumeszur

Agilitätkommen

musste

2. Bedeutendeagile

Techniken

3. AgilesManifest

4. AgilePrinzipien

nachMeyer

5. Zusammenfassung

Page 7: Wissenschaftliche Vertiefung - Agile Softwareentwicklung ... · • Ablaufgetrieben (User Stories) • Refactoring • Kontinuierliche Integration • Test DrivenDevelopment • Pair‐Programming

187

BEDEUTENDEAGILETECHNIKENSCRUM

Idee:„SetzeAnforderungeninkurzenIterationenum“

Ablauf:

WichtigePraktiken:

• SprintPlanning zuBeginn

• „Closed‐window“‐Regel• DailyScrum• SprintReview• EigenverantwortungdesTeams

• „Inspect &Adapt“

Scrum hatVorteilebei„unscharfen“Projekten

Übersicht

1. Warumeszur

Agilitätkommen

musste

2. Bedeutendeagile

Techniken

3. AgilesManifest

4. AgilePrinzipien

nachMeyer

5. Zusammenfassung

Page 8: Wissenschaftliche Vertiefung - Agile Softwareentwicklung ... · • Ablaufgetrieben (User Stories) • Refactoring • Kontinuierliche Integration • Test DrivenDevelopment • Pair‐Programming

188

BEDEUTENDEAGILETECHNIKENCRYSTAL

CrystalisttheoretischeineganzeFamilievonEntwicklungsmethoden

DieMitgliederderFamiliesindnachFarbenbenannt

Übersicht

1. Warumeszur

Agilitätkommen

musste

2. Bedeutendeagile

Techniken

3. AgilesManifest

4. AgilePrinzipien

nachMeyer

5. Zusammenfassung WichtigePraktiken:• RegelmäßigeLieferung• VerbesserungdurchReflektion

• OsmotischeKommunikation

CrystalstelltdenMenschenindenMittelpunkt

WichtigeMerkmale:• FokusaufMenschen• Hierarchie• HoheFlexibilität• Nicht„one size fits all“

Page 9: Wissenschaftliche Vertiefung - Agile Softwareentwicklung ... · • Ablaufgetrieben (User Stories) • Refactoring • Kontinuierliche Integration • Test DrivenDevelopment • Pair‐Programming

189

AGILESMANIFEST(FEBRUAR11‐13.2001)

„WirerschließenbessereWege,Softwarezuentwickeln,indemwiresselbsttunundanderendabeihelfen.DurchdieseTätigkeithabenwirdieseWertezuschätzengelernt:

• MenschenundInteraktionen stehenüberProzessenundWerkzeugen

• FunktionierendeSoftware stehtübereinerumfassendenDokumentation

• ZusammenarbeitmitdemKunden stehtüberderVertragsverhandlung

• ReagierenaufVeränderung stehtüberdemBefolgeneinesPlans

Dasheißt,obwohlwirdieWerteaufderrechtenSeitewichtigfinden,schätzenwirdieWerteaufderlinkenSeitehöherein.“

Erstuntezeichner:

• KentBeck• MikeBeedle• ArievanBennekum• AlistairCockburn• WardCunningham• MartinFowler• JamesGrenning• JimHighsmith• AndrewHunt• RonJeffries• JonKern• BrianMarick• RobertC.Martin• SteveMellor• KenSchwaber• JeffSutherland• DaveThomas

Übersicht

1. Warumeszur

Agilitätkommen

musste

2. Bedeutendeagile

Techniken

3. AgilesManifest

4. AgilePrinzipien

nachMeyer

5. Bewertung

6. Zusammenfassung

WortlautdesagilenManifests

ErstunterzeichnerErstunterzeichner

Page 10: Wissenschaftliche Vertiefung - Agile Softwareentwicklung ... · • Ablaufgetrieben (User Stories) • Refactoring • Kontinuierliche Integration • Test DrivenDevelopment • Pair‐Programming

1810

AGILESMANIFESTBEWERTUNG DURCHMEYER

1. UnserehöchstePrioritätistes,denKundendurchfrüheundkontinuierlicheAuslieferungwertvollerSoftwarezufriedenzustellen.

2. HeißeAnforderungsänderungenselbstspätinderEntwicklungwillkommen.AgileProzessenutzenVeränderungenzumWettbewerbsvorteildesKunden.

3. LieferefunktionierendeSoftwareregelmäßiginnerhalbwenigerWochenoderMonateundbevorzugedabeidiekürzereZeitspanne.

4. FachexpertenundEntwicklermüssenwährenddesProjektestäglichzusammenarbeiten.

5. ErrichteProjekterundummotivierteIndividuen.GibihnendasUmfeldunddieUnterstützung,diesiebenötigen,undvertrauedarauf,dasssiedieAufgabeerledigen.

6. DieeffizientesteundeffektivsteMethode,InformationenanundinnerhalbeinesEntwicklungsteamszuübermitteln,istimGesprächvonAngesichtzuAngesicht.

Übersicht

1. Warumeszur

Agilitätkommen

musste

2. Bedeutendeagile

Techniken

3. AgilesManifest

4. AgilePrinzipien

nachMeyer

5. Zusammenfassung

AgilePrinzipien(1)

Platitüde

Praktik

Page 11: Wissenschaftliche Vertiefung - Agile Softwareentwicklung ... · • Ablaufgetrieben (User Stories) • Refactoring • Kontinuierliche Integration • Test DrivenDevelopment • Pair‐Programming

1811

AGILESMANIFESTBEWERTUNG DURCHMEYER

7. FunktionierendeSoftwareistdaswichtigsteFortschrittsmaß.

8. AgileProzesseförderneinenachhaltigeEntwicklung.DieAuftraggeber,EntwicklerundBenutzersollteneingleichmäßigesTempoaufunbegrenzteZeithaltenkönnen.

9. StändigesAugenmerkauftechnischeExzellenzundgutesDesignfördertAgilität.

10. Einfachheit– dieKunst,dieMengenichtgetanerArbeitzumaximieren– istessenziell.

11. DiebestenArchitekturen,AnforderungenundEntwürfeentstehendurchselbstorganisierteTeams(SelbstorganisationderTeamsbeiPlanungundUmsetzung).

12. InregelmäßigenAbständenreflektiertdasTeam,wieeseffektiverwerdenkannundpasstseinVerhaltenentsprechendan.

Übersicht

1. Warumeszur

Agilitätkommen

musste

2. Bedeutendeagile

Techniken

3. AgilesManifest

4. AgilePrinzipien

nachMeyer

5. Zusammenfassung

AgilePrinzipien(2)

Platitüde

Praktik

Unwahr

Page 12: Wissenschaftliche Vertiefung - Agile Softwareentwicklung ... · • Ablaufgetrieben (User Stories) • Refactoring • Kontinuierliche Integration • Test DrivenDevelopment • Pair‐Programming

1812

AGILEPRINZIPIENNACHBERTRANDMEYER

1. StelledenKundenindenMittelpunkt2. SelbstorganisationderTeams3. Arbeitenachhaltig4. EntwickledieSoftwareminimalistisch5. AkzeptiereVeränderungen

6. Entwickleiterativ7. BehandleTestsalseineSchlüsselressource8. DrückeAnforderungendurchSzenarienaus

Organisatorisch

Technisch (vonDanielMajorow behandelt)

Übersicht

1. Warumeszur

Agilitätkommen

musste

2. Bedeutendeagile

Techniken

3. AgilesManifest

4. AgilePrinzipien

nachMeyer

5. Zusammenfassung

Page 13: Wissenschaftliche Vertiefung - Agile Softwareentwicklung ... · • Ablaufgetrieben (User Stories) • Refactoring • Kontinuierliche Integration • Test DrivenDevelopment • Pair‐Programming

1813

AGILEPRINZIPIENNACHBERTRANDMEYER

SchnellesFeedback

DirektesFeedbackdesKunden

++NurdasProblemdereinbezogenenPersonwirdgelöst

Die„falsche“Personkanneingebundenwerden

‐‐

1.StelledenKundenindenMittelpunkt

Übersicht

1. Warumeszur

Agilitätkommen

musste

2. Bedeutendeagile

Techniken

3. AgilesManifest

4. AgilePrinzipien

nachMeyer

5. Zusammenfassung

EinbindungdesKundenbringtVor‐ undNachteile:

Page 14: Wissenschaftliche Vertiefung - Agile Softwareentwicklung ... · • Ablaufgetrieben (User Stories) • Refactoring • Kontinuierliche Integration • Test DrivenDevelopment • Pair‐Programming

1814

AGILEPRINZIPIENNACHBERTRANDMEYER

• Vertrauen,dassdasEntwicklerteamseineArbeitselbstorganisierenkann(DieAufgabendesklassischenManagerswurdenaufdasTeamübertragen)

• DasEntwicklerteamistaufsichalleingestellt,dennochistesnichtunkontrolliert.

• DerManagersolldasTeamindierichtigeRichtunglenken WiedasLenkengeschehensoll,istnichtgenaubeschrieben ErfahreneTeamsbrauchenwenigbisgarkeineLeitung.UnerfahreneTeamshingegenbrauchenmöglicherweiseeinenerfahrenenLeiter.

2.SelbstorganisationderTeams

Übersicht

1. Warumeszur

Agilitätkommen

musste

2. Bedeutendeagile

Techniken

3. AgilesManifest

4. AgilePrinzipien

nachMeyer

5. Zusammenfassung

Page 15: Wissenschaftliche Vertiefung - Agile Softwareentwicklung ... · • Ablaufgetrieben (User Stories) • Refactoring • Kontinuierliche Integration • Test DrivenDevelopment • Pair‐Programming

1815

AGILEPRINZIPIENNACHBERTRANDMEYER

NachhaltigeArbeiterreichtdurch:• AngemesseneArbeitsumgebung• „PersönlicheSicherheit“• 20‐Prozent‐Regel*(undähnliches)

3.Arbeitenachhaltig

*EineRegel,welchevonGoogleeingeführtwurdeundbesagt,dassdieMitarbeiterbiszu20%derArbeitszeitfüreigeneProjekteundIdeennutzenkönnen.

Übersicht

1. Warumeszur

Agilitätkommen

musste

2. Bedeutendeagile

Techniken

3. AgilesManifest

4. AgilePrinzipien

nachMeyer

5. Zusammenfassung

Page 16: Wissenschaftliche Vertiefung - Agile Softwareentwicklung ... · • Ablaufgetrieben (User Stories) • Refactoring • Kontinuierliche Integration • Test DrivenDevelopment • Pair‐Programming

1816

AGILEPRINZIPIENNACHBERTRANDMEYER

Erzeugenurdieminimale

Funktionalität

Erzeugenurdieminimale

Funktionalität

Nicht„aufblasen“

YAGNI

Erzeugenurdas,was

verlangtwird

Erzeugenurdas,was

verlangtwird

Zusatzarbeitvermeiden,wenndasnichtderInfrastruktur

schadet

KeineverstecktenFeatures

EntwicklenurCodeundTestsEntwicklenurCodeundTests

NurdasNötigstezu

dokumentieren,istschädlich

Architektensindfürdas

Refactoringzuständig

4.EntwickleSoftwareminimalistisch

Übersicht

1. Warumeszur

Agilitätkommen

musste

2. Bedeutendeagile

Techniken

3. AgilesManifest

4. AgilePrinzipien

nachMeyer

5. Zusammenfassung

Page 17: Wissenschaftliche Vertiefung - Agile Softwareentwicklung ... · • Ablaufgetrieben (User Stories) • Refactoring • Kontinuierliche Integration • Test DrivenDevelopment • Pair‐Programming

1817

AGILEPRINZIPIENNACHBERTRANDMEYER

• JederrealistischeAnsatzhatRegeln,wieermitVeränderungenumgeht.SolässtbeispielsweiseScrumkeineVeränderungenwährendeinesSprintszu.

• Agilisten sprechenzwarvom„willkommenHeißen“vonVeränderungen,befürwortenjedochTechniken,welchedagegensindundverhöhnendieOOP

5.AkzeptiereVeränderungen

Übersicht

1. Warumeszur

Agilitätkommen

musste

2. Bedeutendeagile

Techniken

3. AgilesManifest

4. AgilePrinzipien

nachMeyer

5. Zusammenfassung

Page 18: Wissenschaftliche Vertiefung - Agile Softwareentwicklung ... · • Ablaufgetrieben (User Stories) • Refactoring • Kontinuierliche Integration • Test DrivenDevelopment • Pair‐Programming

1818

ZUSAMMENFASSUNG• Gut,dassesagileMethodengibt

• AgileMethodenentwickelnsichweiter,werdenabergleichzeitig„unschärfer“.SoistbeispielsweiseoftdieManager‐Rollenichtdefiniert.

• EinigeVorteilegegenüberdemklassischenWasserfallmodell…

• …dennochhabenagileMethodendiverse„schädliche“Prinzipien VernachlässigungvonPlanungundDokumentation Gefahr,beijederIterationetwasSichtbaresfürdenKundenliefernzuwollenunddieInfrastrukturzuvernachlässigen

User‐StoriessindkeinErsatzfürRequirements

Übersicht

1. Warumeszur

Agilitätkommen

musste

2. Bedeutendeagile

Techniken

3. AgilesManifest

4. AgilePrinzipien

nachMeyer

5. Zusammenfassung

Page 19: Wissenschaftliche Vertiefung - Agile Softwareentwicklung ... · • Ablaufgetrieben (User Stories) • Refactoring • Kontinuierliche Integration • Test DrivenDevelopment • Pair‐Programming

19

Reservefolie

„While intheory OOdevelopment produces codethat is easyto change,inpractice OOsystems canbe as difficult to change as any other,especiallywhen information hiding is notdeeply understoodand effectively used“

(Poppendiecks – „Leading LeanSoftwareDevelopment“,2010)

ZurückZurück

Page 20: Wissenschaftliche Vertiefung - Agile Softwareentwicklung ... · • Ablaufgetrieben (User Stories) • Refactoring • Kontinuierliche Integration • Test DrivenDevelopment • Pair‐Programming

20ZurückZurück

RESERVEFOLIE

WASSERFALLMODELL