Softwareentwicklung bei eevolution Darstellung der Prozesse mit dem agilen Entwicklungsansatz Jan Freitag, COMPRA GmbH
Jan Freitag Studium: IMIT Bachelor: 2005-2008 IMIT Master: 2008-2010 eevolution: Mitarbeit als Werksstudent: 2007-2010 Aufgabenbereiche: Software-Entwickler eevolution Standard Projektprogrammierung/-leitung Business Intelligence (Data Warehousing, OLAP, Reporting) EDI (Electronic Data Interchange)
Agenda Was bedeutet agil? Softwareentwicklung mit Scrum Aufgaben in der Standardentwicklung Entwicklungswerkzeuge Agile Methoden TeamConf 2013 / Microsoft Agile Konferenz
Was bedeutet agil? Duden: von großer Beweglichkeit zeugend; regsam und wendig lat. agilis: flink; beweglich "Nichts ist so beständig wie die Veränderung." (Bob Dylan)
Flexibilität Warum agil? Schnelle Reaktionsfähigkeit Time to Market reduzieren/ Releasezyklen verkürzen Kommunikation/Feedback verbessern Microsoft Tools ausnutzen
Softwareentwicklung mit Scrum Quelle: http://msdn.microsoft.com/de-de/library/vstudio/dd997796(v=vs.100).aspx
Rollen: Softwareentwicklung mit Scrum Product Owner Scrum Master Team Artefakte: Product Backlog Sprint Backlog Burndown Chart Quelle: http://msdn.microsoft.com/de-de/library/vstudio/dd997796(v=vs.100).aspx
Aufgaben in der Standardentwicklung Feature Requests Konzeption Datenmodellierung UI-Design Funktionale und nichtfunktionale Anforderungen Implementierung Bugfixing Code Reviews
Aufgaben in der Standardentwicklung Qualitätssicherung und Dokumentation Vorqualifikation von gemeldeten Fehlern Black Box Tests von Bugfixes Change Requests Übergreifende Softwaretests vor den Releases Erstellung und Auswertung von automatisierten Tests Dokumentation der ERP-Software On- und Offline Hilfe mit Flare Installationshandbücher Neuerungsdokumente Aber auch: Erstellung von Konzeptionen für Change Requests Ja, wir bieten Praktika in allen Bereichen an!
Entwicklungswerkzeuge Microsoft Team Foundation Server 2012 Version Control, Product Backlog, Bugtracker Microsoft Visual Studio 2013 IDE (Entwicklungsumgebung) Microsoft SQL Server 2012 Relationale Datenbank, multidimensionale Datenbank Microsoft.NET C# 4.5 Programmiersprache Weitere Tools: StyleCop Hawkeye.NET Reflector LinqPad Wichtige Technologien/Konzepte MVVM (MVC) Design Pattern Entity Framework zur Abstraktion der Datenbankschicht (LLBLGEN)
Team Foundation Server Web Access Quelle: http://msdn.microsoft.com/de-de/library/ee523998.aspx
Agile Methoden Pair-Programming Refactoring (besonders auch bei legacy Code) Code reviews Story-Cards User Stories Prototyping [Test-Driven Development] Test Automation Continuous Integration/ Gated Checkins Continuous Delivery
Storyboarding/Prototyping mit Power Point Quelle: http://msdn.microsoft.com/de-de/library/hh409276.aspx
Code Reviews mit Visual Studio Quelle: http://www.visualstudio.com/en-us/get-started/get-code-reviewed-vs.aspx
UI Testing Microsoft Test Manager Coded UI Tests für automatisierte UI Tests Aufzeichnung von Testabläufen für manuelle Tests Quelle: http://msdn.microsoft.com/de-de/library/dd286726.aspx
Branching-Strategie Main Release eevolution 8.1 Branch RTM eevolution 8.1.2 Branch Bugfix/Feature Pack eevolution 8.1.2.0 Branch
Release-Management Major Releases alle zwei Jahre Service Packs halbjährlich BF-Packs (Bugfix/Feature Packs) alle 3 Wochen kundenspezifische Hotfixes On Demand bei kritischen Fehlern Das MS Team Foundation Server Team arbeitet auch nach Scrum und veröffentlicht alle 3 Wochen eine neue Version in der Cloud
TeamConf 2013 Thema ALM (Application Lifecycle Management) Microsoft Team Foundation Server 2013 Testing Agile (Tools, Planning)
Agile Portfolio Management Quelle: http://msdn.microsoft.com/en-us/library/dn306083.aspx
Visualisierung des Fortschritts Quelle: http://msdn.microsoft.com/en-us/library/dn407521.aspx
Kanban Board Alternativ oder auch in Kombination mit Scrum Work in Progress (WIP) festlegen Definiton of Done Quelle: http://msdn.microsoft.com/en-us/library/jj838789.aspx
Weitere Funktionen in Visual Studio/TFS 2013 Team-Rooms Architektur-Diagramme mit Validierung Cloud-based Load Tests Release-Management Tool GIT Integration als alternative Versionskontrolle Feedback-Client Nutzungsstatisiken
Fazit Der agile Entwicklungsansatz ist noch nicht vollständig bei uns implementiert Die Prozesse werden stetig kritisch betrachtet, gemessen und verbessert Microsoft Tools werden immer besser im Bezug auf den agilen Entwicklungsansatz
Quellen Alle Abbildungen und Screenshots stammen aus dem Microsoft Developer Network (MSDN, http://msdn.microsoft.com). Die exakten URLs sind jeweils unter den Abbildungen angegeben.