Agile SOA Best Practices aus Projekterfahrungen bei KarstadtQuelle (Arcandor AG) Stefan G. Gfrörer Marco Klemm
SOA = Ärger andrena objects / EDS ITELLIUM 2008 Agile SOA Best Practices aus Projekterfahrungen bei KarstadtQuelle Folie 2
SOA = Ärger Applikationen (Stuttgart, Jena, Fürth) Mode&Preis (Lörrach bei Basel) Bon A Parte (Dänemark) Hess Natur (Butzbach bei Frankfurt) Elegance (Aachen) Quelle.at (Linz) Quelle.de (Nürnberg / Fürth) Prozessorientierte Services (Frankfurt am Main) Payment Service (FFM) Grossisten Management Service (Essen) Datenzentrierte Services SVS R1 (Nürnberg) Nukleus (Nürnberg) BALI (Linz) DiVA (Flensburg) [extern] [extern] [extern] Backends andrena objects / EDS ITELLIUM 2008 Agile SOA Best Practices aus Projekterfahrungen bei KarstadtQuelle Folie 3
SOA = Ärger Erschwerte Kommunikation Indirekte Kommunikationswege (Telko, E-Mail, Word, Excel) Zusammenarbeit mit teils unbekannten Personen Fachliche vs. technische vs. technische Sprachen Hoher Overhead Bürokratie schwergewichtige Prozesse und Controlling Komplexität Großprojekte Heterogene Systemlandschaften Unterschiedliche Zielsetzungen Erfahrungsmangel andrena objects / EDS ITELLIUM 2008 Agile SOA Best Practices aus Projekterfahrungen bei KarstadtQuelle Folie 4
5 größten Risiken mit SOA Anforderungsrisiko Qualitätsrisiko Steuerungsrisiko Menschliches Risiko Skillsrisiko andrena objects / EDS ITELLIUM 2008 Agile SOA Best Practices aus Projekterfahrungen bei KarstadtQuelle Folie 5
Primäre Zielsetzungen mehr Flexibilität schnellere Innovationen Kosten reduzieren andrena objects / EDS ITELLIUM 2008 Agile SOA Best Practices aus Projekterfahrungen bei KarstadtQuelle Folie 6
Wenn wir etwas verbessern wollen, müssen wir die Art und Weise verbessern, wie wir arbeiten andrena objects / EDS ITELLIUM 2008 Agile SOA Best Practices aus Projekterfahrungen bei KarstadtQuelle Folie 7
Traditionelles Vorgehen bei KarstadtQuelle geringe Reaktionsfähigkeit durch Prozess- und Dokumentations-Overhead Ergebnisverfehlung durch spätes Feedback zum Auftraggeber schlechter Qualität durch spät durchgeführte Qualitätssicherungsmaßnahmen nicht eingehaltenen Terminen durch schlechte Planbarkeit Negative Auswirkungen multiplizieren sich bei SOA um ein Vielfaches! andrena objects / EDS ITELLIUM 2008 Agile SOA Best Practices aus Projekterfahrungen bei KarstadtQuelle Folie 8
Agiles Vorgehen in SOA-Projekten SOA versucht die Flexibilität und die Effektivität des Unternehmens und der zugrundeliegenden IT zu erhöhen Agile Methoden erhöhen die Flexibilität und die Effektivität der Softwareentwicklung der Teamarbeit der Zusammenarbeit mit Kunden andrena objects / EDS ITELLIUM 2008 Agile SOA Best Practices aus Projekterfahrungen bei KarstadtQuelle Folie 9
Testgetriebene Entwicklung andrena objects / EDS ITELLIUM 2008 Agile SOA Best Practices aus Projekterfahrungen bei KarstadtQuelle Folie 10
TDD hat große Wirkung mit wenigen Prozessänderungen andrena objects / EDS ITELLIUM 2008 Agile SOA Best Practices aus Projekterfahrungen bei KarstadtQuelle Folie 11
Grundlagen Testgetriebene Entwicklung (TDD) Test-First-Vorgehen Jede neue Anforderung ist durch einen fehlschlagenden Test motiviert Testgetriebene Entwicklung im Großen Funktionale Tests spezifizieren die umzusetzenden Anforderungen Testgetriebene Entwicklung im Kleinen Unit Tests und die zu testende Komponente werden parallel in wenige Minuten dauernden Mikroiterationen entwickelt andrena objects / EDS ITELLIUM 2008 Agile SOA Best Practices aus Projekterfahrungen bei KarstadtQuelle Folie 12
Qualitätssicherung: Das A&O in SOA-Projekten Tests der SOA-Services ist notwendig arbeitet die Software, arbeiten die Services richtig? doch wie testen? Akzeptanztests? Integrationstests? Systemtests? Lasttests? fachliche Spezifikation nicht vorhanden -> hoffentlich gegen eine im Projektverlauf entwickelte Spezifikation Und wer testet? & Wer testet Services? Testet der Entwickler der Services? Test der Entwickler des Clients? Auf welcher Ebene: Serviceclient, Clientapplikation? Test der Akzeptanztest des Clients die Qualität der Services? Gibt es einen Akzeptanztest der Services? Welcher? Wer? Wie? Ein nachgelagerter Test greift zu kurz, da Probleme zu spät erkannt werden Lösungsansatz: Testgetriebene Entwicklung zur Unterstützung des agilen Prozesses andrena objects / EDS ITELLIUM 2008 Agile SOA Best Practices aus Projekterfahrungen bei KarstadtQuelle Folie 13
Test-First in SOA-Projekten Test-First-Ansatz erst den Test schreiben dann implementieren Refactoring einplanen Best practice: JUnit Jedoch: mit JUnit keine Spezifikation und kein fachlich zusammenhängender Test des Verhaltens der Services Erweiterung der JUnit-Tests durch FIT FIT: Framework for Integrated Tests Erweiterung für Tests für Services notwendig Damit jeweils fachliche & technische Beschreibung des jeweiligen Verhaltens des Services möglich Damit wieder Test-first: fachliche & technische Beschreibung des Services + Entwicklung und Test dagegen andrena objects / EDS ITELLIUM 2008 Agile SOA Best Practices aus Projekterfahrungen bei KarstadtQuelle Folie 14
Qualitätssicherung für SOA - Testarchitektur Die Qualitätssicherung erfolgt ganzheitlich, jede Anwendung und jeder Service wird isoliert getestet. Jedes System wird durch Funktionale Tests, Unit Tests und Fachtests qualitätsgesichert. andrena objects / EDS ITELLIUM 2008 Agile SOA Best Practices aus Projekterfahrungen bei KarstadtQuelle Folie 15
Anforderungsmanagement für SOA Funktionale Tests werden Test-First erstellt und dienen als ausführbare Anforderungsspezifikation Fachbereiche und Entwickler formulieren Anforderungen gemeinsam Frühes Feedback für Kunden Verständnis für Entwickler Vermeidung konzeptioneller Fehler Frühe Klärung von Details (anhand von Beispielen) DRY Don t Repeat Yourself Grundlage für Anforderungsänderungen Fachbereich fachliche Ausrichtung Management Anwendungsentwickler Serviceentwickler technische Ausrichtung IT-Governance Damit gewinnen wir die Kommunikationsbasis für die Dauer eines Projektes und darüber hinaus andrena objects / EDS ITELLIUM 2008 Agile SOA Best Practices aus Projekterfahrungen bei KarstadtQuelle Folie 16
andrena objects / EDS ITELLIUM 2008 Agile SOA Best Practices aus Projekterfahrungen bei KarstadtQuelle Folie 17
Demo andrena objects / EDS ITELLIUM 2008 Agile SOA Best Practices aus Projekterfahrungen bei KarstadtQuelle Folie 18
Ergebnis: nachweisbare Qualität Das Verhalten jedes Services ist in mindestens einem FIT-Test spezifiziert und dokumentiert spezifiziert und dokumentiert: das fachliche Verhalten spezifiziert und dokumentiert: erforderliche (Test-)Daten der Fachbereich kann es nachlesen der Client-Entwickler kann gegen dieses Verhalten entwickeln in jedem ausgelieferten Build sind die FIT-Tests aktuell nachvollziehbar und lauffähig Das Gesamtsystem ist retestfähig Auswirkungen von Weiterentwicklungen, Refactorings auf das bisherige Verhalten werden sofort sichtbar (Tests werden rot) kein Build mit roten Tests nachweisbar, dass jedes Build, jede funktionale Weiterentwicklung die bisherige Fachlichkeit nicht beeinflußt andrena objects / EDS ITELLIUM 2008 Agile SOA Best Practices aus Projekterfahrungen bei KarstadtQuelle Folie 19
Agiles Projektmanagement mit Scrum andrena objects / EDS ITELLIUM 2008 Agile SOA Best Practices aus Projekterfahrungen bei KarstadtQuelle Folie 20
Scrum andrena objects / EDS ITELLIUM 2008 Agile SOA Best Practices aus Projekterfahrungen bei KarstadtQuelle Folie 21
Motivation für Scrum: Evolution Evolution innerhalb des SOA-Projektes: Anzahl der Consumer des Services steigt (Marken) Anzahl der Systeme der Consumer verdoppelte sich Weiterentwicklung der Schnittstelle von v1 auf v5 Knowhowtransfer notwendig, da neue Kollegen im Projekt => diese Evolution muss im Griff gehalten werden andrena objects / EDS ITELLIUM 2008 Agile SOA Best Practices aus Projekterfahrungen bei KarstadtQuelle Folie 22
Motivation für Scrum: Projektsteuerung Entwicklungsprojekt SOA-Services ist schlecht planbar wg. Abhängigkeiten von den Entwicklungsprojekten der Clients wg. volatiler Anforderungen es muß kurzfristig auf Veränderungen reagiert werden können Fremdsteuerung SOA-Service-Entwicklung stark abhängig von außen Anforderungen des Gesamtprojektes führt zu Umpriorisierungen Trotzdem: bedarf es eines strukturierten Vorgehens, um Chaos zu vermeiden bentötigt Entwicklungsteam klare Vorgaben und Prioritäten Darf sich das Entwicklungsteam nicht von außen (durch Client-Entwicklung) fremdsteuern lassen => Lösungsansatz: Scrum-Prozess zur Unterstützung des agilen Prozesses andrena objects / EDS ITELLIUM 2008 Agile SOA Best Practices aus Projekterfahrungen bei KarstadtQuelle Folie 23
Scrum, konkret Product Owner: in SOA-Projekten schwer vom Fachbereich zu bekommen, da abstrakt ersetzt durch: Product Owner Proxy Projektleiter vertritt als Product Owner Proxy die Anforderungen in fachlicher, technischer und zeitlicher Dimension Scrumsprints & Builds nach außen wurde festgelegt, dass alle 3 Wochen (eine Sprintlänge) ein neues Build für Test, u.u. auch Produktion, verfügbar gemacht wird Umgebung konnte sich danach richten und hat diese dankbar aufgenommen andrena objects / EDS ITELLIUM 2008 Agile SOA Best Practices aus Projekterfahrungen bei KarstadtQuelle Folie 24
Scrum bei KarstadtQuelle Planning Meeting Product Owner Proxy Scrum Master andrena objects / EDS ITELLIUM 2008 Agile SOA Best Practices aus Projekterfahrungen bei KarstadtQuelle Folie 25
Scrum bei KarstadtQuelle Planning Meeting andrena objects / EDS ITELLIUM 2008 Agile SOA Best Practices aus Projekterfahrungen bei KarstadtQuelle Folie 26
Scrum bei KarstadtQuelle Daily Standup Meeting andrena objects / EDS ITELLIUM 2008 Agile SOA Best Practices aus Projekterfahrungen bei KarstadtQuelle Folie 27
Gesamtprojektsteuerung mit Scrum andrena objects / EDS ITELLIUM 2008 Agile SOA Best Practices aus Projekterfahrungen bei KarstadtQuelle Folie 28
Scrum: Vorteile Timeboxing Team-Commitments Konkretisierung der Aufgaben was ist zu tun was ist als Vorbereitung zu tun wer tut es & was ist nicht zu tun Priorisierung der Aufgaben was muss zuerst getan werden dringend vor wichtig Product-Owner(-Proxy) entscheidet Releasezyklen am Scrumsprint orientiert andrena objects / EDS ITELLIUM 2008 Agile SOA Best Practices aus Projekterfahrungen bei KarstadtQuelle Folie 29
Fazit andrena objects / EDS ITELLIUM 2008 Agile SOA Best Practices aus Projekterfahrungen bei KarstadtQuelle Folie 30
Fazit SOA auf jeden Fall agil Auswirkungen auf die 5 größten Risiken: Testgetriebene Entwicklung Scrum Anforderungsmanagement Qualitätsmanagement Projektsteuerung Faktor Mensch Skills ++ ++ +++ + +++ ++ ++ ++ ++ andrena objects / EDS ITELLIUM 2008 Agile SOA Best Practices aus Projekterfahrungen bei KarstadtQuelle Folie 31
Buchhinweis SOA-Expertenwissen Methoden, Konzepte und Praxis serviceorientierter Architekturen Gernot Starke / Stefan Tilkov (Hrsg.) Mit Beiträgen von 50 internationalen SOA- Experten, u.a. SOA und testgetriebene Entwicklung Stefan G. Gfrörer Marco Klemm andrena objects / EDS ITELLIUM 2008 Agile SOA Best Practices aus Projekterfahrungen bei KarstadtQuelle Folie 32
Vielen Dank! Marco Klemm marco.klemm@andrena.de Stefan G. Gfrörer info@eds-itellium.com andrena objects ag Albert-Nestler-Straße 9 D-76131 Karlsruhe www.andrena.de EDS ITELLIUM GmbH Hanauer Landstr. 360 D-60386 Frankfurt am Main www.eds-itellium.com andrena objects / EDS ITELLIUM 2008 Agile SOA Best Practices aus Projekterfahrungen bei KarstadtQuelle Folie 33