Dynamics 365 CE & DevOps - Das perfekte Paar?
Sparen Sie wertvolle Zeit mit DevOps im Einklang mit Dynamics 365 Customer Engagement.
DevOps, Scrum, Agile – mit diesen Schlagwörtern wird man zwangsläufig konfrontiert, sobald es um Software-Entwicklung und Projektarbeit geht. Sie werden inflationär verwendet und als allumfassende Lösung für das Projektmanagement angepriesen. Und das stimmt auch – wenn man es denn richtig macht.
Scrum und Agile als Methode zur Verbesserung des Projektmanagements
Richtig benutzt und eingesetzt, zeigen sich die umfassenden Vorteile für das erfolgreiche Projektmanagement.
Bei Scrum und Agile handelt es sich um eine empirische, inkrementelle und iterative Vorgehensweise, die darauf fußt, dass heutige Entwicklungsprojekte zu komplex sind, um sie auf Basis festgelegter Anforderungen vollumfänglich durchzuführen. Doch obwohl es sich um eine agile Entwicklungsmethode handelt, die über Zwischenergebnisse den langfristigen Plan erschafft und Lösungstechniken entwickelt, heißt das nicht automatisch, dass man die Anforderungen wild ändern und wählen kann.
Ein DevOps-Tool richtig implementieren
Es reicht nicht, ein DevOps-Tool wie Azure DevOps oder Jira zu implementieren – man muss es auch leben. Denn DevOps ist in erster Linie kein Tool, das implementiert wird und von da an seine Arbeit verrichtet. DevOps ist eine Philosophie bzw. ein Konzept, das zur Unternehmenskultur werden muss, um erfolgreich zu sein. DevOps ist ein Kunstwort und verbindet die zwei Unternehmensbereiche Development, also Entwicklung oder Weiterentwicklung, und Operations, also die Aufgabe, den Betrieb der Anwendung in der Produktion zu gewährleisten.
Entwicklung hat zum Ziel, auf neue Anforderungen zu reagieren und Änderungen vorzunehmen, damit die Benutzer ihren Arbeitsalltag effizienter und leichter bewerkstelligen können. Änderungen bedeuten für den Betrieb allerdings immer ein potentielles Risiko, beispielsweise dass eine andere Komponente auf einmal nicht mehr richtig funktioniert. DevOps ist das Werkzeug, um diese beiden Bereiche zusammenzubringen und den Prozess soweit zu automatisieren, dass Problem frühzeitig, bereits vor dem Ausrollen auf die Produktion, erkannt werden.
Im Fokus von DevOps stehen demnach die Mitarbeiter der Bereiche Development und Operations, welche in besonderem Maße gegenseitige Akzeptanz und Verständnis leben müssen, um eine erfolgreiche Zusammenarbeit zu ermöglichen.
DevOps als perfekter Partner für Dynamics 365 CE
Die große Frage ist nun, inwieweit DevOps einen Vorteil im Zusammenspiel mit Dynamics 365 Customer Engagement bietet und ob es sich integrieren lässt. Dynamics 365 CE war lange Zeit eine Plattform und keine Applikation, mit der man schnell und dynamisch Änderungen vornehmen konnte – daher der Name Dynamics 365.
Mittlerweile ist Dynamics 365 CE nur eine Applikation, die auf der Microsoft Power Plattform läuft. Die Systeme sind gut miteinander vernetzt und kritische Prozesse, wie Support oder auch Field-Service sind integriert. Ein Fehler kann nicht nur das System ins Stolpern bringen und Sie viel Geld kosten, sondern auch Ihre Kundenbeziehung deutlich schwächen. Kundenbeziehungen sind das Wertvollste, das Sie haben. Sie müssen einwandfrei gepflegt werden, dazu zählt, dass Ihre Prozesse kundenfreundlich sind und fehlerfrei ablaufen.
Jede Reise beginnt mit einem ersten Schritt
Nehmen Sie sich also die Zeit und setzen Sie sich mit dem Thema DevOps auseinander. Planen Sie Änderungen mit Hilfe eines Backlogs ein und priorisieren Sie Themen richtig, bündeln Sie Anpassungen zu einem gemeinsamen Release und testen Sie ausführlich mit einem Testplan oder automatisieren Sie gar kritische Testfälle. Lassen Sie Tests automatisch durchführen, um Zeit zu sparen und nichts zu vergessen. Unterstützen Sie diesen Prozess mit mindestens einem Entwicklungs-, einem Test- und einem Produktiv-System. Wollen Sie sogar Vorreiter werden, dann Automatisieren Sie die Verteilung der Anpassungen.
Regelmäßige Qualitätskontrolle der Anpassungen
Bei einem so umfangreichen und komplexen Thema wie DevOps, muss man immer eine Lernkurve einplanen. Aber wie lange dauert es, bis ein Team soweit geschult ist, damit es dieses Werkzeug selbständig einsetzten kann? Vor allem geht es am Anfang darum zu entscheiden, in welchen Teil man investiert, um möglichst zügig ein nützliches Ergebnis zu erhalten. Das Aufsetzen einer komplett automatisierten Build- und Release-Pipeline, also ein vollständiges Deployment, ist an dieser Stelle mit Sicherheit der falsche Ansatz. Fangen Sie also mit einem kleinen und sehr konkreten Anwendungsfall an, wie in unserem folgenden Beispiel. Dann kann Ihr Team, je nach Erfahrungsstand, in 1-3 Tagen schon die erste Automatisierung umsetzten.
Unser Ansatz
Da wir bei Fellowmind gerne agil entwickeln, behandelt das Praxis-Beispiel eine Maßnahme, die man regelmäßig durchführen sollte. Lassen Sie Ihre Anpassungen alle 1-2 Wochen auf Konformität, Performance und abgekündigte Funktionen überprüft werden. Auch wenn es nicht so häufig zu Änderungen kommt, können Sie so kontinuierlich Altlasten überarbeiten.
Mit wenigen Schritten zum Erfolg
Für diese Überprüfung (siehe Abbildung unten) empfehlen und nutzen wir den PowerAppChecker von Microsoft, welcher diesen Test sehr gründlich und umfangreich durchführt. Anfangs war der PowerAppChecker nur über die Admin-Oberfläche zu erreichen und musste manuell angestoßen werden. Hierfür markierte man eine nicht verwaltete Lösung zur Prüfung. Der PowerAppChecker analysiert die Komponenten, wie Plugins, Workflows und JavaScripte auf diverse Probleme. Das Augenmerk liegt nicht nur auf Performance und Nutzung von abgekündigten Funktionen, sondern auch auf unzureichende oder fehlerhafte Programmierung.
Mittlerweile kann man den PowerAppCheck auch automatisch ausführen. Dafür kann das Werkzeug innerhalb des eigenen Tenants via Powershell aufgerufen werden. Die Lösung wird innerhalb des eigenen Tenants geprüft und die Ergebnisse in Form einer JSON Datei bereitgestellt.
Genau jetzt kommt DevOps ins Spiel. Die oben beschriebene Aufgabe lässt sich vollständig automatisieren. Hierfür braucht es weder viel Vorbereitung noch Zeit. Es muss lediglich ein neuer Pipeline Job erstellt werden. Dieser kann so eingestellt werden, dass er einmal die Woche läuft. Alles was man dafür braucht sind diese 4 Dinge:
- Eine App-Registrierung für die GraphAPI und den PowerApps-Advisor
- Die Tenant ID
- Ein paar Tasks von Wael Hamze für die Automatisierung
- Den Sarif Viewer Build Task von Microsoft DevLabs
Jetzt muss man diese Bausteine nur noch nach folgender Anleitung zusammenstellen und sich am Ergebnis erfreuen. Kombinieren Sie die folgenden Aufgaben in Ihrer Pipeline:
- Installation der MSCRM Tools
- Exportieren der aktuellen Lösung aus dem Dev-System
- Senden der exportieren Lösung an den Solution Checker
- Die Fehleranzahl nach Kategorien gegen individuelle Grenzwerte abgleichen (z.B. <= 5 hochgradige Fehler)
- Ergebnis-Archiv (zip) entpacken und hochladen
Die Vorteile im Überblick
Je nach Einstellung liefert und informiert der Solution Checker wöchentlich über neue Ergebnisse. Im Falle von Fehlern kann DevOps auch direkt einen Bug einstellen, so dass Ihr Team bei der nächsten Planung Maßnahmen zur Verbesserung einplanen kann. Des Weiteren sorgt die gut aufgearbeitete Darstellung im Build-Ergebnis für einen guten und schnellen Überblick.
Die Ergebnisse des PowerAppCheckers helfen dabei, Probleme schneller zu erkennen, um sie zeitnah zu beheben. Die regelmäßige Überprüfung durch den PowerAppChecker hilft dem Team zu sehen, welchen Fortschritt es gemacht hat und erspart die Zeit der manuelle Überprüfung. Denn ein konformes, stabiles und vor allem effizientes Dynamics 365 CE erleichtert den Endanwendern das tägliche Arbeiten enorm. Wir unterstützen Sie gerne dabei, die ersten Automatisierungen bei Ihnen einzurichten.
Betrachtet man die Entstehung und Weiterentwicklung von DevOps, so stellt man fest, dass das Toolset sich an den Bedürfnissen und Wünschen von Entwicklerteams orientiert und diese vollumfänglich unterstützt.
DevOps als Unterstützung im Projektmanagement
DevOps als Synergie zwischen Development und Operations kann jede Form (agiler) Entwicklungsarbeit unterstützen und dabei helfen, die Effizienz von Entwicklerteams zu erhöhen und dadurch Projektlaufzeiten zu verkürzen. In diesem Zusammenhang sollte DevOps auch als einflussreiches Tool in der Projektsteuerung nicht unterschätzt werden.
Innerhalb von Fellowmind vertrauen wir in der Zusammenarbeit mit unseren Kunden fast ausschließlich auf agile Entwicklungsmethoden wie SCRUM, um gemeinsame Projekte erfolgreich umzusetzen. Dadurch ergeben sich im Aufgabenfeld des Projekt-Managements zwangsläufig Herausforderungen, welche es für einen reibungslosen Projektverlauf zu steuern gilt.
Hierzu gehören unter anderem:
- Schwankende Auslastung der Projektbeteiligten durch sich ändernde Anforderungen bzw. eine geänderte Priorisierung
- Weniger formale Dokumentation durch stetige Weiterentwicklung der Lösung
- Eingeschränkte Budget-Planbarkeit der Zeit bis zur Fertigstellung aufgrund der fehlenden Definition der Endlösung
Bei den drei oben genannten Herausforderungen kann ein richtig auf- bzw. eingesetztes DevOps das Projektmanagement maßgeblich unterstützen.
DevOps Boards
Boards innerhalb des DevOps ermöglichen eine vollumfängliche Übersicht der geplanten, gerade in Umsetzung befindlichen sowie abgeschlossenen Items. Dabei können die einzelnen Stages des Boards an die jeweiligen Anforderungen des Projekts angepasst werden. Durch diese einfache Übersicht kann eine Transparenz für das Projektmanagement gewährleistet werden, welche als Grundlage für Kapazitäts-/Zeitplanung dienen kann. Deshalb sollte man DevOps Boards als Tool zur Priorisierung und Aufgabenplanung nicht unterschätzen.
Das Bild veranschaulicht die Übersicht der User-Story mittels des DevOps Boards unterteilt in einzelne Stages (hier als Spalten).
Nutzung von Sprints innerhalb von DevOps unterstützen den agilen Ansatz von SCRUM
Des Weiteren dienen sie dem Projekt-Team als Übersicht der aktuellen und geplanten To-Dos. Innerhalb der Sprint-Planung werden die entsprechenden Backlog-Items einzelnen Sprints zugewiesen und innerhalb dieser abgearbeitet. Dabei hat das Projektmanagement immer den Überblick darüber, welches Projekt-Mitglied an welchem Thema arbeitet und bis wann es abgeschlossen sein soll. Die Länge der Sprints kann dabei im DevOps an das jeweilige Projekt angepasst werden und passt sich dadurch den jeweiligen Anforderungen des aktuellen Projekts bzw. der aktuellen Projekt-Phase an.
Übersicht über geplante und umgesetzte Aufwände dringend erforderlich
Innerhalb von DevOps ist es daher sinnvoll sowohl auf Story als auch auf Task Ebene die notwendigen Aufwände zu erfassen und entsprechend zu tracken. Gesamtheitlich erfasst, dienen diese Aufwände einer genaueren Budget-Planbarkeit und fördern somit aktiv einen erfolgreichen Projektverlauft & Abschluss.
Je nach Kenntnisstand und Erfahrung im Bereich DevOps sowie agiler Projekte gibt es weitere Funktionen, die das Projektmanagement maßgeblich unterstützen können. Eine Auswahl möglicher Funktionen:
- Kapazitäts-Tracking innerhalb einzelner Sprints für alle Projekt-Ressourcen
- Automatisierte Erstellung von Release Notes zur Verbesserung der Projekt Dokumentation
- Erstellung von Dashboards (z.B. Burndown Charts, Item counts)
DevOps ist folglich nicht nur in der Projektentwicklung von Vorteil, sondern birgt auch erhebliche Chancen für andere Unternehmensbereiche.
Wir helfen Ihnen gerne dabei, das richtige Maß zu finden. Jeder Schritt in Richtung DevOps kostet natürlich Zeit, jedoch werden Sie sich dafür in Zukunft viel Zeit ersparen und schnellen Änderungen gelassener entgegenblicken. Zusammen mit Fellowmind werden Sie Ihre Potentiale im Unternehmen vollumfänglich nutzen.