Moderne Softwareentwicklung Tools Prozesse - Practices Thomas Schissler / artiso AG
Ihre Herausforderungen? http://www.flickr.com/photos/5auge/9134637318/
Effizienz Ist Software-Entwicklung heute effizient? Was können wir verbessern?
Wie können wir Waste vermeiden? Bedarfsgerechte Lösungen Qualität optimieren Effiziente Team- Arbeit
Build Measure - Learn IDEAS DATA CODE
Sequentielle vs. Überlappende Entwicklung Sequentielle Entwicklung (Wasserfall-Methode) Anforderungs- Analyse System und Software- Entwurf Implementierung und Komponententests Integrations- und Systemtests Überlappende Entwicklung (Scrum)
Inkrementelle Entwicklung Schnelle Markteinführung Als erster mit einem neunen Produkt auf dem Markt sein Schnell reagieren können, wenn der Markt sich verändert Komplette Funktionalität Minimaler Funktionalität Agil Wasserfall Wasserfall
Time To Market? 83% der Unternehmen die Agilität eingeführt haben, haben dadurch eine Verbesserung der Time to Market erzielt.
Projekt Kidnapping 85 % Anforderungs- Analyse System und Software-Entwurf 0 % Implementierung und Komponententests End End of Budget of Budget Agil Wasserfall Wasserfall Integrations- und Systemtests
Wie erzeugen wir Qualität?
82% der Unternehmen die Agilität eingeführt haben beobachten eine erhöhte Qualität der Software.
Testen? Implementierung Bug-Fix Testen Release Bug
Effektive Team-Arbeit
Ist das praxisrelevant?
Moderne Software-Entwicklung Anforderungs Management Qualitätssicherung Stakeholder einbeziehen App- Telemetrie Continous Delivery Erweiterbare Architektur Entwickler- Produktivität Developer Operations
Worauf kommt s an? Tools Prozesse Practices
Worauf kommt s an?
Release Release Planning Meeting Product Owner Scrum Master Scrum Master Team Release Burndown Scrum Master Scrum Master Product Owner Scrum Master Product Owner Product Backlog Estimation & Grooming Meeting Scrum Master Team Team Development Team Sprint 01 Sprint 02 Sprint Backlog Scrum Master Team Sprint Burndown Team Sprint Review Scrum Master Team Sprint Planning I Definition of Done Day Day Day Day Increment Team Sprint Planning II Sprint Planning I Scrum Master Sprint Planning II Team Daily Scrum Team Sprint Retrospective Scrum Master Product Owner Team Team Team
PO-Rolle Stakeholder Produkt- Vision Projekt-Status Unternehmens-Nutzen Anwender-Sicht Priorisierung Entscheidungen Product Owner Anwender-Szenarien Kunden-Nutzen Anwender-Feedback Dev-Team Anwender
Agiles Projektmanagement mit TFS Backlog Management Schätzung und Forecasts Sprintplanung Kapazitätsplanung Demo
Agiles Anforderungsmanagement
Empirisches Projektmanagement Projektion der Vergangenheit zur Vorhersage der Zukunft Messung des Fortschritts um Prognosen den aktuellen Gegebenheiten anzupassen Arbeitsvorrat (Backlog) PBI PBI PBI PBI PBI PBI PBI PBI PBI PBI PBI PBI PBI Velocity 100 Velocity 100 Velocity 100 Velocity 100 Velocity 120 Velocity 120 Velocity 120
Multi Team Management
Multi Project Management
Beispiel BPMN-Prozess
Beispiel BPMN-Prozess
Schätzung der Szenarien Release-Dauer 3 Monate Szenario 1 (50%) Szen. 2 (20%) Szen. 3 (20%) S4 (10%) 2000 Std. 800 Std. 800 Std. 400 Std. Schätzbasis: Wie komplex sind die Szenarien im Verhältnis zueinander Wie groß ist der Nutzen der Szenarien im Verhältnis zueinander (Invest)
Schätzen des Fertigstellungsgrades Erledigte Arbeit Geplante Arbeit Ungeplante Arbeit Wir schätzten, dass wir von den Funktionen die Anwender in diesem Bereich bis zum Ende des Releases erwarten können (Minimum Viable Product) 40% bereits fertig gestellt haben ohne die verbleibende Arbeit im Detail zu kennen.
Release Monitoring
Release Monitoring
Release Monitoring
Ein Plan ist nichts, Planung ist alles Dwight D. Eisenhower
Test Management mit TFS Akzeptanztests mit Microsoft Test Manager Bug Management ATDD Demo
Testen? Implementierung Bug-Fix Testen Release Bug
Team Organisation Mindset Agiles Testen Test Automati -sierung
Team-Struktur
Exploratives Testen Exploratives Testen mit MTM Demo
Unit-Tests Verändern das Qualitätsbewusstsein der Entwickler Gehören zur Implementierung Machen Entwickler effizienter
Unit-Tests Architektur Mindset Herausforderungen Practices
Regression Tests: Funktioniert noch, was gestern funktionierte? Default = Ja! Unit-Tests Automat. UI Tests Integrationstests Setup Tests
Continous Testing Unit Tests mit Visual Studio Continous Integration Build mit Test Ausführung Demo
01.05.2013 03.05.2013 05.05.2013 07.05.2013 09.05.2013 11.05.2013 13.05.2013 15.05.2013 17.05.2013 19.05.2013 21.05.2013 23.05.2013 25.05.2013 27.05.2013 29.05.2013 31.05.2013 CPU Usage [%] Memory Consuption of Process [MB] Load & Performance Tests Performance- Analysen und Trend- Auswertung 100% 90% 80% 70% 60% 50% 40% 30% 20% 10% 0% CPU Testlaufzeit Memory 14 12 10 8 6 4 2 0
Lernen Retrospektive Kontinuierliche Verbesserung Probleme früh erkennen
Mehrere Teams Main Line Team A Team B Team C
Agiles Anforderungsmgmt. Was ist daran falsch?
Build Measure - Learn
Bauen wir wirklich Funktionen die unsere Anwender benötigen? Oder bauen wir Funktionen von denen wir glauben, dass sie benötigt werden?
Stakeholder sind wichtig für ein Projekt, ohne sie kein Projekt Also müssen wir sie auch wichtig nehmen und uns um sie kümmern
Wer sind Stakeholder? Alle die ein Interesse an dem Ergebnis haben, ohne direkt an der Umsetzung beteiligt zu sein Management Marketing / Sales Kunden / Key- User Außendienst Operations Trainings Support
You can t just ask customers what they want and then try to give that to them. By the time you get it built, they ll want something new. Steve Jobs
Probleme Priorität bei Stakeholdern Deployment -Aufwand Feedback verwalten Unklare Anforderungen? Best Guess Sprach- und Domain- Barrieren
Kommunikation im Projekt Feedback Client Storyboarding Tool Demo
Effektive Team-Arbeit
Zusammenarbeit im Team verbessern Pair Programming Daily Scrum Code Reviews Swarming Cross Functional Teams Shared Code Ownership Retrospektiven Wissensvermittlung
Kommunikation innerhalb des Teams Team Rooms Demo
Issue Workflow Wie soll das implementiert werden? Detailierung der Anforderung Welche Änderungen ergeben sich aus der Antwort? Entwickler Product Owner Team
Gewachsene Architektur
Ziele moderner Architektur Wartbar Testbar Erweiterbar
Oberstes Ziel: Entkopplung Single Responsibility MVVM / MVC POCOs Trennung -Daten -Orchestrierung -Logik Sackgassenmethoden Komponentenorientierung IoC Interfaces
Spaghetti-Code Integrations- Test Recognize SplitLine ReadData SplitDigit DB Recognize Digit
Klassische Struktur Recognize Integrations- Test SplitLine Integrations- Test ReadData SplitDigit DB Integrations- Test Integrations- Test Recognize Digit Unit-Test
Sackgassen-Methoden Integrations-Test Recognize ReadData SplitLine SplitDigit Recognize Digit Integrations- Test Unit-Test Unit-Test Unit-Test DB
Häufige Lösung - Greenfield
Refactoring Renovierung des Codes
Greenfield Wirklich? Hoffnung
Greenfield Wirklich? Kunden- Feedback
Greenfield Wirklich? Kapazität
Greenfield Wirklich? Greenfield ist nicht alternativlos
Agile Architektur Vorteile entkoppelter Architektur für Unit-Tests Nutzung von IoC für Mocking Architektur-Tools in Visual Studio Layer-Diagramme Code Maps Code Clone Detection Sequence Diagramms Demo
Continuous value delivery
Motivation - Customer Development
Build-Measure-Learn 1. MAKE BUSINESS HYPOTHESIS A TESTABLE EXPERIMENT 6. PERSEVERE OR PIVOT 2. DEFINE EXPERIMENT AS MINIMUM VIABLE PRODUCT (MVP) 5. GAIN VALIDATED LEARNING 3. BUILD MEASUREMENT INTO MVP 4. MEASURE THE RESULTS
Release Management 2013 TFS DEV QA PROD Automates Workflow Full Traceability
Release Management Deploy via Build Deploy via Visual Studio Release Management Demo
Learn - Feedback and Telemetry WORKING Software
Application Insights Available Performing Improving Health Dashboards Notifications & Deep Insights Usage Dashboards Is my application available and performing for users? One Dashboard What s wrong? Show me suspicious code and test cases Where do we invest next? Show me top features and customer Usage patterns
DevOps Mean Time to Detect (MTTD) Mean Time to Repair (MTTR)
Team Power Was macht gute Teams aus?
Bessere Entscheidungen
Teamverantwortung
Team-Motivation
Risiken reduzieren
Wie bekomme ich großartige Teams?
Es lohnt sich
Retrospektive Was war das spannendste Thema für sie? Was werden sie morgen in ihrem Team ändern? Welches Thema war für sie am wenigsten wertvoll?
Meine Message Vorgehensmodell ist wichtig Ganzheitliche Betrachtung Agile Kultur schaffen
Thomas Schissler tschissler@artiso.com Phone: +49 (7304) 803-0 artiso AG Oberer Wiesenweg 25 D-89134 Blaustein http://www.artiso.com/problog