In Visual Studio / TFS hat sich die letzten Versionen kontinuierlich die Integration von WorkItems und Code verbessert. Eines der neuen Features ist z.B. MyWork. Dieses automatisiert das Update von Workitems und erlaub das parallelisieren von Arbeitsaufgaben.
Um das Feature zu zeigen muss man sich erst mal WorkItems zuordnen. Dies geschieht am einfachsten über das Taskboard indem man direkt die Kachel editiert oder mit Personenfilter die Aufgaben zu der Person zieht.
Wem der Umgang mit dem neuen Taskboard noch fremd ist, dem empfehle ich den Artikel Work in sprints. Hier werden kurz und knapp die wichtigsten Funktionen dargestellt.
Wichtig ist, dass man sich ein paar Aufgaben mit dem Status “ToDo” zugewiesen hat (im Scrum 3.0 Prozess-Template – in anderen Templates weicht der Status ab). Öffnet man jetzt den Team Explorer in Visual Studio 2013 und geht zu My Work, dann sieht man diese Aufgaben. Man kann eine Aufgabe jetzt starten, indem man sie per Drag & Drop auf “In Progress Work” zieht. Oder man wählt sie aus und drückt “Start”.
Der Status der Aufgabe wechselt dabei automatisch in den nächsten Status (hier in Progress) – das heißt, das alle Teammitglieder jetzt automatisch wissen, an welcher Aufgabe man arbeitet.
Alle Arbeit, die man jetzt tut ist automatisch mit diesem WorItem verknüpft. In unserem Fall öffne ich die Solution aus dem DEV-Branch und beginne die Arbeit.
Wird mir jetzt ein Bug zugeordnet, dann kann ich über “Suspend” die aktuelle Arbeit pausieren. Alle Änderungen werden dabei als Shelveset im TFS gespeichert. Auch die Visual Studio Einstellungen (Fenster, Haltepunkte etc.) werden dabei gespeichert.
Jetzt kann man die Arbeit an dem Bug beginnen. Hierzu muss der Code aus dem Prod-Branch verwendet werden.
Über den Befehl “Switch” kann man jetzt zwischen den beiden Aufgaben (Task und Bug) hin und her wechseln. VS lädt dabei automatisch die richtige Solution und stellt die Einstellungen wieder her.
Auch wenn man abends nach Hause geht und noch nicht bereit zum einchecken ist, kann man die “Suspend-Funktion” verwenden um den aktuellen Stand zu sichern. Am nächsten Morgen kann man dann bequem über “Resume” wieder an der Aufgabe weiterarbeiten.
Ist man mit der Aufgabe fertig und checkt den Code ein, dann wird dieser automatisch mit dem WorkItem verknüpft. Außerdem wird der Status des WorItems in den nächsten Zustand überführt. In unserem Fall würde der Task auf dem Board dann automatisch in die nächste Spalte rutschen.
Wer mer zu dem Thema wissen will, der findet auf Channel 9 das Video Multi-tasking with My Work (Channel 9). Außerdem gibt es im MSDN den Beitrag Suspend your work and manage your shelvesets.
Ich finde in Visual Studio wird durch das MyWork-Feature der Fluss der Arbeit sehr vereinfacht. Die Verwaltung der Änderungen über die WorItems erleichtert es dem Entwickler mit Änderungen und Einstellungen umzugehen – außerdem bringt es aber den Entwickler auch dazu diese Features zu nutzen. Oft werden die WorkItems ja recht stiefmütterlich behandelt und die Tasks nur nach mehrfacher Aufforderung bearbeitet. Dies wird sich zukünftig über die neue Arbeitsweise hoffentlich ändern.