Im Alltag als Consultant kommt man immer wieder in die Situation, mit externen Mitarbeitern zusammen zu arbeiten. Um auch dabei strukturiert und effizient arbeiten zu können, ist es unerlässlich ein gemeinsames Backlog zu führen.
An dieser Stelle beginnt aber ein grundsätzliches Problem: Natürlich wäre es möglich, ein eigenes Teamprojekt anzulegen, das mit dem externen Mitarbeiter gemeinsam geführt wird. Dies führt jedoch dazu, dass die dortigen Work Items nicht im internen Team-Taskboard auftauchen, über das die Abstimmung mit anderen Kollegen erfolgt. Man müsste, um Transparenz zu leben, zwei Taskboards gleichzeitig pflegen und Work Items doppelt eintragen.
Um dieses Problem zu lösen, muss man externen Mitarbeiten den Zugriff nur auf bestimmte Work Items eines Teams ermöglichen. Dabei muss aber ausgeschlossen sein, dass der externe Mitarbeiter auf andere Bereiche, denen er nicht explizit zugeordnet ist, Zugriff erhält. Eine Möglichkeit, wie man dies erreichen kann, möchte ich im Folgenden vorstellen.
Lösungsansatz
Um unser Zugriffskonzept festzulegen, muss klar sein, in welcher Art die einzelnen Elemente voneinander abhängen. Das folgende Schaubild verdeutlicht dies. Es gibt eine ProjectCollection, die mehrere TeamProjects beinhalten kann. Diese wiederum enthalten mehrere UserGroups. Diese UserGroups können einem oder mehreren Teams zugeordnet werden.
Die Personen werden einer oder mehreren UserGroups zugeordnet. Über die UserGroups werden schließlich die Zugriffsrechte auf die Areas festgelegt. Da Work Items einer bestimmten Area zugeordnet werden können, findet darüber die eigentliche Zugriffsverwaltung statt.
Um die beschriebenen Anforderungen umzusetzen wird ein Team ohne ein Permission Template angelegt. Dies führt dazu, dass alle Rechte auf „Not Set“ voreingestellt sind und das Team nicht als Mitglied einer UserGroup angelegt wird.
Um die Verwaltung der Rechte externer Mitarbeiter zu ermöglichen, wird auf TeamProject-Ebene eine neue UserGroup erstellt, der die externen Mitarbeiter hinzugefügt werden können. Damit können auch später weitere externe Mitarbeiter mit geringem Aufwand für das gemeinsame Backlog freigeschaltet werden, indem sie einfach der UserGroup hinzugefügt werden.
In unserem Beispiel sollen die externen Mitarbeiter ausschließlich die Rechte zum Anzeigen und Bearbeiten von Work Items einer bestimmten Area besitzen.
Hierbei ist zu beachten, dass für jede Area, auf die ein externer Mitarbeiter zugreifen soll, eine eigene UserGroup erstellt wird. Somit ist gewährleistet, dass Überschneidungen der Arbeitsbereiche externer Mitarbeiter keine Auswirkungen auf die Sichtbarkeit exklusiver Bereiche haben.
Um überhaupt eine Verbindung zum TeamProject herstellen zu können, ist die Berechtigung “View Project level information” nötig.
Anschließend werden der Gruppe die Berechtigungen auf dem entsprechenden Area-Path zugewiesen. Hierzu wird der Reiter Areas und anschließend der entsprechende Knoten, auf den die Gruppe Zugriff haben soll, ausgewählt. Unter Security kann die zuvor erstellte UserGroup zugeordnet werden und die Rechte entsprechend den Anforderungen vergeben werden.
Jetzt kann die UserGroup dem gewünschten Team hinzugefügt werden.
Abschließend müssen die externen Nutzer im Projekt hinzugefügt werden. Auf Collection-Level wird ein Benutzer grundsätzlich zu der Collection hinzugefügt und einer Lizenz zugeordnet. Als Lizenztyp wird in diesem Beispiel Stakeholder gewählt. Somit ist zusätzlich der Zugriff auf Work Items und Backlogs beschränkt und der externe Nutzer benötigte keine MSDN subscription.
Im letzten Schritt wird der externe Nutzer als Mitglied in die jeweilige UserGroup aufgenommen.
Ergebnis
Die beschriebene Methode ermöglicht es, ein gemeinsames Backlog mit externen Mitarbeitern zu führen, ohne dass dabei erhöhter Verwaltungsaufwand durch die Abstimmung mit den internen Kollegen anfällt.
Externe Mitarbeiter können zwar alle im TeamProject befindlichen Teams sehen, jedoch ist der Zugriff auf die Backlogs beschränkt, denen der Mitarbeiter explizit zugewiesen wurde. Alle anderen Backlogs erscheinen für den externen Nutzer leer. Das Anlegen von neuen Work Items in nicht zugewiesenen Backlogs wird durch eine Fehlermeldung verhindert.