18.09.2019

Agile Projekte mit Microsoft Azure DevOps

Stehen auch Sie vor der Herausforderung, in ihrer Produktentwicklung schnell auf sich ändernde Marktgegebenheiten reagieren zu müssen und möchten Sie neue Features nicht auch möglichst schnell Ihren Kunden zugänglich machen? Erfahren Sie in unserer DevOps Artikelserie anhand eines konkreten Use Cases, wie Sie Microsoft Azure DevOps genau hierfür gewinnbringend einsetzen können – und dass bei Weitem nicht nur für Softwareprojekte.

Immer mehr Projekte werden agil durchgeführt. In diesem Zuge verändern sich die Anforderungen an Projektmanagementwerkzeuge. Microsoft hat mit der Weiterentwicklung von Azure DevOps, dem Nachfolger von Visual Studio Team Services (VSTS), ein hilfreiches Werkzeug am Markt platziert. Als Nachfolger von VSTS ist die Nähe von Azure DevOps zu Softwareentwicklungsprojekten offensichtlich. Dabei lässt sich leicht übersehen, dass Azure DevOps durch seinen modularen Aufbau auch für Nicht-Softwareprojekte viel zu bieten hat und alle wesentlichen Phasen agiler Projekte unterstützt.

Was ist Azure DevOps?

Microsoft Azure DevOps ist ein Tool zur Unterstützung von Softwareentwicklungsteams im gesamten Entwicklungszyklus von der Anforderungsaufnahme über die Umsetzung und das Testen bis hin zur automatisierten Bereitstellung. Der Name DevOps ergibt sich aus den Abkürzungen von Development (Dev) und Operations (Ops) und gilt als einer der großen Megatrends der Branche, welcher eine immer größer werdende Aufmerksamkeit erreicht. Dieser Trend wird unterstrichen durch Studien, die enorme Effizienzgewinne durch die Implementierung von DevOps belegen. Laut dem „State of DevOps Report 2018“ schafft die Spitzengruppe 46x häufigere Deployments, 2555x schnellere „Lead Time“ von Commit bis Deployment, 7x geringere Fehlerquoten und eine 2604x schnellere Behebung von Fehlern. 
 

Nun wäre es falsch Azure DevOps mit DevOps gleichzusetzen. DevOps ist weder ein Tool, eine Software noch eine Methodik oder ein Prozess. DevOps muss vor allem als eine Kultur oder eine Philosophie verstanden werden, die die Zusammenarbeit von Entwicklung und Betrieb in den Vordergrund stellt. Häufig geht dies einher mit einem Wechsel des Mindsets, mit einem Wechsel der Art der Zusammenarbeit und einer engeren Integration von Entwicklung und Betrieb zur Überwindung von bestehenden Silos. DevOps verspricht eine Steigerung des gegenseitigen Vertrauens, schnellere Reaktionszeiten, eine schnellere Generierung von Nutzen für den Kunden sowie eine bessere und verlässlichere Handhabung von geplanter und ungeplanter Arbeit. Viele dieser Ziele gleichen den Zielen agiler Methoden. Azure DevOps als Werkzeug zur Unterstützung von DevOps bietet sich daher nicht nur im Kontext von IT bzw. Dev und Ops-Themen an, sondern auch im Rahmen von agilen Projekten ohne IT-Bezug.

Im Rahmen dieser Reihe von Blogposts werden wir anhand eines konkreten und aktuellen Anwendungsfalles darstellen, wie Azure DevOps diverse Herausforderungen im Kontext agiler Projekte mit und ohne IT-Schwerpunkt unterstützen kann.

Übersicht: Die Module in Azure DevOps

