Sie sind auf Seite 1von 24

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 framework
for moving beyond agile software development." Proceedings of
the 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
• Änderungsängste und -kosten reduzieren

• Software mit hohem Wert

• Gegenbewegung zur „traditionellen“, plangetriebenen


Softwareentwicklung

Von agiler Softwareentwicklung hin zu Continuous Deployment – Patrick Hobusch 4


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

http://blog.crisp.se/2013/02/05/yassalsundman/continuous-delivery-vs-continuous-deployment

Von agiler Softwareentwicklung hin zu Continuous Deployment – Patrick Hobusch 6


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

http://scrum-master.de/Was_ist_Scrum/Scrum_auf_einer_Seite_erklaert

Von agiler Softwareentwicklung hin zu Continuous Deployment – Patrick Hobusch 11


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
Ökosystem Neuverhandlung von Zulieferer-Verträgen, Zustimmung aller
Interessengruppen, Angleichung der Prozesse
Unternehmen Zusage des Managements, Bewusstsein für feature-orienterte
Entwicklung schaffen, Teamleiter statt Projektmanagern
Architektur Architekten-Unterstützung in jedem Team, Feature-Teams
Ausführung Selbstgesteuerte Teambildung

Von agiler Softwareentwicklung hin zu Continuous Deployment – Patrick Hobusch 13


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
Ö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

Von agiler Softwareentwicklung hin zu Continuous Deployment – Patrick Hobusch 14


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
Ö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

Von agiler Softwareentwicklung hin zu Continuous Deployment – Patrick Hobusch 15


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
Ö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

Von agiler Softwareentwicklung hin zu Continuous Deployment – Patrick Hobusch 16


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


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 Von agiler Softwareentwicklung hin-zu Continuous Deployment – Patrick Hobusch 18


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


Vielen Dank
für Ihre Aufmerksamkeit
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

Das könnte Ihnen auch gefallen