Azure DevOps ist eine SaaS-Plattform von Microsoft für die Planung, Durchführung und Verwaltung von Softwareprojekten. Es ist eine Suite verwandter Tools, mit denen Softwareteams ihre Arbeit verfolgen, Code verwalten, Builds ausführen, Anwendungen bereitstellen und Tests verwalten können. Es handelt sich um ein zentralisiertes, vollständiges und nahtlos integriertes Set von Tools, das für nahezu jedes Softwareprojekt verwendet werden kann. In der Vergangenheit war es unter anderen Namen bekannt, wie z.B. Visual Studio Online (VSO) oder Visual Studio Team Services (VSTS) und ist die Weiterentwicklung von Team Foundation Server (TFS).

Wie Sie auf der Microsoft Azure DevOps Produktseite sehen können, kann dies anfangs wegen des großen Funktionsumfanges etwas entmutigend sein. In diesem Blogbeitrag erhalten Sie daher einige grundlegende Informationen zu den Funktionalitäten, Services und Anwendung von Azure DevOps, für einen optimalen und einfachen Einstieg. Auch wenn Azure DevOps nicht über die Funktionen einer vollständigen Projektmanagement-Suite verfügt, sollten Projektmanager, Produktmanager und Business-Analysten gleichermaßen in der Lage sein, die in diesem Beitrag beschriebenen Funktionen zu nutzen. Machen wir uns also auf den Weg und tauchen gemeinsam ein in die Welt von Azure DevOps.

Die Funktionen von Azure DevOps

Die Funktionen von Azure DevOps können nach Personen, Prozessen und Tools klassifiziert werden. Anhand dieser Karte können Sie die Sicherheitsfunktionen, die Prozessmanagementfunktionen und die Tools für den Informationsaustausch ansehen. Dies sind die wichtigsten Funktionen, die für das Azure DevOps-Projektmanagement verwendet werden.

Menschen

Menschen sind das Herzstück jeder Organisation. Azure DevOps passt zu Arbeitsgruppen, Teams oder traditionellen Managementansätzen. Sie können eine Verbindung zu Ihrem Azure Active Directory (AD) herstellen, mit einem On-Prem AD synchronisieren oder sogar Gäste zur Arbeit in Ihrer Instanz einladen. Alle Benutzer unterliegen einer Zugriffskontrolle, so dass Sie steuern können, was sie sehen und was nicht. Schließlich werden die Benutzer zu Teams hinzugefügt, in denen sie ihre Arbeit einsehen, auf den Code zugreifen und mit anderen zusammenarbeiten können.

Benutzer

Benutzer werden von einem Administrator zu Azure DevOps hinzugefügt. Nach dem Hinzufügen kann ein Benutzer sein Profil einrichten, indem er sein Bild und einige andere Informationen über sich selbst hinzufügt.

Azure AD/Gäste

Ein typischer Benutzer wird zu Ihrem Azure AD hinzugefügt. Sie können auch Gäste aus anderen Organisationen einladen, sich an Ihrer Arbeit zu beteiligen, wenn dies zuvor in Azure konfiguriert wurde. Es ist ideal, wenn Sie einen Berater an einem Projekt mitarbeiten lassen oder die Arbeit mit externen Ressourcen teilen müssen. Geben Sie einfach die E-Mail-Adresse der Person ein, wenn Sie den Benutzer hinzufügen, und wählen Sie ein Team aus. Sobald der externe Benutzer eingeladen wurde, erhält er eine E-Mail mit einer Einführung und den Links zum Projekt.

Gruppen/Zugriffsrechte

Gruppen sind der wichtigste Mechanismus zur Zugriffskontrolle in Azure DevOps. Es gibt mehrere integrierte Gruppen, die Benutzern Zugriff auf verschiedene Funktionen geben. Die Zugriffsebenen werden in der Dokumentation ausführlich behandelt. aber es ist einfach, eine Gruppe einzurichten und Benutzer oder sogar andere Gruppen hinzuzufügen. Die Seite mit den Organisationseinstellungen bietet eine Gruppenverwaltung für die Organisation. Fügen Sie einfach Mitglieder zu der entsprechenden Gruppe hinzu und folgen Sie dabei dem Prinzip des geringsten Privilegs.

Auf der Seite der Projekteinstellungen können Sie außerdem die Berechtigungen für eine Gruppe für das Projekt selbst festlegen. Wenn Sie mehrere Projekte haben, können Sie für jedes Projekt unterschiedliche Zugriffsebenen festlegen. Auf diese Weise kann ein einzelner Benutzer oder eine Gruppe je nach Bedarf unterschiedliche Zugriffsrechte für verschiedene Projekte erhalten.