Azure DevOps ist modular aufgebaut. Das hat einen entscheidenden Vorteil: in vielen Unternehmen sind bereits in Teilen gute Tools für Teildisziplinen etabliert, bspw. über eine Testmanagement Suite. Jedoch fehlen oft integrierte Lösungen für die Planung oder die Continuous Integration (CI) und Continuous Deployment Pipeline, um einen durchgängigen Ansatz zu ermöglichen. Darüber hinaus gibt es aber auch Unternehmen, in denen bspw. Fachabteilungen lediglich eine einfache Lösung für die Organisation Ihrer Arbeit mithilfe von flexibel konfigurierbaren Taskboards durchführen möchten. In einem solchen Fall lassen sich nur die Azure Boards aktivieren und die anderen Module ausblenden – ein späteres Hinzuschalten ist jederzeit möglich.

Allgemein unterstützt Azure DevOps alle Phasen eines (IT-) Projekts. Entsprechend des individuellen Anforderungsprofils des Projekts lassen sich die nachfolgend dargestellten Module flexibel aktivieren. 
 

Der idealtypische Entwicklungsprozess kann dabei mit Azure DevOps wie folgt umgesetzt werden. Die anfängliche Anforderungsanalyse wird durch Azure Boards und die Wiki-Integration unterstützt. Anschließend kann die Planung sehr flexibel bspw. in Form von Sprints in den Boards abgebildet werden – out of the box sind Sie hier vollkommen flexibel was die Konfiguration und Darstellung von Feldern, Filtern und Views angeht. 

Spätestens wenn es in die Umsetzung erster Artefakte und Software Deliverables geht, bietet Azure Artifacts ein Package Management an und mit Azure Repos steht darüber hinaus eine mächtige Repository-Integration zur Verfügung, mithilfe derer Sie ein Versionskontrollsystem einbinden können. 

Azure Test Plans bietet die Möglichkeit eines voll integrierten Testmanagements, wovon ein Teil die eigentlichen Test Cases sind. Diese sind direkt mit Ihren Anforderungen verknüpft und erlauben neben der Eingabe von Test-Feedbacks zu einzelnen Testschritten auch die Erstellung von Bugs - alles ohne Verlassen der Tool-Suite. Mehrere Excel-Listen mit einzelnen Testschritten und Links zu den eigentlichen Testumgebungen gehören damit der Vergangenheit an. Auch eine grafische Auswertung innerhalb frei konfigurierbarer Dashboards steht hier zur Verfügung:

Azure Pipelines bietet CI/CD, die mit jeder Sprache, Plattform und Cloud-Umgebung funktionieren. Damit kann eine Verbindung zu GitHub oder einem beliebigen Git-Repository hergestellt und eine kontinuierliche Bereitstellung neuer Produktversionen ermöglicht werden. Ein Zusammenführen der verschiedenen Informationen ist sehr einfach über die flexibel konfigurierbare Dashboard Funktion in Azure DevOps möglich – hier können Sie sich bspw. Burndown Charts, eine Build History oder den Verlauf der Velocity übersichtlich und grafisch darstellen lassen.

Zu guter Letzt steht Ihnen mit dem Microsoft Marketplace zusätzlich die Möglichkeit offen, Azure DevOps um weitere Features zu erweitern, auch dies werden wir Ihnen im Detail in der Blogartikel Serie zu Azure DevOps anhand eines konkreten Beispiels vorstellen.

Viele Unternehmen setzten bereits auf die direkten Vorgänger von Azure DevOps – die Cloud Variante Visual Studio Team Services (VSTS) oder die On-Prem Variante Team Foundation Server (TFS). VSTS-Benutzer erhalten automatisch ein Upgrade auf Azure DevOps-Projekte. Für bestehende Benutzer gibt es dabei keinen Verlust an Funktionen. Kunden, die bisher TFS genutzt haben, können auf die neue Version Azure DevOps Server migrieren - durch die im TFS immer enthaltene Software Assurance, kann man hier kostenlos upgraden.

Freuen Sie sich auf die weiteren Artikel zu Azure DevOps, die wir regelmäßig bis zum Ende diesen Jahres veröffentlichen werden, um Ihnen anhand eines Beispiels die Vorteile dieser Lösung näher zu bringen.