Agiles Projektmanagement in APEX- Projekten Chris.an Piasecki Pitss GmbH The Oracle Moderniza0on Experts www.pitss.com PITSS GmbH 2015
Agenda n Was ist Scrum? n Wer spielt mit n Wie ist der Prozess n Mee;ngs & Review n Agile Entwicklung n Auf Änderungen im DM vorbereitet sein n Testen & Automa.sieren n PL/SQL Unit- Test n LasMest n UI- Test n User Akzeptanz- Test n Automa;sierung n Verfügbarkeit n Besser werden 2
Über Mich n Beratung, Training, Entwicklung Oracle Technologie n Oracle Apex n Oracle BI Suite n Oracle BI Publisher n Oracle Warehouse Builder n Oracle Data Integrator Chris;an Piasecki Consultant hmp://pitss.de/blog @cpiasecki23 3
PITSS: der Oracle Modernisierungsexperte! Standorte: Deutschland (StuMgart, Bielefeld, Wolfratshausen), England (Milton Keynes), USA (Troy, Michigan)! Oracle Gold Partner! Mitglied der OMA Oracle Moderniza;on Alliance! Oracle Forms Migra;ons Partner! Oracle Forms Beta- Tester! Mehr als 15 Jahre Erfahrung mit Oracle Technologien! Mehr als 500 absolvierte lauffähige Migra;onsprojekte! Kunden in mehr als 50 Ländern! aber auch! ADF Entwicklung und Consul;ng! APEX Entwicklung und Consul;ng 4
Kunden PITSS www.pitss.com PITSS GmbH 2015 5
PITSS.CON - Source Code Analy.cs! Technology Base! Maintenance / Development! Graphical Visual Design! Dynamic Mul;- Language! Applica;on Analysis! Applica;on Engineering for SOA! ADF- / APEX- Assistant! Automa;c Forms upgrading! Source Code Analy;cs! Source Control 6
PITSS Solu.ons PITSS Services Development Training Consul'ng Administra'on Support 7
Was ist Scrum? Wer spielt mit n Agile Methode der SoTware- Entwicklung n 3 wich.gsten Rollen: n Product Owner n macht die fachlichen Vorgaben n und priorisiert diese n Scrum Master n Koordina;on des Teams n Problemlöser n Team n keine starren Hierarchien n Spezialisten auf ihren Gebieten n dennoch interdisziplinär ausgebildet, um Aufgaben von anderen Teammitglieder zu übernehmen 8
Was ist Scrum? Wie ist der Prozess Quelle: Wikipedia n Anforderungen werden im Product- Backlog festgehalten (nicht starr, kann sich verändern) n Product Owner nimmt Kundenwünsche auf und priorisiert die Anforderungen n definierte Arbeitspakete werden in einem Sprint komple\ umgesetzt n Arbeitspakete werden auf Tasks runtergebrochen, im Sprint- Backlog erfasst und täglich aktualisiert 9
Was ist Scrum? Mee.ngs & Review n kurze Daily- Scrum- Mee.ngs um Blocker und Entwicklungsstand zu besprechen n Live- Präsenta.on der Ergebnisse am Ende jedes Sprints als Sprint- Review n Nach dem Sprint- Review folgt dann das Planning- Mee.ng für den nächsten Sprint, n Feedback aus dem Review n Schnüren des nächsten Arbeitspaketes 10
Besonderheiten bei APEX? n Unterscheidet sich APEX von anderen Entwicklungswerkzeugen? n ADF n FORMS n... n... n Jedes Technologie hat ihre Besonderheiten, was Entwicklung, Testen und Bereitstellung betrid n ADF ist was agile Entwicklung betrid, sicher weiter als APEX n Tools wie Maven oder Hudson sind hier schon länger im Einsatz Die Projektvorgehensweise sollte aber nicht abgängig von der Technologie sein! 11
Agile Entwicklung n Product Owner hat nur die nächsten 3 Sprints im Blick n Es ist nicht bekannt, welche Funk.onen der Kunde noch umsetzen lässt oder wann sein Budget erschöpt ist n Es können immer wieder neue Funk.onalitäten ins Backlog kommen à Es kann sicherlich immer wieder zu Änderungen im Datenmodel und UI kommen, hier drauf muss reagiert werden Quelle: Boris Gloger: Agiles Schätzen à Auch mit anderen Projektvorgehensweisen kommt es zu DM- Änderungen/ Erweiterungen n Nicht alle Anforderungen bei Projektbeginn 100% bekannt n Im Entwicklungszeitraum kommen sicherlich neue Anforderungen hinzu 12
Agile Entwicklung Auf Änderungen im DM vorbereitet sein n View- Schicht anlegen (Best Prac.ce in APEX) n Erweiterungen an Tabellen haben keine Auswirkungen aufs UI n Bei Änderungen an der Tabellenstruktur müssen nur die Views angepasst werden n Überladene Package- Funk.onen nutzen und Packages erweitern n Neuen Funk.onen ans Package- Ende packen à Soll zu weniger Invalid Objects führen n Refakturieren des Codes n Meistens kommen nur neue Objekte (Tabellen/Spalten) hinzu, in den seltensten Fällen werden Objekte enjernt à Normalisierung des Datenmodells häufig sinnvoll und nö.g 13
Normalisierung des Datenmodells n Durch Implemen.erung neuer Funk.onalitäten kommen häufig neue Spalten hinzu. n Hinzufügen einer Spalte zur Tabelle schneller, als neue Tabelle mit Fremdschlüsseln anzulegen à Unübersichtliches DM à Performance? 14
Tools für die Normalisierung des DM n Oracle SQL- Developer n GUI- Funk;onalität n Erstellt n Tabelle n Sequenze n Trigger n Foreign- Key n und verschiebt die Daten n Probleme bei par;;onierten Tabellen 15
Testen n automa.siertes immer wich.ger, um zu prüfen ob die alten Funk.onalitäten noch funk.onieren n Nur Funk.ons- und Prozedur- Aufrufe in APEX, ganzer Code in Packages à erleichtert Testen und Wartbarkeit n Möglichkeiten: n DB- Code: PL/SQL Unit- Test n Tools: n IDE PL/SQL Developer n Quest Test Suite n SQL Developer n Stress- & Load- Test: JMeter n Oberfläche: Selenium n APEX- Anwendung auf Standards testen: Applica;on Standards Tracker n User- Akzeptanz Test à Man muss sich mit den einzelnen Tools auseinander setzen um Sie korrekt und nutzbringend einzusetzen!!! 16
Apache Jmeter n Stress- /Load- Test n Simulieren von User- Zugriffen n Tool: Blog- Beitrag von Chris Miur: h\p://one- size- doesnt- fit- all.blogspot.de/2009/06/stress- load- tes.ng- web- applica.ons.html h\p://one- size- doesnt- fit- all.blogspot.de/2010/05/configuring- apache- jmeter- for- apex.html n Einiges an Konfigura.onsaufwand 17
SQL Developer - PL/SQL- Unit Tests n Aufwand für die Erstellung der Test manchmal größer als die Erstellung des tatsächlichen Codes n Tests in das Nightly Build einbauen n Wünschenswert: Generierung der Test- Skripte 18
Applica.on Standards Tracker n Package Applica.on n APEX- Anwendung auf definierte Standards testen n Testen werden auf dem Oracle Applica.on Express Data Dic.onary ausgeführt n Test können selber definiert und erweitert werden n SQL- Statement auf das APEX Data Dic;onary n Ergebnisse lassen sich als Bericht oder als Passed/Failed anzeigen 19
Selenium n Automa.sierte Oberflächentest n Gibt es als Firefox IDE n Ersetzen aber keine User- Akzeptanz- Tests 20
User- Akzeptanz Test n Automa.sierte Test decken auch nicht immer alle Probleme auf, denn es gibt zu viele Varia.onen n Was ist bei Timeouts? n Wie reagiert das System auf Fehler? n Ist der Workflow korrekt abgebildet oder kann er komfortabler gestaltet werden? à User Akzeptanz Tests überschneiden sich mit der nächsten Sprint- Phase! n In den laufenden Sprint einplanen und Zeit hierfür reservieren n Besitzen Priorität vor neuen Funk;onalitäten à Wenn es viele nicht 100% funk.onierende Funk.onalitäten gibt, verliert man die Benutzer! n Fühlen sich nicht ernst genommen n Weniger Rückmeldung n Schlechtere Sovware 21
Automa.sierung - Nightly Builds n Hudson/Jenkins als Tool n Export und Import der Anwendung per Kommandozeile n Versionierung n APEXExport für Export der Anwendung n APEXExportSpliMer erzeugt eine Ordner- Struktur mit den einzelnen Elementen n Unterscheiden zwischen komple\er Neuinstalla.on (uninstall, install) und Update der Applika.on à separate Skripte 22
Verfügbarkeit n Durch das agile Vorgehen werden die Release Zeiträume kürzer n Benutzer sollen aber ungestört weiter arbeiten Unterscheidung nach: n UI n Datenbank 23
Verfügbarkeit UI n Mögliches Konzept fürs UI: n 2 gleiche Anwendungen n Loadbalancer schickt die User nur auf eine Anwendung, in der Zeit wird die andere upgedatet n Nachteile: n Es müssen immer 2 Anwendungen gepflegt werden n Die Benutzer, die gerade am System arbeiten werden runtergeschmissen 24
Verfügbarkeit DB - Edi.on- Based Redefini.on n Oracle s Lösung für Online Applica.on Updates n Ab Datenbank- Version 11gR2 EE n Konzept: n Datenbankobjekteobjekte gibt es in verschiedenen Versionen n Benutzer melden sich immer gegen eine Version an n Arbeiten auf Edi;onable Views n Bei Strukturänderungen werden Daten durch spezielle Trigger, abhängig von der Version, verteilt n Pro: Hochverfügbarkeit n Contra: n Bei bestehendem Datenmodell viel Aufwand für die Umstellung n Overhead für die Trigger- Erstellung 25
Verfügbarkeit - Problem n Änderungen einzeln in DB oder UI sind mit diesem Model unproblema.sch n Änderungen in beiden Schichten (90%) sind nicht ohne Down.me möglich à Problem ist das Session Sharing von APEX n Die APEX- DB- Sessions können nur in einer DB- Version unterwegs sein. Empfehlung: n Einsatz von Edi.on- Based Redefini.on n Einsparung des Loadbalancers n Kurze Down.me für einspielen des UI- Updates (regelmäßiges Zeijenster) 26
Besser werden n Nach dem Sprint ist vor dem Sprint, denn es muss wieder neu abgeschätzt werden n Was wurde im letzten Sprint geschaw? n Quan;ta;v messen: Anzahl DB- Objekte, Anzahl Lines of Code, Anzahl APEX- Objekte n Sinnvolle Aufgabenverteilung n Welche UI- Objekte nutzen welche Datenbanksourcen? n Wie wirken sich Änderungen an einzelnen Objekten auf andere Objekte aus? à Einiges liefert das Oracle APEX Repository, aber nicht alles, deswegen setzen wir auf das PITSS.CON APEX Repository n Analysemöglichkeit über alle DB- und APEX- Objekte n Abhängigkeitsanalysen n Ursache- und Wirkungsanalysen 27
Berliner Expertenseminar - Scrum in Migra.onsprojekten am Beispiel von Oracle und Co. n Referent: Boris Gloger & Stephan La Rocca n Datum: 23-24.06.2015 n Preis: 990 (All- in) n Inhalt 28
PITSS auf der APEX Connect n Sie finden uns am Stand im Foyer n Gewinnspiel: 2x 4 Tage APEX 5.0 Development Training n Für alle anderen 10% RabaM auf den Schulungspreis à Ziehung um 16 Uhr nach den letzten Vorträgen 29
Vielen Dank für Ihre Zeit. The Oracle Moderniza0on Experts www.pitss.com PITSS GmbH 2015