Proseminar "Methoden und Praktiken der Agilen Softwareentwicklung"
Wintersemester 2016/17

Beschreibung

In diesem Proseminar werden agile Softwareentwicklungsmethoden (z.B. Scrum, XP, Kanban) und ihre Praktiken (z.B. Pair Programming, Test-First-Development) behandelt. Letztere sind im weiteren Sinne zu verstehen und schließen auch angrenzende Themen -- wie etwa "moderne", dezentrale Versionsverwaltung (z.B. mit Git) -- ein. Siehe unten für die vorläufige Themenliste.

Inhaltlich ist dieses Proseminar dabei eher auf Prozess- als auf technische Aspekte ausgerichtet.

Generell soll ein Proseminar zum Erlernen eines wissenschaftlichen Arbeitsstils und dem Erwerb kommunikativer Kompetenzen dienen. Für die Erarbeitung der jeweiligen Themen werden grundlegende Literaturquellen gegeben. Eine kritische Auseinandersetzung mit diesen wird erwartet; das Einbeziehen weiterer Quellen ist erwünscht. Für die schriftliche Ausarbeitung sowie das abschließende Referat werden LaTeX- bzw. PowerPoint-Vorlagen gestellt.

Vorbedingungen

Teilnehmer/innen, die die Vorlesung Softwaretechnik noch nicht gehört haben, sollten sich zur Einstimmung das zugehörige Miniskript (16 Seiten) durchlesen.

Organisatorisches

Veranstalter

Termine

Der Zeitplan in Übersicht

  • Vorbesprechung am 2016-11-14 um 18:00 Uhr, Raum T9.053
  • Themenfavoriten bis 2016-11-17 um 16:00 Uhr per Mail an zieris@inf.fu-berlin.de
    • Je ein Thema mit stargold, star-half und star-none (siehe unten)
    • Diese drei nach eigenem Interesse priorisieren
  • Themenvergabe am 2016-11-21 per E-Mail
  • Bestätigung bis 2016-11-28 um 16:00 Uhr per Mail an zieris@inf.fu-berlin.de
  • Zwischentreffen am 2017-01-10/11/17/18 um 16:00 Uhr, in Raum T9.007
    • danach erfolgt die Bekanntgabe der Gutachter/innen auf dieser Webseite
  • Schriftliche Abgabe bis 2017-03-15 an die zugewiesenen Gutachter/innen (s.u.) und zieris@inf.fu-berlin.de
  • Gutachtenabgabe bis 2017-03-22 an die jeweiligen Autoren und zieris@inf.fu-berlin.de
  • Fertige Ausarbeitung bis 2017-03-27 um 08:00 Uhr an zieris@inf.fu-berlin.de
  • Blockkurs vom 2017-03-27 bis 2017-03-30 jeweils von 10:00 bis 18:00 Uhr, Raum T9.053

Hinweise und sonstiges Material

  • Folien der Einführungsveranstaltung vom 2016-11-14: PDF
  • Programmheft für die Vortragswoche: PDF
  • Sammelband der Ausarbeitungen: PDF

Ratgeber:

Vorlagen:

Vortragsthemen

Generell gilt für alle Themen, dass nicht technische Details, sondern Prozessaspekte im Vordergrund stehen (erstere veralten auch viel zu schnell). Das heißt dass z.B. für einen Vortrag mit dem Thema "Testing" nicht die Konfiguration von Werkzeugen wie JUnit relevant ist, sondern wie z.B. Test-Driven Development in den restlichen Softwareentwicklungsprozess "ausstrahlt". Als Leitlinie sollen die agilen Werte und Prinzipien herhalten: Wie werden diese durch die jeweiligen Methoden und Praktiken bedient?

Folgende Literatur gilt für alle Vorträge (darüber hinaus schadet es nicht, auch mal "themenfremd" durch die Literaturliste zu scrollen):

Hinweis zur Spalte "Quellen": Die Referenzen im oberen Teil jeder Themenzeile sind die Kernliteratur; jene im unteren Teil sind ergänzende Literatur (häufig z.B. Abschnitte aus CopHar05 -- gut zum Querlesen) und Vorschläge für Vertiefungen.