Teams

Benutzer können in ein oder mehrere Teams eingeteilt werden. Ein Beispiel soll dieses Konzept verdeutlichen.

Nehmen wir an, Mark ist ein Entwickler, der an Projekt X arbeitet und für eine gewisse Zeit auch in Projekt Y eingebunden wird. Mark ist im Team Projekt X, kann also alles sehen, was ein Entwickler in Projekt X sehen kann, sieht aber noch keine Inhalte in Projekt Y. Ein Administrator muss Mark zum Team Projekt Y hinzufügen, damit er auf die Ressourcen für dieses Projekt zugreifen kann.

Teams können einen engeren Umfang haben als das Projekt. Ein Team kann sich auf ein Portfolio, ein Projekt, einen Bereich oder eine Iteration beschränken. Ein Testteam sieht vielleicht nur Bugs, Stories und Aufgaben auf dem Azure-Board. Ein Programm-Manager hingegen kann einem Portfolio-Team angehören, in dem er nur epische Projekte und Funktionen sehen kann, ohne mit Details überwältigt zu werden.

Prozesse

Die Arbeitsabläufe in der Software-Entwicklung sind von Unternehmen zu Unternehmen sehr unterschiedlich, daher bietet Azure DevOps einige allgemeine Vorlagen für Azure-Boards. Diese sind anpassbar, womit jedoch zusätzliche Komplexität einhergeht. Damit Ihr Prozess (siehe nächsten Abschnitt: Prozesstypen) reibungslos abläuft, können Sie Ihre Backlogs und Workitem-Felder entsprechend den Anforderungen Ihrer Organisation oder Ihres Projekts einrichten.

Prozesstypen

Die vier integrierten Prozesstypen für Boards sind Basic, Agile, Scrum und CMMI (Abbildung 1 und 2). Von einfach bis komplex, bieten sie Ihnen in der Regel die gebräuchlichsten Felder und Strukturen, die Sie für die Verwaltung der Arbeit innerhalb verschiedener Prozesstypen benötigen. Sie finden eine Übersicht auf der Microsoft Seite unter Azure Boards.

Von dort aus können Sie einen „geerbten“ Prozesstyp erstellen. Ein geerbter Prozesstyp ist Ihre eigene Prozessdefinition, der Sie Felder hinzufügen und einen eigenen Namen geben können. Prozesstypen gelten für das Projekt, Teams jedoch können ihre eigenen Boards haben, um die Arbeit auf unterschiedliche Weise zu betrachten. Entwicklerteams müssen zum Beispiel nur ihre eigene Arbeit sehen, während ein Manager die Arbeit aller seiner Mitarbeitenden sehen muss.

