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.
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):Thema | Kurzbeschreibung | Quellen | Name | Schriftgutachter | Vortragsgutachter | Termin | Ausarbeitung & Folien |
---|---|---|---|---|---|---|---|
Agiles Manifest | Motivation, Werte & Prinzipien | Agile Manifesto | Franz Zieris | 11.11.14 18:45 | Folien | ||
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 |
|
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 Motivationsfaktoren | 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 |
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)