Kürzel & Beschreibung Quellen NameSorted ascending Schrift­gut­achter Vortrags­gut­achter Termin Aus­ar­bei­tung & Folien
Good Tests
Eigenschaften und Bedeutung guter Tests
MesSmiAnd03, CauShuPun13
Fowler07, CopHar05 (Abs. 4.2.29, 4.2.30)
         
abgesagt
TDD
Test-Driven Development
GerSmiMil04, CanCimGar06, RafMis13
Studien aus RafMis13, CopHar05 (Abs. 4.2.29, 4.2.30)
Alexander Schulz Lilli Walter,
Paul Harfenmeister
  2017-03-28  
DVC Compare
Vergleich verschiedener Branching-Stile, erhoffte und tatsächliche Auswirkungen
OSullivan09, BriCodShm14, GouPinDeu14, ShiBirZim12
PreTanLin11, PhiSilWal11, CopHar05 (Abs. 4.1.5, 4.1.6, 5.2.16)
Bernd Sahre Samer El-Safadi,
Felix Gericke
  2017-03-30  
XP
Zusammenwirken der einzelnen Praktiken
Beck99, Beck00XP1, Beck04XP2, AbrSalRon02 (Abs. 3.1)
NawJasWoj02, C2XP, RumSch01, RumSch02, LayWilCun04, RobSha03
Christopher Kilian Maria Sigal,
Perrine Trachsel
  2017-03-27  
User Stories
Verwendung, Bedeutung für Entwickler und andere Rollen
Meszaros04, Smialek05, BreLei02
Cohn04 (Kap. 1-7, 12-15), C2UserStory
Daniel Paul Niaz Faridani-Rad,
Alexander Schulz
  2017-03-29  
CI
Continuous Integration
Beck00XP1 (Kap. 10, 11, 16), StaBos14, Rasmusson04, Miller08
Fowler06, CopHar05 (Abs. 4.1.4, 4.1.5, 4.1.6)
Felix Gericke Paul Harfenmeister,
Alexander Schulz
  2017-03-28  
Agiles Manifest
Motivation, Werte & Prinzipien
Agile Manifesto Franz Zieris     2016-11-14 18:45 Folien
PP Research
Methoden und Resultate quantitativer und qualitativer PP-Forschung
AllDarTol05, ChoHur07, BryRomBou08, SalPre08, HanDybAri09
(PP-Literatur, s.o.), ZiePre14
Hisham Chbeib Maria Sigal,
Lilli Walter
  2017-03-29  
Schedule
Planung in agilen Projekten, Umgang mit Ressource Zeit
Beck00XP1 (Kap. 10, 11, 15), ShoWar08 (Kap. 8), CopHar05 (Abs. 4.1.2, 4.1.13)
CopHar05 (Abs. 4.1.3, 4.1.9--4.1.11, 4.1.20--4.1.23, 4.1.25, 4.1.26, 4.2.9, 4.2.10), Smits06
Lilli Walter Linus Helfmann,
Bernd Sahre
  2017-03-30  
DVC Transition
Übergang von zentraler zu verteilter Versionsverwaltung
OSullivan09, DeASil09, MusBirNag14
CopHar05 (Abs. 4.1.5, 4.1.6, 5.2.16)
Linus Helfmann Sven Heinrichsen,
Bernd Sahre
  2017-03-30  
Distribution
Agile Prozesse für verteilte Teams
BraJoy05, KirJaiCor01, MauMar02, Poole04, ZieSal13
CopHar05 (Abs. 5.1.7, 5.1.10)
Mai-Phú Pham Niaz Faridani-Rad,
Christopher Kilian
  2017-03-27  
PP
Pair Programming: Einführung, Vorzüge, Probleme
Nosek98, CocWil01, WilKes00, WilKesCun00, CanCimCor05
LuiCha03, NawJasOle05, SilSucVla12, ZiePre16
Maria Sigal Hisham Chbeib,
Linus Helfmann
  2017-03-29  
Team
Agile Werte und Praktiken als Team- und Motivations­faktoren
ShaRob04, Chong05, WoiBel14
RobSha03, RobSha04, ManMelMar04, DinDyb12, ZieSal13, CopHar05 (Abs. 4.1.1, 4.2.11, 4.2.12, 4.2.13, 4.2.25, 5.1.10, 5.1.13, 5.1.20, 5.2.7)
Niaz Faridani-Rad Felix Gericke,
Mai-Phú Pham
  2017-03-27  
