von agiler softwareentwicklung hin zu continuous … · from systems in actual use with customers...
TRANSCRIPT
Von agiler Softwareentwicklung hin zu
Continuous Deployment
Seminar „Beiträge zum Software Engineering“
AG Software Engineering
Freie Universität Berlin
Patrick Hobusch, 16.02.2017
Thema
• Prozesse und Praktiken jenseits von agiler Softwareentwicklung
• Hürden und Schlüsselinitiativen zum Erfolg
• „Stairway to Heaven“
Von agiler Softwareentwicklung hin zu Continuous Deployment – Patrick Hobusch 2
Mehrfache Fallstudie
• Helena Holmström Olsson, Jan Bosch, and Hiva Alahyari. "Towards R&D as innovation experiment systems: A frameworkfor moving beyond agile software development." Proceedings ofthe IASTED. 2013.
• Halbstrukturierte Interviews mit offenen Fragen
• Insgesamt 32 Interviews mit mind. 1 Stunde Dauer in fünf Unternehmen
• Datenanalyse angelehnt an „Grounded Theory“
Von agiler Softwareentwicklung hin zu Continuous Deployment – Patrick Hobusch 3
Agile Softwareentwicklung
Von agiler Softwareentwicklung hin zu Continuous Deployment – Patrick Hobusch 4
• Änderungsängste und -kosten reduzieren
• Software mit hohem Wert
• Gegenbewegung zur „traditionellen“, plangetriebenen Softwareentwicklung
Continuous Integration
• Regelmäßiger Prozess, in dem Änderungen an der Software integriert werden
• Unterstützung durch Werkzeuge
• Schließt oft weitere Aktionen ein• Testausführung
• Codeanalyse
• etc.
Von agiler Softwareentwicklung hin zu Continuous Deployment – Patrick Hobusch 5
Continuous Deployment
• Continuous Delivery• Auslieferungsfähige Software zu jeder Änderung
• Manuelle Auslieferung einzelner Artefakte
• Continuous Deployment• Softwareauslieferung zu jeder Änderung
Von agiler Softwareentwicklung hin zu Continuous Deployment – Patrick Hobusch 6
http://blog.crisp.se/2013/02/05/yassalsundman/continuous-delivery-vs-continuous-deployment
Innovation Experiment Systems
• Datenerhebung direkt beim Kunden
• Ableitung von neuen Anforderungen
• Begriff geprägt von Jan Bosch
• „[…] requirements evolve in real-time based on data collected from systems in actual use with customers instead of being frozen early based on the opinions of product management […]”
Von agiler Softwareentwicklung hin zu Continuous Deployment – Patrick Hobusch 7
Vorkommen der Stufen in der agilen SE
• Welche Stufen der „Stairway to Heaven“ werden von der agilen Softwareentwicklung abgedeckt?
• Betrachtung von
• Agile Manifesto
• Extreme Programming
• Scrum
Von agiler Softwareentwicklung hin zu Continuous Deployment – Patrick Hobusch 8
Prinzipien des „Agile Manifesto“
• Frühe, kontinuierliche Auslieferung von wertvoller Software
• Offenheit gegenüber Anforderungsänderungen
• Lieferung funktionierender Software in kurzen Zeitspannen
• Tägliche Zusammenarbeit von Fachexperten und Entwicklern
• Motivierte Individuen, Unterstützung, Vertrauen
• Informationsaustausch im Gespräch von Angesicht zu Angesicht
• Funktionierende Software als Fortschrittsmaß
• Nachhaltige Entwicklung
• Technische Exzellenz und gutes Design
• Einfachheit
• Selbstorganisierte Teams
• Reflexion
Von agiler Softwareentwicklung hin zu Continuous Deployment – Patrick Hobusch 9
Extreme Programming
• Sit Together
• Whole Team
• Informative Workspace
• Energized Work
• Pair Programming
• Stories
• Weekly Cycle
• Quarterly Cycle
• Slack
• Ten-Minute Build
• Continuous Integration
• Test-First Programming
• Incremental Design
Von agiler Softwareentwicklung hin zu Continuous Deployment – Patrick Hobusch 10
Scrum
Von agiler Softwareentwicklung hin zu Continuous Deployment – Patrick Hobusch 11
http://scrum-master.de/Was_ist_Scrum/Scrum_auf_einer_Seite_erklaert
Fazit zum Vorkommen in agiler SE
• Continuous Integration enthalten
• Continuous Deployment häufig nicht
• Innovation Experiment Systems nicht genannt
Von agiler Softwareentwicklung hin zu Continuous Deployment – Patrick Hobusch 12
Schritt zu agiler Organisation
• Vorteile• Kürzere Entwicklungszyklen
• Verbesserte Reaktion auf Änderungen von Kundenanforderungen
• Hürden• Externe Abhängigkeiten auf (nicht-agile) Teams und Zulieferer
• Kontrolle durch Management
• Komplexe Unternehmen
• Schlüsselinitiativen
Von agiler Softwareentwicklung hin zu Continuous Deployment – Patrick Hobusch 13
Ökosystem Neuverhandlung von Zulieferer-Verträgen, Zustimmung aller Interessengruppen, Angleichung der Prozesse
Unternehmen Zusage des Managements, Bewusstsein für feature-orienterteEntwicklung schaffen, Teamleiter statt Projektmanagern
Architektur Architekten-Unterstützung in jedem Team, Feature-Teams
Ausführung Selbstgesteuerte Teambildung
Schritt zu Continuous Integration
• Vorteile• Zu jeder Zeit ein (potentiell) auslieferbares Produkt
• Qualitätssteigerung
• Hürden• Fehlende Testautomatisierung
• Fehlende Disziplin in Bezug auf Testfälle und Werkzeuge
• Notwendigkeit des Erlernens neuer Technologien und Werkzeuge
• Schlüsselinitiativen
Von agiler Softwareentwicklung hin zu Continuous Deployment – Patrick Hobusch 14
Ökosystem Einbeziehung von externen Zulieferern
Unternehmen Abkehr von Meilensteinen, regelmäßige Auslieferungen
Architektur Modularisierung der Software
Ausführung TDD, Testautomatisierung, Angleichung der Prozesse „Validierung“ und „Verifikation“, Vermeidung von Branching
Schritt zu Continuous Deployment
• Vorteile• Günstigere und schnellere Entwicklung durch früheres Feedback
• Hürden• Fehlendes Wissen über Qualität des Gesamtproduktes
• Seltsames Gefühl aufgrund weicherer Anforderungen(agil arbeiten vs. regelmäßig ausliefern)
• Schlüsselinitiativen
Von agiler Softwareentwicklung hin zu Continuous Deployment – Patrick Hobusch 15
Ökosystem Führende Kunden ausmachen, mit denen angefangen wird
Unternehmen Anpassung des Geschäftsmodells
Architektur Roll-back-Mechanismen, Auslieferung einzelner Komponenten
Ausführung Angleichung des „Release“ Prozesses
Schritt zu Innovation Experiment System
• Vorteile• Schnelles Feedback zu alternativen Lösungen
• Hürden• Widerstand gegen Auslieferung von „experimentellen Features“
(Entwickler als auch Kunden)
• Schlüsselinitiativen
Von agiler Softwareentwicklung hin zu Continuous Deployment – Patrick Hobusch 16
Ökosystem Einbeziehung des Kunden, schnelle Antworten möglich
Unternehmen Geschäfts- und Preismodelle unterstützen Änderungen in kurzen Zyklen auf Basis von Kundennutzungsdaten
Architektur Infrastruktur ermöglicht Anpassungen zur Laufzeit, Architektur mit Datenerhebungsmechanismen
Ausführung „Anforderung“, „Forschung & Entwicklung“, „Validierung“ und „Release“ müssen alle zusammenarbeiten
Vergleich mit Studie zur agilen SE
• Minna Pikkarainen, et al. "Strengths and barriers behind the successful agile deployment—insights from the three software intensive companies in Finland." Empirical software engineering 17.6 (2012): 675-702.
• Mehrfache Fallstudie in 3 Unternehmen mit Schwerpunkt Scrum
• 5 Pilotprojekte
• 40 Halbstrukturierte Interviews (mit mind. 1 Stunde Dauer), 5 Post-mortem Meetings, 12 Verbesserungsworkshops
Von agiler Softwareentwicklung hin zu Continuous Deployment – Patrick Hobusch 17
Von agiler Softwareentwicklung hin zu Continuous Deployment – Patrick Hobusch 18
Kategorie Hürden
Fall 1 Fall 2 Fall 3
Architektur --
Kundenbedürfnisse -
Technische Umgebung -- --
Kommunikation und Mitarbeit +
Schätzung und Planung - --
Anforderungsmanagement -- - -
Projektüberwachung -
Testen
Domänenwissen -
Lernen
Verbesserungstechniken
Selbstorganisierte Teams +
UI Prozess
Rollen und Verantwortlichkeiten
Dokumentation
Versionskontrolle -
Häufige Hürden I
• Architektur• Unflexibel mit festgefahrenen technischen Standards
• Technische Umgebung• Einsatz von Werkzeugen für Continuous Integration• Schwierige Synchronisation zwischen HW- und SW-Entwicklung in
iterativen Zyklen
• Testen• Fehlende automatische Tests
• Kundenbedürfnisse• Kunden kaufen lieber ein Produkt, das sofort alle Anforderungen
abdeckt
Von agiler Softwareentwicklung hin zu Continuous Deployment – Patrick Hobusch 19
Häufige Hürden II
• Wissen• Fehlendes Wissen über agile Methoden bei Entwicklern und
Managern
• Fehlendes Wissen über Anwendungsdomäne
• Schätzung und Planung• Ungünstige Ressourcenzuteilung
• Entwickler in mehreren Projekten
• Zu große, komplexe Projekte
• Unklare Verantwortlichkeiten
• Traditionelle Pläne immer noch vorhanden• Prioritäten missverständlich
• Aufwandschätzung anfangs schwierig
Von agiler Softwareentwicklung hin zu Continuous Deployment – Patrick Hobusch 20
Zusammenfassung
• Wichtigste Vorteile und Hürden beim Übergang hin zu Continuous Deployment bzw. Innovation Experiment Systems vorgestellt
• Schlüsselinitiativen für die Bereiche „Ökosystem“, „Geschäftsmodell“, „Architektur“ und „Ausführung“ präsentiert
• Zusammen bilden diese ein Framework, das in den betrachteten Unternehmen erfolgreich zum Erreichen der einzelnen Stufen führte, welches jedoch auch noch erweitert werden sollte
Von agiler Softwareentwicklung hin zu Continuous Deployment – Patrick Hobusch 21
Fazit
• Das Erreichen der Stufen „Continuous Deployment“ bzw. „Innovation Experiment Systems“ gelingt nur, wenn• alle Beteiligten hinter diesem Ziel stehen
• ihnen ausreichend Zeit eingeräumt wird, um neue Konzepte, Technologien und Werkzeuge zu verstehen
• und sich jeder selbst für den Projekterfolg verantwortlich fühlt
• Langfristig• erleichtert dies die Zusammenarbeit von Softwareunternehmen
und ihren Kunden
• können die neuen Errungenschaften zu einer Wertsteigerung von Software und einer Kosten-/Zeitersparnis in den Projekten führen
Von agiler Softwareentwicklung hin zu Continuous Deployment – Patrick Hobusch 22
Weitere Literatur
• Helena Holmström Olsson, Hiva Alahyari, and Jan Bosch. "Climbing the" Stairway to Heaven“ - A Mulitiple-Case Study Exploring Barriers in the Transition from Agile Development towards Continuous Deployment of Software." Software Engineering and Advanced Applications (SEAA), 2012 38th EUROMICRO Conference on. IEEE, 2012.
• Pilar Rodriguez, et al. "Continuous deployment of software intensive products and services: A systematic mapping study." Journal of Systems and Software 123 (2017): 263-291.
• Jan Bosch. "Building products as innovation experiment systems." International Conference of Software Business. Springer Berlin Heidelberg, 2012.
Von agiler Softwareentwicklung hin zu Continuous Deployment – Patrick Hobusch 24