23. Januar, Zürich-Oerlikon
Effizientere agile Teams mit Git Christian Hassa, Managing Partner (@chrishassa) Daniel Sack, Development Expert (@danielthecoder) TechTalk Software AG
Agenda Unser Weg zu Git Demo: Entwicklerworkflow Lessons Learned Agenda
Unser Weg zu Git
Arbeitsumfeld Agile Entwicklung und Consulting Enterprise Applikationen Mehrere Teams (~70 Mitarbeiter) Standorte: Wien, Budapest, Zürich
Ihre Arbeitsumfeld? Arbeit mit agilen Methoden? Von Git gehört aber noch nicht damit gearbeitet? Bereits mit Git gearbeitet? Im täglichen Einsatz? Auf TFS gehostet?
Product Owner Herausforderungen Hotfixes während des Sprints Unfertige Stories am Sprintende Sichtbarer Fortschritt während des Sprints
Team Herausforderungen Parallelisierung von Arbeit Frühe Integration und Test Isolation riskanter Änderungen
Git Vorteile Leichtgewichtig Filesystem basierend Einfaches Branchen und Kontextwechsel Flexibel Explizites, zeilenbasiertes Staging und Commit von Änderungen Refactoring von (lokalen) Commits Lokaler Workflow Alles zuerst lokal Selektives Sharing von Änderungen (upstream) Ergebnisse werden früher/öfter geshared Einfacheres Merging Früheres Testen Isolation von WIP/riskante Änderungen Selektive Auslieferung von Hotfixes Lokale Komplexität verbergen Einfacher verständliche History Disconnected Arbeiten
Bevor Microsoft Git unterstützt hat Mühsame Installation Parallele Rechteverwaltung Aufwändige TFS Build Integration Keine Integration mit TFS Workitem Tracking Beschränkte Visual Studio Integration
Höhere Produktivität Git ist nicht die einzige Lösung für diese Herausforderungen, es macht aber vieles einfacher!
Git 1x1
Demo Entwicklung im Team
Repositories, Team und Deployment
Unsere Mission
Pairing Session mit Data
Data s Arbeit bisher
Pairing Session mit Jordi
Dringender Hotfix für Produktion!
Jordi ist für heute fertig
Rückblick auf Jordi s heutige Arbeit
Mission De-Briefing Data: Erweiterung Buchmodell frühzeitig geshared Jordi: Merge während Implementierung US1 Jordi: Context Switch für Hotfix #317 Jordi: Push Hotfix #317 in Produktion Jordi: Fertige US1 bereit für Test vor Sprintende
Lessons Learned
Aussagen verschiedener Teams Unsere Commits sollten noch kleiner werden Commit-Historie jetzt ein wertvolles Artefakt Ad-hoc Pairing ist einfacher geworden Kleinere Entwicklungs-Tasks in-progress
Branchen ist einfach, Mergen ist schwer Gemeinsame Strategie im Team sicherstellen (Definition of Done, Diagramm auf der Wand, ) Master sauber halten (Ergebnisse für alle integrieren) Branches pro Thema Neue Branches nur von bekannten Status (z.b. sauberer Master) Granularität für nachvollziehbare Commits Optimierte/vereinfachte Commit-History vor Push Änderungen vor Merge reviewen
Unser Entwicklersetup Git for Windows Git Extensions powershell (poshgit), bash, cmd, conemu, TFS 2013 VS2012, VS2013, Eclipse, Xcode, IntelliJ IDEA,.. git-tf/git-tfs
Auf Git migrieren Von TFS Erfordert neues Team Project Export/Import Commit History mit: Git-TF or Git-TFS Grosse TFS repositories in mehrere Git sub-module Von SVN Git kann von SVN Repositories pullen Teams Team: erwarteter Nutzen sollte klar sein Lernkurve: Training und/oder Coaching Richtiger Moment: neues Projekt, neue Release, Stufenweiser Rollout
Zusammenfassung Git ist keine Silver Bullet Erfordert Disziplin & etablierte Praktiken Self-organizing Teams, ATDD/TDD, Continuous Integration, Git ist aber auch keine Rocket Science Effizienzsteigerung für das Team Kontakt für Fragen: Christian Hassa (ch@techtalk.ch), Daniel Sack (ds@techtalk.ch)
Nächste Veranstaltungen mit TechTalk in der Schweiz Product Owner Survival Camp Zürich 30. März 1. April 2014 www.productownersurvivalcamp.com Mobile App Development mit Xamarin 7. Mai 2014 Zürich 12. Juni 2014 Basel www.techtalk.ch Swiss Requirement Day 2014 Impact Maps und Story Maps: liefern was wirklich zählt 18. Juni 2014 Zürich Kontakt für Fragen: Christian Hassa (ch@techtalk.ch), Daniel Sack (ds@techtalk.ch)
Product Owner Survival Camp Zwei Tage Intensivtraining für agiles Anforderungsmanagement Impact Mapping mit Gojko Adzic Story Mapping mit Christian Hassa Specification-by-Example mit David Evans Feature Injection mit Chris Matts Termine 2014 Zürich: 31. März 1. April 2014 Paris: 28.-29. April 2014 München: 20.-21. Mai 2014 Rijswijk: 3.-4. Juni 2014 Frankfurt: 14.-15. Oktober 2014
Specification By Example mit SpecFlow 3 Tage Intensivworkshop 13.-15. Mai in Wien Gojko Adzic, Autor von Specification-By-Example Gaspar Nagy, Lead Developer von SpecFlow