CD
Continuous Deployment
ClaSveAur15, RodHagLwa17
PreSchZie16, (siehe CI für die Grundlagen)
Paul Harfenmeister Christopher Kilian,
Daniel Paul
  2017-03-28  
Customer
Einbindung des Kunden
MarNobBid03, Martin03, FarNarKap02, Deursen01
WoiBel14, CopHar05 (Abs. 4.1.7, 4.2.6, 4.2.7), C2Customer
Perrine Trachsel Daniel Paul,
Mai-Phú Pham
  2017-03-29  
Kanban
Kanban als weiterer Vertreter agiler Prozesse
Anderson10, NikKaj11, LisSchFag14
SjoJohSol12, CopHar05 (Abs. 4.1.21, 4.1.22, 5.1.3, 5.1.4), Smits06
Samer El-Safadi Hisham Chbeib,
Sven Heinrichsen
  2017-03-30  
Scrum
Einführung, Ideen, Rollen, Zeremonien, Artefakte
ScrumGuide, Schwaber95, AbrSalRon02 (Abs. 3.2), RisJan00
JenZil03, Sutherland05, CopHar05 (Abs. 4.1.1, 5.2.7)
Sven Heinrichsen Samer El-Safai,
Perrine Trachsel
  2017-03-27  

Literatur

Zugriff auf die verlinkten PDFs ist nur aus dem Uninetz möglich. Für Zugang zu nicht verlinkten Quellen bitte mit dem Veranstalter sprechen, oder selbst eine Bibliothek aufsuchen.

