Agile Methoden als Erfolgsfaktor für BI und Big Data Projekte Best Practices aus unseren Projekten Dr. Stefan Igel Mainz, 13.05.2014 Agenda 1. Agile BI und BI Agilität 2. Agile Teams 3. Agil BI-Projekte managen 4. Agile BI-Lösungen entwickeln 5. Agil testen 6. Agil dokumentieren 2 Agile BI und BI-Agilität Definition des TDWI BI-Agilität Eigenschaft der BI, • vorhersehbare oder unvorhersehbare Anforderungen • in Bezug auf Funktionalität oder Inhalt einer BI-Lösung • in einem vorgegebenen Zeitrahmen mit angemessener Qualität abzubilden Agile BI Alle Maßnahmen eines Unternehmens, die durchgeführt werden, um BI-Agilität umzusetzen, werden unter dem Begriff „Agile Busienss Intelligence“ zusammengefaßt. TDWI: Memorandum für Agile Business Intelligence: http://www.tdwi.eu/wissen/agile-bi/memorandum/ 3 Agile BI und BI-Agilität Agiles Manifest „Wir zeigen bessere Wege auf, Software zu entwickeln, indem wir es selbst tun und anderen dabei helfen, es zu tun. Durch unsere Arbeit sind wir zu folgender Erkenntnis gekommen: ‣ Menschen und Interaktionen sind wichtiger als Prozesse und Werkzeuge. ‣ Funktionierende Software ist wichtiger als umfassende Dokumentation. ‣ Zusammenarbeit mit dem Kunden ist wichtiger als die ursprünglich formulierten Leistungsbeschreibungen. ‣ Eingehen auf Veränderungen ist wichtiger als Festhalten an einem Plan. Das heißt: obwohl die Punkte auf der rechten Seite durchaus wichtig sind, halten wir die Punkte links für wichtiger.“ Agiles Manifest: http://www.agilemanifesto.org/ 4 Agile BI und BI-Agilität Memorandum für Agile Business Intelligence ‣ Werte und Prinzipien (TDWI), angelehnt an das Agile Manifest ‣ Unternehmensnutzen ist wichtiger als das Festhalten an Methoden und Architekturkonzepten ‣ Kontinuierliche Zusammenarbeit und Interaktion zwischen Anforderern und Umsetzern sind wichtiger als Prozesse und Werkzeuge ‣ Eingehen auf Veränderungen ist wichtiger als Festhalten an einem Plan ‣ Funktionierende BI-Lösungen sind wichtiger als detaillierte Spezifikation TDWI: Memorandum für Agile Business Intelligence: http://www.tdwi.eu/wissen/agile-bi/memorandum/ 5 Agile BI und BI-Agilität Beschleunigter Paradigmen-Wechsel durch Big Data Optimierung der „Time to Insights“ ‣ Historische Berichte !" Vorhersagen ‣ Vordefinierte Aggregate !" Alle granulare Daten ‣ Strukturierte Daten !" Polystrukturierte Daten ‣ Schema-on-write !" Schema-on read ‣ Regelbewirtschaftung !" Ad-hoc Analysen 6 Agile BI und BI-Agilität Wieviel Agilität ist sinnvoll? Schnell, ausfallsicher, skalierbar Wartungsfreundlich Klassisches Vorgehen Investitions- und!! innovationssicher Agiles Vorgehen Report request! Requirement Engineering! time to insights! Data modeling! Implementation! refine question" ask question" business goal! verify answer" datamine answer" Delivery! http://www.inovex.de/big-data-ebook 7 Agile BI und BI-Agilität Einflußfaktoren: Wieviel darf es denn sein? Unternehmensfaktoren (Vision, Strategie, Kultur, Prozesse, Standards, Menschen) BI-Aufbauorganisation Prinzipien Umwelteinflüsse (Märkte, Gesetze) BI-Ablauforganisation/ Prozesse Vorgehensmodelle BI-Architektur Methoden TDWI: Memorandum für Agile Business Intelligence: http://www.tdwi.eu/wissen/agile-bi/memorandum/ Technologien 8 Agile Teams Data Scientist - The „ sexiest job of the 21. century“ * ‣ Statistik ‣ Machine Learning ‣ Data Mining ‣ IT Engineering ‣ Daten Architektur ‣ Software Engineering ‣ Visualisierung ‣ Business Analyst *http://hbr.org/2012/10/data-scientist-the-sexiest-job-of-the-21st-century/ www.vecteezy.com 9 Agile Teams Cross-functional Team aus „spezialisierte Generalisten“ ‣ Statistik ‣ Machine Learning ‣ Data Mining ‣ IT Engineering ‣ Daten Architektur apt-get install… ‣ Software Engineering ‣ Visualisierung ‣ Business Analyst # Business Intelligence Competency Center Class A extends Mapper… # Agiles Projekt-Team ROI, $$, … Bilder:: http://2013.berlinbuzzwords.de/sessions/bug-bites-elephant-test-driven-quality-assurance-big-data-applicationdevelopment 10 Agiles Projektmanagement Scrum Fertigeim Software Überblick im Zweiwochentakt... Die geordnete, abgeschätzte Liste aller Anforderungen an das zu entwickeln-de Produkt. Die im nächsten Sprint umzusetzenden Anforderungen, nebst einem Plan wie dies zu tun ist. Abarbeitung des Sprintbacklogs mit tagesaktueller Transparenz über den Fortschritt. Sprintergebnis: Potentiell an den Kunden ausliefer-bare Version des Produkts. 11 Agiles Projektmanagement Rollen in Scrum Product Owner Team Scrum Master Bild Ken Schwaber: http://wikipedia.de 12 Agiles Projektmanagement Projektablauf konkret Release 0 Vision-Sprint 4 Wochen • Initiales Backlog • ProjektInfrastruktur • Grob-Architektur • Technischer Durchstich Release 1 Release 2 Sprint 1 2-3 Wochen Sprint 2 2-3 Wochen • Datenquelle • DWH • ETL • Datamart • Cube • Analyse/Report • Datenquelle • DWH • ETL • Datamart • Cube • Analyse/Report ... 2-3 Wochen • ... • ... • ... • ... 13 Agiles Projektmanagement User Stories für das Product Backlog ‣ Auf Anwender-Nutzen fokussieren ‣ „Vertikal“ statt „horizontal“ arbeiten ‣ Akzeptanz-Kriterien formulieren ‣ Definition of Done beachten 14 Agiles Projektmanagement PM-Tools: Redmine 15 Agile BI Entwicklung Besonderheiten und Herausforderungen ‣ Eingesetzte BI-Werkzeuge reglementieren Architektur und Entwicklung ‣ Häufig werden bestehende Systeme spezifisch erweitert ‣ Fehlende Kapselung erschwert Refactoring ‣ Historisierung der Bestandsdaten ist zu gewährleisten ‣ Viele Schnittstellen zu vielen Quellsystemen ‣ Abstimmungsbedarf ‣ Änderungshäufigkeit ‣ BI-Anwendung stiftet erst Nutzen, wenn sie die richtigen Ergebnisse liefert ‣ Unbekannte Datenqualität ‣ Funktionale Korrektheit ist nur ein Teilaspekt ‣ Testen und Validieren hängen stark von Daten ab ‣ E2E-Tests sind wichtiger als funktionale Unit-Tests ‣ Repräsentative Testdaten sind erforderlich ‣ Performance-Tests 16 Agile BI-Entwicklung Standardisiertes DWH Design Access Adhoc Queries Reporting Data Export DWH OLAP Cubes OLAP Cubes Relational Database Reporting Layer (Dependent Datamarts) Integration Layer (Core DWH) E T L Acquisition Layer (Staging Area) BI Source Systems Source Data Fileserver Replicated Source Data 17 Agile BI Entwicklung Tool Stack: BI Tool Suite plus RDBMS ‣ ‣ Pentaho – eine leistungsfähige, ausgereifte und stabile Open-SourceLösung für BI-Anwendungen. ‣ Anbindung verschiedenster Datenquellen ‣ ETL mit PDI ‣ Reporting & Dashboards ‣ Interaktive Analysen ‣ Machine Learning Relationale Datenbank als DWH ‣ z.B. PostgreSQL ‣ ... Grafik: Pentaho Corporation 18# Agile BI-Entwicklung Änderungsfreundliches Software Design Pattern ‣ ETL als kleine, modulare Einheiten (PDI: Jobs, Transformationen) entwickeln ‣ Datenbank-Änderungen pro Release als ALTER TABLE implementieren ‣ Fein-granular versionieren, QuellcodeRepository verwenden (z.B. git) ‣ Continuous Integration:Täglich einchecken, nächtlich integrieren ‣ Hinreichende Testabdeckung sicherstellen Beispiel: PDI Transformationen 19 Agile BI-Entwicklung Big Data: „individuelles“ System Design Server" Systems Management" Applications and Analytics" Batch Processing & Storage" Transport & Speed" STORM! 20 Agiles Datacenter Management Paradigmenwechsel durch Big Data in der IT ‣ Scale-out !" Scale-up ‣ Shared-nothing Architecture !" Virtualisierung ‣ Commodity Hardware !" Enterprise Hardware ‣ Cloud Lösungen ‣ Andere Backup und Failover Strategien http://www.flickr.com/photos/dahlstroms/4083220012/" 21 Agiles Datacenter Management Open Source Datacenter Managment Hosted Deployment Virtual Virtual Network CMDB Real Lifecycle Mgmt. Foreman REST API Physical Network 22 Agiles Testen von BI und Big Data Lösungen Viele Rollen – unterschiedliche Schwerpunkte DatenValidierung Fachliche Tests DWH ETL-/ MR-Jobs Dominik Benz: http://2013.berlinbuzzwords.de/sessions/bug-bites-elephant-test-driven-quality-assurance-big-dataapplication-development Workflows Deployments 23 Agiles Testen von BI und Big Data Lösungen Herausforderungen von „Test Driven BI“ ? Testdaten bereitstellen ? Verteilte Umgebung (binäre) Datenformate ? Reports validieren DWH Modultests E2E-Tests Dominik Benz: http://2013.berlinbuzzwords.de/sessions/bug-bites-elephant-test-driven-quality-assurance-big-dataapplication-development 24 Agiles Testen von BI und Big Data Lösungen Testautomatisierung mit FitNesse ‣ „ausführbare“ Wiki-Seiten (Test Ergebnisse als Rückgabewerte) ‣ (fast) natürlichsprachliche Test Spezifikation ‣ Verbindung zum SUT via (Java-)“Fixtures“ „fully integrated standalone wiki and acceptance testing framework” Dominik Benz: http://2013.berlinbuzzwords.de/sessions/bug-bites-elephant-test-driven-quality-assurance-big-dataapplication-development 25 Agiles Testen von BI und Big Data Lösungen FitNesse Architektur Browser Fixtures script | ! check | ! num results | 3 |! public int numResults { ... } FitNesse Server System under Test # Aufruf von Java Methoden „aus dem Wiki“ # Vergleich der Rückgabewerte # Integration mit REST, Jenkins… Dominik Benz: http://2013.berlinbuzzwords.de/sessions/bug-bites-elephant-test-driven-quality-assurance-big-dataapplication-development 26 Agiles Testen von BI und Big Data Lösungen Testdaten ‣ Synthetische Daten ‣ Definition in FitNesse-Wiki ‣ Quellen (Files, DBs, ...) ‣ Formate (CSV, Thrift, Avro, ... ) ‣ Reale Daten ‣ Zufällige oder verzerrte Stichproben, z. B. eines Tages ‣ Feedback Schleife: ‣ Spezial- bzw. Fehlerfälle aus den realen Daten identifizieren ‣ In synthetische Testdatenmenge aufnehmen ‣ Inkrementelle Erhöhung der Testabdeckung Dominik Benz: http://2013.berlinbuzzwords.de/sessions/bug-bites-elephant-test-driven-quality-assurance-big-dataapplication-development 27 Agiles Testen von BI und Big Data Lösungen Ein exemplarischer FitNesse Test Siehe: http://2013.berlinbuzzwords.de/sessions/bug-bites-elephant-test-driven-quality-assurance-big-data-application-development 28 Agiles Testen von BI und Big Data Lösungen FitNesse: Erweiterbar durch Fixtures Pig-Fixture DBSlim Hadoop-Fixture Kettle-Fixture Xebium-Fixture Shell-Fixture Git pull 29 Agiles Testen von BI und Big Data Lösungen Continuous Integration mit FitNesse ‣ Tests können zu Test-Suites zusammengefasst werden ‣ Nächtliche Ausführung einplanen ‣ Integrationssystem aktualisieren ‣ Git pull ‣ DDLs (*.sql) mit DB-Deploy ausführen ‣ Pentaho Files kopieren ‣ ETL (*.kjb, *.ktr) Files ‣ Cubes (*.mondrian) ‣ Reports (*.prpt, *.analyzer) ‣ Ggf. Testdaten aktualisieren ‣ Tests ausführen 30 Agile Dokumentation Schnittstellen im Griff ‣ BI-Projekte haben typischerweise viele Schnittstellen ‣ Mittlerweile oft parallele Entwicklung von Quellsystem und BI-System ‣ Basis für Entwicklung und Synthetische Testdaten ‣ Inhalt ‣ Gesamtkontext ‣ Fachliche Spezifikation ‣ IT-Technische Spezifikation ‣ Betriebskonzept (OSLA) ‣ inkrementelle Fortschreibung 31 Agile Dokumentation Data Lineage automatisieren ‣ Dokumentation so nah wie möglich am Artefakt ‣ DB-Kommentare ‣ Kommentare in Kettle ‣ Dokumentation generieren ‣ Kettle-Step für ETLDokumentation ‣ Kettle-Jobs/Transformationen ‣ Systemtabellen auslesen ‣ Pentaho XML-Files (*.kjb, *.ktr, *.mondrian, *.prpt, *.analyzer) auswerten ‣ Schnittstellen-Dok auswerten 32 Agile Dokumentation Data Lineage automatisieren – Fragen des Betriebs beantworten 33 Agile BI-Entwicklung Änderungsfreundlichkeit durch Automatisierung ‣ Automatisierung der Integration ‣ Automatisierung der Tests ‣ Automatisierung der Deployments ‣ Automatisierung der Dokumentation http://de.wikipedia.org/wiki/Hydraulis, Wasserorgel nach Heros von Alexandria 34 Agilität in BI Projekten Resume Scrum in BIProjekten SchnittstellenManagement Agile BIEntwicklung Agile BI Automatisierte Dokumentation Continuous Integration Data Driven Testing 36 37 Vielen Dank für Ihre Aufmerksamkeit Kontakt Dr. Stefan Igel Head of Big Data Solutions inovex GmbH Office Karlsruhe Ludwig-Erhard-Allee 6 D-76131 Karlsruhe +49 173 3181030 [email protected] 38