Die 5 Level vn CMMI - AzureDevOps
Abbildung 1: CMMI in Azure DevOps
Capability Maturity Model IntegrationAzure DevOps
Abbildung 2: CMMI in Azure DevOps (continued

Für CMMI sollten Sie sich entscheiden, wenn Ihr Team formalere Projektmethoden anwendet, die einen Rahmen für die Prozessverbesserung und eine überprüfbare Aufzeichnung von Entscheidungen erfordern. Mit diesem Prozess können Sie Anforderungen, Änderungsanträge, Risiken und Überprüfungen verfolgen. Dieser Prozess unterstützt formale Änderungsmanagementaktivitäten. Aufgaben unterstützen die Verfolgung der ursprünglichen Schätzung, der verbleibenden Arbeit und der abgeschlossenen Arbeit.

Backlogs

In Backlogs verwalten Sie Ihre Arbeitselemente. Sie dienen der Produkt- und Funktionsplanung sowie der Arbeitsorganisation. Die Arbeitselemente können je nach Bedarf in verschiedene Ebenen unterteilt werden. Die Arten von Problemen, die den einzelnen Backlogs zugeordnet werden, hängen vom gewählten Prozesstyp ab. Die drei Haupttypen sind wie folgt:

Portfolio-Backlog: übergeordnetes Backlog von Epics und Features
Anforderungs-Backlog: detaillierteres Backlog mit Issues, Product Backlog Items oder User Stories
Iterations-Backlog: Backlog auf Aufgabenebene für jede zeitlich eingegrenzte Iteration
Welche anderen Backlog-Typen – z. B. Bugs und Impediments – angezeigt werden, hängt von der Einstellung des Teams ab.

Projekte

Projekte sind im Grunde Container für die Verwaltung von Arbeit. Manchmal ist es sinnvoll, Produkte ihren Projekten zuzuordnen. Ein anderes Mal hingegen, sollte ein Projekt auch für ein bestimmtes Arbeitsprojekt erstellt werden. Alles hängt vom Umfang dessen ab, was Sie erreichen möchten.

Boards

Boards dienen der Organisation und Verwaltung der Arbeit. Arbeitsaufgaben sind Karten auf einem Board, die in Spalten unterteilt sind. Die Spalten stellen den Status der darin enthaltenen Aufgaben dar. Verschieben Sie die Karten von links nach rechts auf der Tafel, wenn Ihre Arbeit erledigt ist.

Iterationen

Iterationen werden für die Planung verwendet. Während Azure DevOps die Arbeit automatisch prognostizieren kann, ist es schwierig, jedes Arbeitselement im Voraus auf sinnvolle und genaue Weise zu erfassen. Dadurch wird die Vorhersage möglicherweise ungenau.

Scrum versucht, dieses Problem mit einem Sprint-Planungszyklus zu lösen. In Scrum würden Sie nur die Arbeit für die nächsten zwei Wochen planen, indem Sie die Arbeit aus dem Backlog abrufen und nach und nach lernen, wie viel Sie in einer Iteration erledigen können.

Der Kanban-Ansatz hingegen verwendet einen kontinuierlichen Pull ohne spezifische Planungszyklen. Obwohl die Releases nicht in eine Iteration fallen müssen, kann es dennoch hilfreich sein, sie ausschließlich als Planungszyklen zu verwenden.

Bereiche

Sie können Bereiche verwenden, um die Arbeit logisch aufzuteilen, sie funktionalen Bereichen zuzuordnen oder sogar Bereiche für verschiedene Geschäftszweige zu schaffen, z.B. für Finanzen, Risikomanagement, Personalwesen usw. Innerhalb eines größeren Projekts sind Bereiche sehr nützlich, um die Arbeit und die Gremien überschaubarer zu machen. Sogar Gremien und Teams lassen sich bestimmten Bereichen zuordnen. So könnten Sie einen Sicherheitsbereich mit einem Team von Sicherheitsingenieuren haben, während ein Bereich für Metriken von einem Data-Science-Team verwendet wird.

Werkzeuge

Es gibt viele Tools in Azure DevOps. Einige sind für die Erstellung und Bereitstellung von Code zu verwenden. Andere Tools dienen der Quellcodeverwaltung. Die folgenden Tools sind für die Projektverwaltung nützlich.

Benachrichtigungen

Die Mitglieder Ihrer Organisation können für fast jede Aktion in Azure DevOps benachrichtigt werden oder sich gegen eine Benachrichtigung entscheiden. Die Hauptgründe für Benachrichtigungen sind Arbeitszuweisungen und Erfolg/Misserfolg von Builds. Häufig möchten die Beteiligten benachrichtigt werden, wenn ein neuer Build bereitgestellt wurde. Dies ist selbst dann möglich, wenn die Beteiligten keinen vollständigen Zugriff auf das Projekt haben. Benachrichtigungen können überwältigend sein, wenn es viele Aktivitäten in einem Projekt gibt, daher ist es ratsam, sie in einem angemessenen Rahmen zu halten.

Dashboards

Erstellen Sie Dashboards für verschiedene Zwecke. Ein Dashboard für Entwickler könnte Links zu ihren Arbeitselementen und zum Code enthalten, ein Dashboard für einen Testingenieur hingegen Widgets für die Testabdeckung und Testergebnisse. Ein Dashboard für einen Projektmanager könnte wiederum den Gesamtfortschritt des Projekts oder der Iteration zeigen.

Analytic

Azure DevOps verfügt über verschiedene Arten von integrierten Analyseberichten. Es gibt Kontrolldiagramme, kumulative Flussdiagramme und Verbrennungsdiagramme, die helfen, Workflow-Muster zu verstehen. Es gibt Diagramme für Pipelines und den Build-Status. Und es gibt Diagramme für Testbelange. Diagramme können zu Dashboards hinzugefügt oder einzeln über die zugehörige Funktion Azure Boards angezeigt werden.

Sie können diese Datenanzeigen verwenden, um einen umfassenden Überblick über ein Portfolio von Projekten zu erhalten. Sie können die Daten in den Grafiken und Diagrammen auch filtern, um sich auf bestimmte Aspekte zu konzentrieren. Es gibt auch einen Diagrammersteller, mit dem Sie mithilfe von Abfragen etwas Individuelles erstellen können.

Wiki

Es gibt ein Wiki, das für Notizen, Anforderungen und Dokumentation genutzt werden kann. Oftmals stagnieren hier die Informationen, aber Wikis können wirklich hilfreich sein, wenn es eine Praxis der Beteiligung und der gemeinsamen Verantwortung gibt. Für Teams kann es schwierig sein, Wikis zu organisieren, so dass sie oft mit veralteten oder wiederholten Informationen enden. Ein gut gepflegtes Wiki kann jedoch als nützliche Informationsquelle dienen, insbesondere für den historischen Kontext.

Wie passt das alles zusammen?

Sie richten ein oder mehrere Projekte ein. Sie erstellen Teams. Und fügen ihnen Personen (Benutzer) hinzu. Diese Benutzer werden in Gruppen eingeteilt, die ihnen die Berechtigung geben, bestimmte Dinge zu tun, wie z.B. den Code zu aktualisieren, Builds zu genehmigen, Bereitstellungsprozesse zu ändern oder Tests zu erstellen und auszuführen (Abbildung 3).

Azure DevOps Strukturübersicht
Abbildung 3: Strukturübersicht

Ein Projekt verwendet eine Prozessvorlage, die definiert, wie die Arbeitselemente organisiert sind. Sie können in einer Dimension in Bereiche und in einer anderen in Iterationen eingeteilt werden. Bereiche dienen dazu, die Anwendung in logische Arbeitsschritte aufzuteilen. Iterationen sind für Planungszwecke gedacht. Sie werden verwendet, um festzulegen, wann etwas bearbeitet werden soll.

Im Allgemeinen wird ein Entwickler, sobald ein Arbeitsschritt abgeschlossen ist, seinen Code übergeben. Dies kann einen Build auslösen, was bedeutet, dass der neueste Code kompiliert oder anderweitig für den Einsatz vorbereitet wird. Der Code kann manuell oder automatisch in einer oder mehreren Umgebungen bereitgestellt werden. Die Pipeline kann automatisch Tests durchführen und/oder Tester können manuelle Tests durchführen, bevor der Build in die nächste Phase übergeht. Pipelines sind vollständig konfigurierbar und enthalten eine beliebige Anzahl von manuellen Genehmigungsschritten oder sind vollständig automatisiert, je nachdem, welche Arbeitsweise Ihr Unternehmen festlegt (Abbildung 4).

Ablauf Azure DevOps
Abbildung 4: Ablauf DevOps

Was ist mit Fallstricken in Azure DevOps?

In einem großen Unternehmen möchten Teams möglicherweise ihre eigenen Felder und Projektstrukturen verwenden. Das ist möglich, kann aber bei zu vielen Anpassungen komplex werden. Oft ist es am besten, einfach anzufangen und die Kompromisse abzuwägen, bevor etwas Zusätzliches in den Prozess eingebaut wird.

Es ist einfach, Kennzahlen in Berichten zu sehen, aber etwas ganz anderes, die Arbeit anhand von Arbeitsaufgaben richtig zu verfolgen. Auch hier ist der wichtigste Indikator für den Fortschritt die Arbeitssoftware und nicht die Fortschrittsbalken auf einem Dashboard. Während diese Dinge in der Theorie gut funktionieren, sieht die Realität meist ganz anders aus.

Wie können Sie mehr erfahren?

Azure DevOps unterstützt eine kollaborative Kultur und eine Reihe von Prozessen, die Entwickler, Projektmanager und Mitarbeitende zusammenbringen, um Software zu entwickeln. Es ermöglicht Unternehmen, Produkte schneller zu erstellen und zu verbessern, als dies mit herkömmlichen Softwareentwicklungsansätzen möglich ist.

Azure DevOps ist mit seinem Funktionsumfang und seiner Flexibilität sowie den unterstützten Sprachen, Plattformen und Cloud-Anbietern eine hervorragende Option für eine Vielzahl von Unternehmen.

In diesem Blogartikel habe ich viele Aspekte angesprochen – von den Menschen, Prozessen und Tools von Azure DevOps bis hin zu den potenziellen Nachteilen, denen Sie begegnen können. Um zu erfahren, wie Sie Azure DevOps auch in Ihrem Unternehmen erfolgreich und zielgerichtet einsetzen können, kontaktieren Sie uns jederzeit gerne.