AbrSalRon02 Abrahamsson et al.: "Agile Software Development Methods: Review and Analysis" (Technical Report, 2002)
AgileManifesto Manifesto of Agile Software Development, http://www.agilemanifesto.org (2001)
AllDarTol05 Ally et al.: "A Framework for Understanding the Factors Influencing Pair Programming Success" (XP 2005)
Anderson10 Anderson: "Kanban: Successful Evolutionary Change for Your Technology Organizations" (Blue Hole Press, 2010)
Beck99 Beck: "Embracing Change with Extreme Programming" (IEEE Computer, 1999)
Beck00XP1 Beck: "Extreme Programming Explained: Embrace Change" (Addison-Wesley, 2000)
Beck04XP2 Beck: "Extreme Programming Explained: Embrace Change, 2nd Edition" (Addison-Wesley, 2004)
BraJoy05 Braithwaite & Joyce: "XP Expanded: Distributed Extreme Programming" (XP 2005)
BreLei02 Breitman & Leite: "Managing User Stories" (TCRE 2002)
BriCodShm14 Brindescu et al.: "How Do Centralized and Distributed Version Control Systems Impact Software Changes?" (ICSE 2014)
BryRomBou08 Bryant et al.: "Pair programming and the mysterious role of the navigator" (Int. J. Human-Computer Studies, 2008)
C2Customer Cunningham Wiki: http://www.c2.com/cgi/wiki?XpCustomerQuotes
C2UserStory Cunningham Wiki: http://www.c2.com/cgi/wiki?UserStory
C2XP Cunningham Wiki: http://www.c2.com/cgi/wiki?ExtremeProgrammingRoadmap
CanCimCor05 Canfora et al.: "Empirical Study on the Productivity of the Pair Programming" (XP 2005)
CanCimGar06 Canfora et al.: "Productivity of Test Driven Development: A Controlled Experiment with Professionals" (PROFES 2006)
CauShuPun13 Causevic et al.: "Effects of Negative Testing on TDD: An Industrial Experiment" (XP 2013)
ChoHur07 Chong & Hurlbutt: "The Social Dynamics of Pair Programming" (ICSE 2007)
Chong05 Chong: "Social Behaviors on XP and non-XP teams: A Comparative Study" (ADC 2005)
ClaSveAur15 Claps et al.: "On the journey to continuous deployment: Technical and social challenges along the way" (Information and Software Technology, 2015)
CocWil01 Cockburn & Williams: "The Costs and Benefits of Pair Programming" (from "Extreme Progamming Examined", Addison-Wesley, 2001)
Cohn04 Cohn: "User Stories Applied for Agile Software Development" (Addison-Wesley, 2004)
CopHar05 Coplien & Harrison: "Organizational Patterns of Agile Software Development" (Pearson Prentice Hall, 2005)
DeASil09 de Alwis & Sillito: "Why Are Software Projects Moving From Centralized to Decentralized Version Control Systems?" (CHASE 2009)
Deursen01 Deursen: "Customer Involvement in Extreme Programming: XP2001 Workshop Report" (ACM SIGSOFT Software Engineering Notes, 2001)
DinDyb12 Dingsøyr & Dybå: "Team Effectiveness in Software Development. Human and Cooperative Aspects in Team Effectiveness Models and Priorities for Future Studies" (CHASE 2012)
FarNarKap02 Farell et al.: "Towards an Effective Onsite Customer Practice" (XP 2002)
Fowler99 Fowler: "Refactoring. Improving the Design of Existing Code" (Addison-Wesley, 1999)
Fowler06 Fowler: "Continuous Integration", http://martinfowler.com/articles/continuousIntegration.html (2006)
Fowler07 Fowler: "Mocks Aren't Stubs", http://martinfowler.com/articles/mocksArentStubs.html (2007)
GeDuBMur12 Ge et al.: "Reconciling Manual and Automatic Refactoring" (ICSE 2012)
GerSmiMil04 Geras et al.: "A Prototype Empirical Evaluation of Test Driven Development" (METRICS 2004)
GouPinDeu14 Gousios et al.: "An Exploratory Study of the Pull-Based Software Development Modell" (ICSE 2014)
HanDybAri09 Hannay et al.: "The effectiveness of pair programming: A meta-analysis" (Information and Software Technology, 2009)
JenZil03 Jensen & Zilmer: "Cross-Continent Development Using Scrum and XP" (XP 2003)
KimCaiKim11 Kim et al.: "An Empirical Investigation into the Role of API-Level Refactorings during Software Evolution" (ICSE 2011)
KirJaiCor01 Kircher et al.: "Distributed eXtreme Programming" (XP 2001)
KvaBakLie04 Kvam et al.: "Cynical Reengineering" (XP 2004)
LayWilCun04 Layman et al.: "Exploring Extreme Programming in Context: An Industrial Case Study" (ADC 2004)
Lippert04 Lippert: "Towards a Proper Integration of Large Refactorings in Agile Software Development" (XP 2004)
LisSchFag14 Liskin et al.: "Understanding the Role of Requirements Artifacts in Kanban" (CHASE 2014)
LuiCha03 Lui & Chan: "When Does a Pair Outperform Two Individuals?" (XP 2003)
ManMelMar04 Mannaro et al.: "Empirical Analysis on the Satisfaction of IT Employees Comparing XP Practices with Other Software Development Methodologies" (XP 2004)
MarNobBid03 Martin et al.: "Begin Jane Malkovich: A Look Into the World of an XP Customer" (XP 2003)
Martin03 Martin: "A Case Study: Exploring the role of customer on extreme programming projects" (Technical Report, 2003)
MauMar02 Maurer & Martel: "Process Support for Distributed Extreme Programming Teams" (ICSE 2002, GSD Workshop)
MesSmiAnd03 Meszaros et al.: "The Test Automation Manifesto" (XP/Agile 2003)
Meszaros04 Meszaros: "Using Storyotypes to Split Bloated XP Stories" (XP/Agile 2004)
Miller08 Miller: "A Hundred Days of Continuous Integration" (Agile 2008)
MusBirNag14 Muşlu et al.: "Transition from Centralized to Decentralized Version Control Systems: A Case Study on Reasons, Barriers, and Outcomes" (ICSE 2014)
NawJasOle05 Nawrocki et al.: "Pair Programming vs. Side-by-Side Programming" (EuroSPI 2005)
NawJasWoj02 Nawrocki et al.: "Extreme Programming Modified: Embrace Requirements Engineering Practices" (RE 2002)
NikKaj11 Nikitina & Kajko-Mattsson: "Developer-Driven Big-Bang Process Transition from Scrum to Kanban" (ICSSP 2011)
Nosek98 Nosek: "The Case for Collaborative Programming" (Communications of the ACM, 1998)
OSullivan09 O'Sullivan: "Making Sense of Revision-control Systems" (ACM Queue, 2009)
PhiSilWal11 Phillips et al.: "Branching and Merging: An Investigation into Current Version Control Practices" (CHASE 2011)
Poole04 Poole: "Distributed Product Development Using Extreme Programming" (XP 2004)
PreSchZie16 Prechelt et al.: "Quality Experience: A Grounded Theory of Successful Agile Projects Without Dedicated Testers" (ICSE 2016)
PreTanLin11 Premraj et al.: "To Branch or Not to Branch?" (ICSSP 2011)
RafMis13 Rafique & Mišić: "The Effects of Test-Driven Development on External Quality and Productivity: A Meta-Analysis" (TSE, 2013)
Rasmusson04 Rasmusson: "Long Build Trouble Shooting Guide" (XP/Agile 2004)
RisJan00 Rising & Janoff: "The Scrum Software Development Process for Small Teams" (IEEE Software, 2000)
RobSha03 Robinson & Sharp: "XP Culture: Why the twelve practices both are and are not the most significant thing" (ADC 2003)
RobSha04 Robinson & Sharp: "The Characteristics of XP Teams" (XP 2004)
RodHagLwa17 Rodríguez et al.: "Continuous deployment of software intensive products and services: A systematic mapping study" (Journal of Systems and Software, 2017)
RumSch01 Rumpe & Schröder: "Quantitative Untersuchung des Extreme Programming Prozesses" (Technical Report, 2001)
RumSch02 Rumpe & Schröder: "Quantitative Survey on Extreme Programming Projects" (XP 2002)
SalPre08 Salinger & Prechelt: "What happens during Pair Programming?" (PPIG 2008)
ScrumGuide Sutherland & Schwaber: Scrum Guide, http://www.scrumguides.org
ShaRob04 Sharp & Robinson: "An Ethnographic Study of XP Practice" (Empirical Software Engineering, 2004)
ShiBirZim12 Shihab et al.: "The Effect of Branching Strategies on Software Quality" (ESEM 2012)
ShoWar08 Shore & Warden: "The Art of Agile Development" (O'Reilly, 2008)
Schwaber95 Schwaber: "SCRUM Development Process" (OOPSLA 1995)
SilSucVla12 Sillitti et al.: "Understanding the Impact of Pair Programming on Developers Attention" (ICSE 2012)
SjoJohSol12 Sjøberg et al.: "Quantifying the Effect of Using Kanban versus Scrum" (IEEE Software, 2012)
Smialek05 Śmiałek: "From User Stories to Code in One Day?" (XP 2005)
Smits06 Smits: "5 Levels of Agile Planning: From Enterprise Product Vision to Team Stand-up" (Whitepaper, Rally Software Development Corporation, 2006)
StaBos14 Ståhl & Bosch: "Automated Software Integration Flows in Industry: A Multiple-Case Study" (ICSE 2014)
Sutherland05 Sutherland: "Future of Scrum: Parallel Pipelining of Sprints in Complex Projects" (ADC 2005)
VakCheNeg12 Vakilian et al.: "Use, Disuse, and Misuse of Automated Refactorings" (ICSE 2012)
WilKes00 Williams & Kessler: "All I Really Need to know about Pair Programming I Learned in Kindergarten" (Communications of the ACM, 2000)
WilKesCun00 Williams et al.: "Strengthening the Case for Pair Programming" (IEEE Software, 2000)
WoiBel14 Woit & Bell: "Do XP Customer-Developer Interactions Impact Motivation? Findings from an Industrial Case Study" (CHASE 2014)
ZiePre14 Zieris & Prechelt: "On Knowledge Transfer Skill in Pair Programming" (ESEM 2014)
ZiePre16 Zieris & Prechelt: "Observations on Knowledge Transfer of Professional Software Developers during Pair Programming" (ICSE 2016)
ZieSal13 Zieris & Salinger: "Doing Scrum Rather Than Being Agile: A Case Study on Actual Nearshoring Practices" (ICGSE 2013)

Topic revision: r19 - 27 Mar 2017, FranzZieris
 
  • Printable version of this topic (p) Printable version of this topic (p)