10
Software mit agilen Methoden entwickeln 1/10 VS Team Services und Scrum Modul 426 Reto Glarner AB426-03 HS 2016 Modul 426: Visual Studio Team Services und Scrum Sie kennen die Notwendigkeit von Tools zur Projektführung und können ein geeignetes für Ihre Bedürfnisse auswählen Sie kennen den Funktionsumfang des Team Foundation Server (Visual Studio Team Services) Sie können den gesamten Scrum Projektablauf auf dem TFS abbilden Sie können anhand des Outputs die Situation eines Projekts einschätzen Scrum Tools Mit welchen Hilfsmittel haben Sie die Übungen der AB01-02 durchgeführt? Excel, Word, Google Docs, MS Project, ... Praktisch wäre doch ein Werkzeug welche folgende Anforderungen erfüllt: - Zentrale Speicherung der Daten - Erreichbar übers Internet - Vergabe von Berechtigungen, damit nicht ein Entwickler aus Versehen eine User Story löscht - Vordefinierte Objekte für User Stories, Tasks usw. - Verschiedene Darstellungen (Liste, Taskboard) - Validierung von falschen Eingaben Die Liste könnte noch beliebig erweitert werden. Klar ist, dass eine „normale“ Dateiablage mit einem Office Programm nicht zielführend sein kann. Es gibt viele Produkte, welche spezifisch zur Projektführung von (Scrum / Software ) Projekten erstellt wurden: MyCollab Taiga Tuleap Open ALM Agilefant OpenProject OrangeScrum Odoo ]projekt-open[ Redmine ProjectLibre Die Tools unterscheiden sich im Funktionsumfang, Lizenzmodell, usw. Vor der Auswahl sollten Sie einen gewichteten Kriterienkatalog erstellen mit den Eigenschaften, welche für Ihr Vorhaben am wichtigsten sind und dann erst mögliche Kandidaten begutachten. Wir werden das ALM 1 Werkzeug von Microsoft einsetzen. Es gibt verschiedene Versionen davon: - Team Foundation Server (TFS) Dies ist die kostenpflichtige Variante für beliebig grosse Teams. Der TFS wird direkt am Active Directory angeschlossen, wodurch die Benutzer bereits bekannt sind. (Keine doppelte Datenhaltung) Nebst einem Windows Server (mit Active Directory) wird auf folgender Technologie aufgebaut: SQL Server, Reporting Server, Internet Information Server, Sharepoint Server. Die Installation gestaltet sich daher nicht sehr einfach, da all diese Dienste aufeinander zugreifen, die korrekten Berechtigungen benötigen und zudem auf verschiedenen Betriebssystem installiert sein können. Wenn der TFS aber einmal läuft, wird er zum unersetzlichen Werkzeug des Entwicklerteams. - Team Foundation Server Express Wie es der Name schon sagt, handelt es sich um eine kleine Version des TFS. Die Installation ist sehr simpel und kommt mit weniger Hintergrundtechnologie aus. Diese Version ist kostenlos, dafür beschränkt auf 5 Personen pro Team. - Visual Studio Team Service Anstelle einer eigenen Installation, kann der TFS auch als Dienst (Teil von Azure) bezogen werden. Dadurch entfällt die Installation, aber die Benutzer müssen sich bei Microsoft registrieren. Zudem wird sie immer automatisch auf den neusten (Update-) Stand gebracht. Bis zu 5 Benutzern pro Team ist diese Version kostenlos. Wir werden genau diese in diesem Modul einsetzen! Weitere Informationen zu ALM: (freiwillig) https://www.visualstudio.com/de-de/features/alm-devops-vs.aspx 1 Application Lifecycle Management

Modul 426: Visual Studio Team Services und Scrum

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Modul 426: Visual Studio Team Services und Scrum

Software mit agilen Methoden entwickeln 1/10 VS Team Services und Scrum

Modul 426 Reto Glarner AB426-03 HS 2016

Modul426:VisualStudioTeamServicesundScrum🎯

• Sie kennen die Notwendigkeit von Tools zur Projektführung und können ein geeignetes für Ihre Bedürfnisse auswählen

• Sie kennen den Funktionsumfang des Team Foundation Server (Visual Studio Team Services)

• Sie können den gesamten Scrum Projektablauf auf dem TFS abbilden • Sie können anhand des Outputs die Situation eines Projekts einschätzen

ScrumToolsMit welchen Hilfsmittel haben Sie die Übungen der AB01-02 durchgeführt? Excel, Word, Google Docs, MS Project, ... Praktisch wäre doch ein Werkzeug welche folgende Anforderungen erfüllt:

- Zentrale Speicherung der Daten - Erreichbar übers Internet - Vergabe von Berechtigungen, damit nicht ein Entwickler aus Versehen eine User Story löscht - Vordefinierte Objekte für User Stories, Tasks usw. - Verschiedene Darstellungen (Liste, Taskboard) - Validierung von falschen Eingaben

Die Liste könnte noch beliebig erweitert werden. Klar ist, dass eine „normale“ Dateiablage mit einem Office Programm nicht zielführend sein kann. Es gibt viele Produkte, welche spezifisch zur Projektführung von (Scrum / Software ) Projekten erstellt wurden: MyCollab Taiga Tuleap Open ALM Agilefant OpenProject OrangeScrum Odoo ]projekt-open[ Redmine ProjectLibre Die Tools unterscheiden sich im Funktionsumfang, Lizenzmodell, usw. Vor der Auswahl sollten Sie einen gewichteten Kriterienkatalog erstellen mit den Eigenschaften, welche für Ihr Vorhaben am wichtigsten sind und dann erst mögliche Kandidaten begutachten. Wir werden das ALM1 Werkzeug von Microsoft einsetzen. Es gibt verschiedene Versionen davon:

- Team Foundation Server (TFS) Dies ist die kostenpflichtige Variante für beliebig grosse Teams. Der TFS wird direkt am Active Directory angeschlossen, wodurch die Benutzer bereits bekannt sind. (Keine doppelte Datenhaltung) Nebst einem Windows Server (mit Active Directory) wird auf folgender Technologie aufgebaut: SQL Server, Reporting Server, Internet Information Server, Sharepoint Server. Die Installation gestaltet sich daher nicht sehr einfach, da all diese Dienste aufeinander zugreifen, die korrekten Berechtigungen benötigen und zudem auf verschiedenen Betriebssystem installiert sein können. Wenn der TFS aber einmal läuft, wird er zum unersetzlichen Werkzeug des Entwicklerteams.

- Team Foundation Server Express Wie es der Name schon sagt, handelt es sich um eine kleine Version des TFS. Die Installation ist sehr simpel und kommt mit weniger Hintergrundtechnologie aus. Diese Version ist kostenlos, dafür beschränkt auf 5 Personen pro Team.

- Visual Studio Team Service Anstelle einer eigenen Installation, kann der TFS auch als Dienst (Teil von Azure) bezogen werden. Dadurch entfällt die Installation, aber die Benutzer müssen sich bei Microsoft registrieren. Zudem wird sie immer automatisch auf den neusten (Update-) Stand gebracht. Bis zu 5 Benutzern pro Team ist diese Version kostenlos. Wir werden genau diese in diesem Modul einsetzen!

🌐 Weitere Informationen zu ALM: (freiwillig) https://www.visualstudio.com/de-de/features/alm-devops-vs.aspx

1 Application Lifecycle Management

Page 2: Modul 426: Visual Studio Team Services und Scrum

Software mit agilen Methoden entwickeln 2/10 VS Team Services und Scrum

Modul 426 Reto Glarner AB426-03 HS 2016

OrganisationGruppenAus lizenztechnischen Gründen ist die Gruppengrösse limitiert auf 4 Lernende. Kleiner als 3 Lernende sollte die Gruppe auch nicht sein, da sonst das „Scrum Erlebnis“ nicht gleich realistisch möglich ist. Die Lehrperson hat die Verantwortung für die Gruppeneinteilung und kann deren Findung selber entscheiden. Die Lehrperson stellt Ihnen die jeweiligen Teamprojekte für Ihr Team zur Verfügung, zum Beispiel: team1-INF5A-2016.visualstudio.com Als Bestätigung dass Sie zum Team gehören erhalten Sie eine Einladungsmail von [email protected] mit dem Inhalt „Welcome to ...“ auf Ihre Adresse @iet-gibb.ch Bestätigen Sie mit dem vorgeschlagenen Link die Teilnahme und testen Sie den Zugriff auf das Projekt. Wenn Sie noch kein Konto mit dieser Emailadresse erstellt haben, werden Sie Schritt für Schritt dabei begleitet. Es ist nicht verboten ein wenig auf dem TFS herumzustöbern!

ArbeitenimBrowserHinweis: Die folgenden Erklärungen sind keinesfalls als abschliessend oder als Nachschlagewerk für den TFS aufzufassen. Es sollen lediglich die wichtigsten Schritte gezeigt werden, die für das Arbeiten an einem Scrum Projekt notwendig sind. Die Funktionalitäten des TFS sind enorm, wir werden nur einen kleinen Teil davon verwenden. Nach dem Login befinden wir uns auf der Einstiegsseite eines Teamprojekts:

Dies ist die Startseite, sie kann individuell angepasst werden. (Wer braucht schon Werbung?) Innerhalb eines Teamprojekts können mehrere Projekte erstellt werden, diese werden unter dem Punkt „Recent projects & teams“ aufgelistet. (rotes Rechteck) Das ist praktisch da ein Team mehrere (Kunden-) Projekte im gleichen Teamprojekt durchführen kann.

Page 3: Modul 426: Visual Studio Team Services und Scrum

Software mit agilen Methoden entwickeln 3/10 VS Team Services und Scrum

Modul 426 Reto Glarner AB426-03 HS 2016

Für die weiteren Arbeiten muss immer ein Projekt ausgewählt werden, das sieht dann so aus:

Es gibt immer die Auswahl Home / Code / Work / Build / Test / Release

Auch diese Seite kann individuell angepasst werden.

Wir werden auf diesem Arbeitsblatt den Unterpunkt „Work“ behandeln. Auf dem nächsten Arbeitsblatt geht es dann um den Unterpunkt „Code“. Die anderen Optionen werden in diesem Modul nicht behandelt.

ErstelleneinesProductBacklogsDas gesamte Projektmanagement wird unter dem Punkt „Work“ verwaltet. Auf dem AB426-01 gibt es im Anhang eine User Story, diese soll korrekt erfasst werden. Es gilt folgende Hierarchie auf dem TFS: Feature (Kann ein Bereich eines Programms sein, Bsp: Benutzerverwaltung) ↳ User Story (Product Backlog Item = PBI) ↳ Task Das bedeutet zum Beispiel dass ein PBI genau einem Feature zugeordnet werden kann. Bei der Produktplanung wird ja mittels User Stories gearbeitet, diese müssen alle auf dem TFS erfasst werden. Ein minimales Feature sieht folgendermassen aus:

Für unsere Zwecke reicht der Name eines Features aus.

Später werden dann automatisch damit verbundene Daten in diesem Fenster angezeigt.

Page 4: Modul 426: Visual Studio Team Services und Scrum

Software mit agilen Methoden entwickeln 4/10 VS Team Services und Scrum

Modul 426 Reto Glarner AB426-03 HS 2016

Eine User Story sieht folgendermassen aus:

Vergleichen Sie die Angaben mit dem Anhang aus AB426-01! Jedes PBI hat zudem folgende Grundfunktionen:

- Zuordnung zu einem Benutzer (Verantwortung, nicht Umsetzung!) - Status: Wird automatisch vom System nachgeführt - Iteration (=Sprint): Wird im Sprint Planning Meeting 1 manuell gesetzt - Diskussion (nicht sichtbar, im unteren Bereich per Scrolling) - „Folgen“ Funktion pro Benutzer - Jede Anpassung wird in der History protokolliert! - Verknüpfung von mehreren PBI’s je nach Abhängigkeit - Beliebige Attachements (Printscreens usw.)

Eigene Notizen: Die PBI’s müssen bereits bei deren Erstellung priorisiert werden. Dies kann in der Listenansicht per Drag & Drop erfolgen Wenn die Eigenschaft „Priority“ abgefüllt wurde, kann diese zur Hilfe angezeigt werden: (Columns Options anpassen)

Nun können Sie einen komplette Backlog erfassen è1

Page 5: Modul 426: Visual Studio Team Services und Scrum

Software mit agilen Methoden entwickeln 5/10 VS Team Services und Scrum

Modul 426 Reto Glarner AB426-03 HS 2016

DurchführendesSprintPlanningMeeting1Nun steht das Projekt kurz vor der Umsetzungsphase, dies entspricht dem Theorieteil von AB426-02. Wir definieren folgende Rahmenbedingungen: 4 Entwickler, 40 Stunden pro Entwickler pro Woche, Sprintlänge 10 Tage (= 2 Wochen) Der 1. Sprint startet am 3. Oktober. All dies können wir auf dem TFS definieren: Dazu wählen wir links „Sprint 1“ aus und dann die Option „Set dates“:

Datumsangaben eines Sprints (Enddatum + 1 Arbeitstag)

Das ist noch nicht alles, die Kapazitätsplanung der Mitarbeiter anzugeben macht die Sprint Burndown Chart später aussagekräftiger:

Durch die Angabe wie viel Stunden pro Tag gearbeitet wird und die Sprintlänge, berechnet sich die

Kapazität jedes Mitarbeiters automatisch.

Es gäbe noch weitere Optionen, welche wir hier nicht verwenden: - Angabe pro Mitarbeiter an welchen Tagen frei bzw. Kapazität pro Tag definieren - Die Kapazität pro Aktivität (Programmieren, Testen, ..) könnte einzeln festgelegt werden

Nun kommt der wichtigere Teil, nämlich die Entscheidung welche User Stories in den Sprint übernommen werden. Wir übernehmen (fiktive) 2 User Stories, wobei nur eine zur Demonstration dient. Es gibt mehrere Möglichkeiten eine User Story einem Sprint zuzuordnen:

- Per Drag & Drop aus der Liste der User Stories einfach die Story auf den Sprint ziehen - Eine User Story öffnen und unter „Iteration“ den Sprint auswählen

Denken Sie daran, es wird immer nur der nächste Sprint geplant, nicht mehr!

Page 6: Modul 426: Visual Studio Team Services und Scrum

Software mit agilen Methoden entwickeln 6/10 VS Team Services und Scrum

Modul 426 Reto Glarner AB426-03 HS 2016

DurchführendesSprintPlanningMeeting2In diesem Meeting werden ja bekanntlich aus den User Stories die Tasks generiert. Wie können diese auf dem TFS erfasst werden? Dazu dient das kleine Pluszeichen rechts von jeder Story. Ein Task sieht folgendermassen aus:

Das sind die minimalen Angaben für einen Task

Eine komplette User Story umfasst dann viele Tasks:

Das System berechnet automatisch wie gross der Gesamtaufwand für diesen Sprint sein wird. Alle Tasks sind noch „To Do“ und die „Remaining Work“ entspricht der Gesamtdauer dieses Tasks. Die Tasks sind noch nicht zugeordnet zu den Mitarbeitern.

Page 7: Modul 426: Visual Studio Team Services und Scrum

Software mit agilen Methoden entwickeln 7/10 VS Team Services und Scrum

Modul 426 Reto Glarner AB426-03 HS 2016

Dafür sollte jetzt eine Sprint Burndown Chart entstanden sein:

Die offene Arbeit (Remaining Work) wird am 1. Tag noch nicht angezeigt. Simulieren Sie diese Arbeiten auf dem TFS! è2

DailyScrumMeetingAls Basis für das Daily Scrum Meeting wird das Taskboard genommen, dieses ist am 1. Tag noch nicht so spannend, da noch kein Task begonnen hat:

Die Tasks können nun in ihrer Einzelansicht oder per Drag & Drop auf den nächsten Zustand gezogen werden. (To do à In progress) Die Zuordnung kann auch direkt auf dem Taskboard erfolgen. Achtung! Wenn ein Task auf „Done“ gezogen wird, stellt sich seine „Remaining Work“ auf 0! Jeder Entwickler kann nun so seine Tasks aktualisieren, die „Remaining Work“ nachzutragen ist enorm wichtig auch wenn der Status sich nicht ändert! Aus diesen Daten wird dann die Sprint Burndown Chart neu gezeichnet. Am Ende des Sprints sollten termingerecht alle Tasks auf „Done“ stehen J

ProblemhandlingEs gibt unterschiedliche Typen von Problemen, wir werden diese beiden im Projekt verwenden:

- Bug Ein Bug ist von der Hierarchie gleich wie ein Task. Er kann im Sprint neu auftauchen ohne dass er im Sprint Planning Meeting 2 erstellt wurde. Entweder kann er während des Sprints erledigt werden oder die ganze Story gilt als nicht abgeschlossen. In diesem Fall wird sie nicht

Page 8: Modul 426: Visual Studio Team Services und Scrum

Software mit agilen Methoden entwickeln 8/10 VS Team Services und Scrum

Modul 426 Reto Glarner AB426-03 HS 2016

am Sprint Review präsentiert sondern erneut in den nächsten Sprint übernommen! Jeder Entwickler kann einen neuen Bug erfassen.

- Imepdiment Dies kann ein allgemeines Problem sein, um das sich der Scrum Master kümmern wird. Diese werden beim Daily Scrum auch abgehandelt:

Ein Impediment wird in den Queries mit dem „New“ Knopf erstellt.

ArbeiteninVisualStudioDamit der Entwickler nicht ständig zwischen dem VS und der Webseite hin- und herspringen muss und um Verwechslungen sowie Fehlmanipulationen zu verhindern, kann direkt im Visual Studio auf den TFS zugegriffen werden. Wir schauen uns nur folgende Punkte an:

- Anzeige meiner offenen Arbeiten - Task aktualisieren - Bug melden

AnmeldungVSanTFSDie „Heirat“ zwischen dem Clienttool und dem Server geht in beiden Richtungen. Am einfachsten ist es, den TFS als Webseite zu öffnen und dann die Option „Open in Visual Studio“ auszuwählen, welche sich auf der Homeseite eines Projekts befindet. (siehe Seite 2) So muss lediglich die Emailadresse und das Kennwort angegeben werden. Wir vom VS aus auf den TFS zugegriffen, muss der Name des Servers sowie Email und Passwort angegeben werden:

Offenes VS à Team à Verbindungen verwalten à Verbinden Server à Hinzufügen àEingeben des Namens, welcher von der Lehrperson angegeben wurde Angabe der Email und des Kennworts à Schliessen Auswahl des korrekten Projekts

Page 9: Modul 426: Visual Studio Team Services und Scrum

Software mit agilen Methoden entwickeln 9/10 VS Team Services und Scrum

Modul 426 Reto Glarner AB426-03 HS 2016

Nach dem erfolgreichen Verbinden mit dem TFS öffnet sich automatisch ein neues Fenster „Team Explorer“, darin können wir direkt auf den TFS zugreifen, ohne die Webseite jedes Mal zu öffnen: Ansicht „Startseite“(für Code, siehe ab426-04)

Ansicht für „Arbeitselemente“ (Work)

Die wichtigsten Funktionen:

- Anzeige der aktuellen Tasks für mich: „Work in Progress“

- Tasks können direkt hier bearbeitet werden! Die Remaining Work zum Beispiel kann verändert werden, die Angabe wird direkt im TFS angezeigt. (Speichern nicht vergessen)

- Anzeige alle Stories und Tasks: „Unfinished Work“ - Neue Elemente anlegen:

Verhalten Sie sich Ihrer Rolle entsprechend und legen Sie keine PBI’s und Tasks usw. an! (Werden vom Product Owner verwaltet) Als Entwickler sollten nur Bugs angelegt werden. Impediments werden durch den Scrum Master verwaltet.

- Es können auch eigene Abfragen (Queries) erstellt werden, dies erfordert ein wenig Übung.

Binden Sie Ihr Visual Studio nun an! è3 Jetzt sind Sie bereit ein Projekt vollständig zu erfassen, alle Meetings mit Hilfe des TFS durchzuführen, als Entwickler den TFS zur Planung nutzen sowie per Burndown Chart den Trend des Fortschritts zu erkennen.

Page 10: Modul 426: Visual Studio Team Services und Scrum

Software mit agilen Methoden entwickeln 10/10 VS Team Services und Scrum

Modul 426 Reto Glarner AB426-03 HS 2016

Aufgabe1 20MinutenÜbernehmen Sie den Product Backlog aus dem ab426-01 (Videokonferenz ) auf den Ihnen zugewiesenen TFS. Alle Teammitglieder sollen dabei mithelfen! Falls Sie noch keine Features definiert haben, machen Sie dies jetzt.

Aufgabe2 30MinutenÜbernehmen Sie auch Resultate aus den Sprint Planning Meetings aus ab426-02 auf den TFS. Erstellen Sie vorerst einen Sprint und füllen Sie die Tasks ab. Am Ende sollte eine Burndown Chart ähnlich derer auf dem Arbeitsblatt resultieren.

Aufgabe3 15MinutenBinden Sie Ihr Visual Studio der bmWP2 an den TFS an. Verwenden Sie die Angaben aus dem Begrüssungsmail des TFS bzw. die gleichen Angaben wie für den Zugriff per Webseite. Weisen Sie sich einen Task zu. Vermindern Sie die „Remaining Work“ einmal während der Woche, so dass sich etwas tut auf der Burndown Chart. (Lassen Sie sich nicht durch allfällige Updates des Visual Studio aufhalten, diese müssen Sie zu Hause durchführen nicht im Unterricht!)

FreiwilligkönnenSiesichindennichtbehandeltenThemenweiterbilden:- Installation des TFS - Erstellung eines Projekt und das Zusammenstellen eines Teams - Korrekte Definition der Berechtigungen - Gruppenchat - Individualisierung der Darstellung