Proseminar "Methoden und Praktiken der Agilen Softwareentwicklung"
Wintersemester 2014/15

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.

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, 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 11.11.2014 um 18:00 Uhr, in Raum T9/049
  • Themenfavoriten bis 14.11.2014 um 16 Uhr per Mail an zieris@inf.fu-berlin.de
    • Drei Themenfavoriten aus der Liste unten wählen (gerne in die angegebene Literatur reinschnuppern).
    • Dabei bitte mindestens ein Thema wählen, das einen stargold hat und höchstens eines von denen mit star-none.
  • Themenvergabe am 18.11.2014 auf dieser Webseite
    • Außerdem Bekanntgabe der Schriftgutachter
  • Zwischentreffen jeweils 17:00 Uhr in Raum T9/007 (bitte Hinweise beachten):
    • 12.01.2015: Themen XP und Customer
    • 13.01.2015: Themen PP-Research, Testing und Refactoring
    • 14.01.2015: Themen Team, Scrum, Kanban
  • Schriftliche Abgabe bis 11.03.2015, 12:00 Uhr an die zugewiesenen Gutachter (s.u.) und zieris@inf.fu-berlin.de
  • Gutachtenabgabe bis 18.03.2015, 12:00 Uhr an die jeweiligen Autoren und zieris@inf.fu-berlin.de
  • Blockkurs vom 23.03. - 24.03.2015 jeweils von 10 bis 15 Uhr (c.t.), in Raum T9/049

Hinweise und sonstiges Material

Ratgeber:

Vorlagen:

Vortragsthemen

Generell gilt für alle Themen, dass nicht technische Details, sondern Prozessaspekte im Vordergrund stehen (erstere veralten auch viel zu schnell). D.h. dass z.B. für den Vortrag "Testing" nicht die Konfiguration von JUnit relevant ist, sondern wie z.B. TDD in den restlichen Softwareentwicklungsprozess "ausstrahlt". Als Leitlinie können (und 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überhinaus 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.

Thema Kurz­beschreibung Quellen Name Schrift­gut­achter Vortrags­gut­achter Termin Aus­ar­bei­tung & Folien Sorted descending
Scrum Einführung, Ideen, Rollen, Zeremonien, Artefakte ScrumGuide, Schwaber95, AbrSalRon02 (Abs. 3.2), RisJan00
JenZil03, Sutherland05, CopHar05 (Abs. 4.1.1, 5.2.7)
Robert Philipps Dennis Kunz
Alexander Dimitrov
  23.03.15 10:30 Folien
Ausarbeitung
Refactoring Motivation, wichtige Refactorings Fowler99, KvaBakLie04, Lippert04
KimCaiKim11, GeDuBMur12, VakCheNeg12
Alexander Dimitrov Robert Philipps
Dennis Kunz
  23.03.15 11:30 Folien
Ausarbeitung
Pair Programming On Knowledge Transfer Skill in Pair Programming ZiePre14 Franz Zieris     23.03.15 12:30 Folien
Ausarbeitung
User Stories Verwendung, Bedeutung für Entwickler und andere Rollen Meszaros04, Smialek05, BreLei02
Cohn04 (Kap. 1-7, 12-15), C2UserStory
Xixuan Zhang Robert Philipps   24.03.15 10:30 Folien
Ausarbeitung
XP Zusammenwirken der einzelnen Praktiken Beck99, Beck00XP1, Beck04XP2, AbrSalRon02 (Abs. 3.1)
NawJasWoj02, C2XP
Dennis Kunz Jennifer Gebske
Borislav Iliev
  24.03.15 11:30 Folien
Ausarbeitung
Agiles Manifest Motivation, Werte & Prinzipien Agile Manifesto Franz Zieris     11.11.14 18:45 Folien
ausgefallen
Customer Einbindung des Kunden MarNobBid03, Martin03, FarNarKap02, Deursen01
WoiBel14, CopHar05 (Abs. 4.1.7, 4.2.6, 4.2.7), C2Customer
Jennifer Gebske Borislav Iliev
Alexander Dimitrov
     
Team Agile Werte und Praktiken als Team- und Motivations­faktoren ShaRob04, Chong05, WoiBel14
RobSha03, RobSha04, ManMelMar04, DinDyb12, 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)
Borislav Iliev Jennifer Gebske
Robert Philipps
     

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)
BowMayMel02 Bowers et al.: "Tailoring XP for Large System Mission Critical Software Development" (XP/Agile 2002)
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)
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)
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)
Link02 Link: "Unit Tests mit Java. Der Test-First-Ansatz" (dpunkt, 2002)
LinMutDag04 Lindvall et al.: "Agile Software Development in Large Organizations" (IEEE Computer, 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)
NieMcM05 Nielsen & McMunn: "The Agile Journey: Adopting XP in a Large Financial Services Organization" (XP 2005)
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)
PreTanLin11 Premraj et al.: "To Branch or Not to Branch?" (ICSSP 2011)
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)
RumSch01 Rumpe & Schröder: "Quantitative Untersuchung des Extreme Programming Processes" (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)
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)
WilKreLay04 Williams et al.: "Toward a Framework for Evaluating Extreme Programming" (EASE 2004)
WilLayKre04 Williams et al.: "Extreme Programming Evaluation Framework for Object-Oriented Languages Version 1.4" (Technical Report, 2004)
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)
ZiePre15 Zieris & Prechelt: "On Knowledge Transfer Skill in Pair Programming" (SE 2015)