Hausaufgabe: Unterschied zwischen den Versionen

Aus Das Sopra Wiki
Frank (Diskussion | Beiträge)
Resharper aus Hausaufgabe entfernt
Frank (Diskussion | Beiträge)
Formulierungen geändert
Zeile 24: Zeile 24:


===Gitea vorbereiten===
===Gitea vorbereiten===
Um Gitea in Verbindung mit Scrum verwenden zu können, müssen vorher bestimmte Labels (siehe Abb. 1) für die Items im Backlog eingerichtet werden.
Um Gitea in Verbindung mit Scrum verwenden zu können, müssen vorher bestimmte Labels (siehe Abb. 1) für die Issues im Backlog eingerichtet werden.
*Klicken Sie auf <code>Issues -> Labels</code>.
*Klicken Sie auf <code>Issues -> Labels</code>.
*Wenn noch keine Labels eingerichtet wurden, werden Sie gefragt ob eines der vorkonfigurierten Menge von Labels verwendet werden soll. Wählen Sie hier das vorkonfigurierte Set <code>Sopra</code>.
*Wenn noch keine Labels eingerichtet wurden, werden Sie gefragt ob eines der vorkonfigurierten Menge von Labels verwendet werden soll. Wählen Sie hier das vorkonfigurierte Set <code>Sopra</code>.
Zeile 33: Zeile 33:
{{RefImg|gitea_firstsprintmilestone.png|500px|2|Den Hausaufgabensprint erstellen.}}
{{RefImg|gitea_firstsprintmilestone.png|500px|2|Den Hausaufgabensprint erstellen.}}
Prüfen sie ob in Gitea ein Sprint  für die Hausaufgabe angelegt wurde.
Prüfen sie ob in Gitea ein Sprint  für die Hausaufgabe angelegt wurde.
*Klicken Sie auf den Reiter <code>Issues -> Milestones</code>.
*Klicken Sie auf den Reiter <code>Issues -> Meilensteine</code>.
*Falls kein Sprint (Milestone) für die Hausaufgabe angezeigt wird (siehe Abb. 2), legen Sie einen Milesstone mit dem Namen <code>Sprint 00 (Hausaufgabe)</code> an.
*Falls kein Sprint (Milestone) für die Hausaufgabe angezeigt wird (siehe Abb. 2), legen Sie einen Milesstone mit dem Namen <code>Sprint 00 (Hausaufgabe)</code> an.
**Verwenden Sie das Datum für das Ende des Sprints das Abgabedatum auf der [[Hauptseite]].
**Verwenden Sie das Datum für das Ende des Sprints das Abgabedatum auf der [[Hauptseite]].
<br clear="all">
<br clear="all">


===User Stories für Aufgabe 3 erstellen===
===Issues für Aufgabe 3 erstellen===
{{RefImg|Firstusrstry.png|500px|3|Ein Item anlegen.}}
{{RefImg|Firstusrstry.png|500px|3|Ein Issue anlegen.}}
Prüfen Sie ob für die Hausaufgabe bereits alle Items existieren. Wenn nicht, legen Sie diese an.
*Klicken Sie auf <code>Issues -> Neues Issue</code>
*Klicken Sie auf den Reiter <code>Issues</code>.
*Tragen sie als Titel <code>Scrum, Gitea und Git verstehen</code> ein.
* Prüfen Sie ob bereits ein Item mit dem Titel <code>Student <NAME> soll Scrum, Gitea und Git verstehen</code> existiert (siehe Abb. 3).
*Tragen sie im Textfeld darunter die ausführliche Beschreibung <code>Scrum, Gitea und Git verstehen um effizient arbeiten zu können</code> ein.
**Wenn nicht legen Sie eine entsprechende Userstory an indem Sie den weiteren Punkten folgen:
* Weisen Sie dem Issue eine hohe Priorität über das Label <code>priority high</code> zu, indem Sie auf das Zahnrad neben dem Schrifzug ''Label'' drücken und die entsprechenden Label auswählen.
*#Klicken Sie <code>Neuer Issue</code>.
*Weisen Sie dem Sprint (Meilenstein) ''Sprint 00 (Hausaufgabe)'' zu.
*#Tragen sie als Titel <code>Student <NAME> soll Scrum, Gitea und Git verstehen</code> ein.
*Drücken sie auf <code>Issue Erstellen</code>.
*#Tragen sie im Textfeld darunter die ausführliche Beschreibung <code>Student <NAME> soll Scrum, Gitea und Git verstehen um effizient arbeiten zu können.</code> ein.
*# Weisen Sie dem Item eine hohe Priorität über das Label <code>high</code> zu, indem Sie auf das Zahnrad neben dem Schrifzug ''Label'' drücken und die entsprechenden Label auswählen.
*#Weisen Sie dem Sprint (Meilenstein) ''Sprint 00 (Hausaufgabe)'' zu.
*#Drücken sie auf <code>Issue Erstellen</code>.


Bitte beachten Sie in dieser, und in folgenden Aufgaben, den Platzhalter <code><NAME></code> geeignet (z.B.: mit ihrem Usernamen, oder Vornamen) zu ersetzen.
=== Issues für Aufgabe 4 erstellen===


=== Items für Aufgabe 4 erstellen===
Erstellen Sie wie in den vorhergehenden Aufgaben beschrieben, die Issues für Aufgabe 4
*Titel <code>Clean Code Development Texte lesen</code> mit Beschreibung <code>Clean Code Development Texte lesen, um besseren Code schreiben zu können</code>
* Titel <code>Usability Artikel lesen</code> mit Beschreibung <code>Usability Artikel lesen, um von vornherein Usabilityprobleme zu vermeiden</code>
*Titel <code>Dokumentation Texte lesen</code> mit Beschreibung <code>Dokumentation Texte lesen, um seinen Code sinvoll dokumentieren zu können</code>


Erstellen Sie wie in den vorhergehenden Aufgaben beschrieben, die Items für Aufgabe 4
===Issues für Aufgabe 5 erstellen===
*Titel <code>Student <NAME> soll die Clean Code Development Texte lesen</code> mit Beschreibung <code>Student <NAME> soll die Clean Code Development Texte lesen, um besseren Code schreiben zu können.</code>
Erstellen Sie wie in den vorhergehenden Aufgaben beschrieben, das Issue für Aufgabe 5
* Titel <code>Student <NAME> soll den Usability Artikel lesen</code> mit Beschreibung <code>Student <NAME> soll den Usability Artikel lesen, um von vornherein Usabilityprobleme zu vermeiden.</code>
*Titel <code>MonoGame Programm schreiben</code> mit Beschreibung <code>Programm wie in Aufgabe 5 beschrieben schreiben, um die Entwicklungswerkzeuge zu testen</code>
*Titel <code>Student <NAME> soll die Dokumentation Texte lesen</code> mit Beschreibung <code>Student <NAME> soll die Dokumentation Texte lesen, um seinen Code sinvoll dokumentieren zu können.</code>


===Items für Aufgabe 5 erstellen===
===Issues akzeptieren===
Erstellen Sie wie in den vorhergehenden Aufgaben beschrieben, das Item für Aufgabe 5
{{RefImg|gitea_hausaufgabe_tasks_assigned.png|500px|4|Issues für die Hausaufgabe, vom Studenten akzeptiert und mit Zeitschätzung.}}
*Titel <code>Student <NAME> soll ein MonoGame Programm schreiben</code> mit Beschreibung <code>Student <NAME> soll das in Aufgabe 5 beschriebene Programm schreiben, um seine Entwicklungswerkzeuge zu testen.</code>
Bevor Sie mit den Aufgaben beginnen, sollten Sie sich die entsprechenden Issues zuweisen (siehe Abb. 4).
*Wählen Sie eines ihrer Issues aus dem Sprintbacklog (<code>Issues -> Milestones -> Sprint 00 (Hausaufgabe)</code>) aus, indem Sie auf den Titel des Issues klicken.
*Geben sie eine Abschätzung wie lange es dauern wird das Issue nach der Definition of Done umzusetzten. Weisen Sie das Label <code>est: 1</code> um die Abschätzung zu geben, dass es insgesamt eine Stunde Arbeit benötigt wird. Wenn sie vermuten, dass Sie mehr als eine Stunde benötigen, wählen Sie einen entsprechend höheren Wert aus.
* Weisen Sie sich dem Issue zu, indem Sie auf das Zahnrad neben dem Schriftzug ''Zuständig'' klicken, und ihren Benutzernamen auswählen.
Akzeptieren Sie so alle Tasks die sie in den vorhergehenden Aufgaben erstellt haben. Akzeptieren Sie auch das Issue zu Aufgabe 5 falls dieses schon existierte.


===Items akzeptieren===
Beachten Sie, dass es nicht nötig für jede Änderung einen Kommentar zu schreiben. Alle Änderungen an Labels und zugewiesenen Personen werden sofort übernommen und in der Historie des Issues eingetragen.
{{RefImg|gitea_hausaufgabe_tasks_assigned.png|500px|4|Items für die Hausaufgabe, vom Studenten akzeptiert und mit Zeitschätzung.}}
Bevor Sie mit den Aufgaben beginnen, sollten Sie sich die entsprechenden Items zuweisen (siehe Abb. 4).
*Wählen Sie eines ihrer Items aus dem Sprintbacklog (<code>Issues -> Milestones -> Hausaufgabe</code>) aus, indem Sie auf den Titel des Tickets klicken.
*Geben sie eine Abschätzung wie lange es dauern wird das Item nach der Definition of Done umzusetzten. Weisen Sie das Label <code>est: 1</code> um die Abschätzung zu geben, dass es insgesamt eine Stunde Arbeit benötigt wird. Wenn sie vermuten, dass Sie mehr als eine Stunde benötigen, wählen Sie einen entsprechend höheren Wert aus.
* Weisen Sie sich dem Item zu, indem Sie auf das Zahnrad neben dem Schriftzug ''Zuständig'' klicken, und ihren Benutzernamen auswählen.
Akzeptieren Sie so alle Tasks die sie in den vorhergehenden Aufgaben erstellt haben. Akzeptieren Sie auch das Item zu Aufgabe 5 falls dieses schon existierte.


Beachten Sie, dass es nicht nötig für jede Änderung einen Kommentar zu schreiben. Alle Änderungen an Labels und zugewiesenen Personen werden sofort übernommen und in der Historie des Tickets eingetragen.
=== Überprüfen der Issues===


=== Überprüfen der Items===
Bevor Sie mit der Arbeit beginnen, prüfen Sie noch einmal ob alle Issues für Ihre Aufgaben im Sprintbacklog vorhanden sind.
 
* Klicken sie auf den Reiter <code>Issues -> Meilensteine -> Sprint 00 (Hausaufgabe)</code>
Bevor Sie mit der Arbeit beginnen, prüfen Sie noch einmal ob alle Items für Ihre Aufgaben im Sprintbacklog vorhanden sind.
* Schränken Sie die Anzeige auf die Ihnen zugewiesenen Issues ein, indem sie unter <code>Zuständig</code> ihren Usernamen wählen. Prüfen Sie ob alle Issues vorhanden sind.
* Klicken sie auf den Reiter <code>Issues -> Meilensteine -> Hausaufgabe</code>
* Erstellen Sie eventuell nicht vorhandene Issues wie in den vorhergehenden Aufgaben beschrieben.
* Schränken Sie die Anzeige auf die Ihnen zugewiesenen Items ein, indem sie unter <code>Zuständig</code> ihren Usernamen wählen. Prüfen Sie ob alle Items vorhanden sind.
* Erstellen Sie eventuell nicht vorhandene Userstories und Tasks wie in den vorhergehenden Aufgaben beschrieben.


==Aufgabe 3: Scrum und Gitea verstehen==
==Aufgabe 3: Scrum und Gitea verstehen==
Zeile 86: Zeile 80:
*Lesen Sie außerdem den Wikipedia-Artikel zu [http://de.wikipedia.org/wiki/User_Story User Stories].
*Lesen Sie außerdem den Wikipedia-Artikel zu [http://de.wikipedia.org/wiki/User_Story User Stories].
* Machen Sie sich mit den anderen Funktionen von [[Gitea]] vertraut und lesen Sie den Artikel [[Ablauf|Scrum im Sopra]]
* Machen Sie sich mit den anderen Funktionen von [[Gitea]] vertraut und lesen Sie den Artikel [[Ablauf|Scrum im Sopra]]
*Sollte es Fragen zum Vorgehen (Scrum und Gitea) geben, schreiben Sie diese als Kommentar in ihr Item in Gitea, damit eventuelle Fragen schnell geklärt werden können (Kommentarfeld unter <code>Issues -> Meilensteine -> Hausaufgabe -> Student <NAME> soll Scrum, Gitea und Git verstehen</code>).
*Sollte es Fragen zum Vorgehen (Scrum und Gitea) geben, schreiben Sie diese als Kommentar in ihr Issue in Gitea, damit eventuelle Fragen schnell geklärt werden können (Kommentarfeld unter <code>Issues -> Meilensteine -> Sprint 00 (Hausaufgabe) -> Scrum, Gitea und Git verstehen</code>).
*Lesen sie die Artikel [[GIT|Git]] und [[GitWorkflow| Git Workflow]]
*Lesen sie die Artikel [[GIT|Git]] und [[GitWorkflow| Git Workflow]]
**Richten Sie sich den Zugang zu ihrem Gruppenrepository ein, indem Sie in [[Gitea]] ein [[Gitea#HTTPS Kennwort einrichten|HTTPS Kennwort einrichten]] oder einen [[Gitea#SSH Key hinzufügen|SSH Key hinzufügen]].
**Richten Sie sich den Zugang zu ihrem Gruppenrepository ein, indem Sie in [[Gitea]] ein [[Gitea#HTTPS Kennwort einrichten|HTTPS Kennwort einrichten]] oder einen [[Gitea#SSH Key hinzufügen|SSH Key hinzufügen]].
**[[Git#Repository klonen|Klonen]] sie das Gruppenrepository.
**[[Git#Repository klonen|Klonen]] sie das Gruppenrepository.
**Öffnen Sie dort die Datei <code>README.md</code> und fügen Sie ihren Namen an der dafür vorgesehenen Stelle hinzu (Verwenden Sie hierfür  '''nicht''' den Editor in Gitea, sondern eine lokale Kopie des Repositories wie in dieser Aufgabe beschrieben).
**Öffnen Sie dort die Datei <code>README.md</code> und fügen Sie ihren Namen an der dafür vorgesehenen Stelle hinzu (Verwenden Sie hierfür  '''nicht''' den Editor in Gitea, sondern eine lokale Kopie des Repositories wie in dieser Aufgabe beschrieben).
**[[Git#Änderungen an einer Datei| Committen]] sie ihre Änderungen: Benutzen sie die Commitnachricht <code>Added name to README.md (closes #<ticketnummer>)</code> um das entsprechende Item in Gitea [[Git#Git und Gitea | per Commitnachricht zu schließen]].
**[[Git#Änderungen an einer Datei| Committen]] sie ihre Änderungen: Benutzen sie die Commitnachricht <code>Added name to README.md (closes #<issue-nummer>)</code> um das entsprechende Issue in Gitea [[Git#Git und Gitea | per Commitnachricht zu schließen]].
**[[Git#Änderungen in das remote Repository laden (pushen)| Synchronisieren]] sie ihre Änderungen mit dem Server. Halten Sie sich dabei and [[GitWorkflow#Tägliche Arbeit Synchronisieren| den empfohlenen Git-Workflow]]. Es it gut möglich, dass durch den Commit konflikte entstehen: Beachten sie hierzu [[Git#Konflikte lösen| die Anleitung zum Konflikte lösen in Git]], und lösen Sie die entstehenden Konflikte sinvoll auf.
**[[Git#Änderungen in das remote Repository laden (pushen)| Synchronisieren]] sie ihre Änderungen mit dem Server. Halten Sie sich dabei and [[GitWorkflow#Tägliche Arbeit Synchronisieren| den empfohlenen Git-Workflow]]. Es it gut möglich, dass durch den Commit konflikte entstehen: Beachten sie hierzu [[Git#Konflikte lösen| die Anleitung zum Konflikte lösen in Git]], und lösen Sie die entstehenden Konflikte sinvoll auf.
*Sollte es noch keine <code>.gitignore</code>-Datei in Ihrem Repository geben, erstellen Sie in ihrem Repository eine entsprechende Datei ([[Git#Dateien Ignorieren]]), sodass temporäre Dateien von Visual Stuidio und Verzeichnisse für den Compileroutput von Git ignoriert werden. Comitten Sie diese Datei und pushen Sie diese ebenfalls. Eine gute Vorlage finden Sie unter [https://github.com/github/gitignore/blob/master/VisualStudio.gitignore Github].
*Sollte es noch keine <code>.gitignore</code>-Datei in Ihrem Repository geben, erstellen Sie in ihrem Repository eine entsprechende Datei ([[Git#Dateien Ignorieren]]), sodass temporäre Dateien von Visual Stuidio und Verzeichnisse für den Compileroutput von Git ignoriert werden. Comitten Sie diese Datei und pushen Sie diese ebenfalls. Eine gute Vorlage finden Sie unter [https://github.com/github/gitignore/blob/master/VisualStudio.gitignore Github].
Zeile 98: Zeile 92:


==Aufgabe 4: Texte lesen==  
==Aufgabe 4: Texte lesen==  
Lesen Sie sich die folgenden Artikel durch, und kommentieren Sie ihr entsprechendes Ticket:
Lesen Sie sich die folgenden Artikel durch, und kommentieren Sie ihr entsprechendes Issue:
*Lesen Sie [[CleanCode|Clean Code Development]]  
*Lesen Sie [[CleanCode|Clean Code Development]]  
**Beschreiben Sie in einem Kommentar zum entsprechenden Item ein Cleancodeprinzip und wieso Sie es für das Sopra für besonders wichtig erachten.
**Beschreiben Sie in einem Kommentar zum entsprechenden Issue ein Cleancodeprinzip und wieso Sie es für das Sopra für besonders wichtig erachten.
* Lesen Sie [[Dokumentation]]
* Lesen Sie [[Dokumentation]]
*Lesen Sie [[UsabilityForGames|Usability-Prinzipien beim Spieldesign]]  
*Lesen Sie [[UsabilityForGames|Usability-Prinzipien beim Spieldesign]]  
**Beschreiben Sie in einem Kommentar zum entsprechenden Item ein Usabilityprinzip und wieso Sie es für das Sopra für besonders wichtig erachten.
**Beschreiben Sie in einem Kommentar zum entsprechenden Issue ein Usabilityprinzip und wieso Sie es für das Sopra für besonders wichtig erachten.


===Items bearbeiten===
===Issues bearbeiten===
Bearbeiten sie die Aufgaben und tragen Sie entsprechende Zeiten in die Items in Gitea ein (im Menü rechts, ''Time Tracker -> Add Time''). Besonders bei Programmieraufgaben ist dies sinnvoll, da so eine Historie der Bearbeitung und der verbrauchten Zeit erstellt wird. Dies hilft nicht nur Ihnen bei der Planung weiterer Aufgaben und Abschätzung der dafür benötigten Zeit, sondern dient auch als Nachweis für Ihre kontinuierliche Mitarbeit (siehe [[Formalien]]).
Bearbeiten sie die Aufgaben und tragen Sie entsprechende Zeiten in die Issues in Gitea ein (im Menü rechts, ''Time Tracker -> Add Time''). Besonders bei Programmieraufgaben ist dies sinnvoll, da so eine Historie der Bearbeitung und der verbrauchten Zeit erstellt wird. Dies hilft nicht nur Ihnen bei der Planung weiterer Aufgaben und Abschätzung der dafür benötigten Zeit, sondern dient auch als Nachweis für Ihre kontinuierliche Mitarbeit (siehe [[Formalien]]).


===Items schließen===
===Issues schließen===
Wenn Sie mit einer Aufgabe fertig sind, sollten Sie Ihren entsprechenden Items schließen. Gehen Sie ähnlich wie beim Akzeptieren einer Story vor und drücken Sie auf den Button ''Schließen''. Beachten Sie bei Aufgaben die zu denen Sie etwas comitten, dass Sie das Item auch über die [[Git#Git und Gitea |Commitnachricht schließen können]].
Wenn Sie mit einer Aufgabe fertig sind, sollten Sie Ihren entsprechenden Issues schließen. Gehen Sie ähnlich wie beim Akzeptieren einer Story vor und drücken Sie auf den Button ''Schließen''. Beachten Sie bei Aufgaben die zu denen Sie etwas comitten, dass Sie das Issue auch über die [[Git#Git und Gitea |Commitnachricht schließen können]].


Vergessen Sie nicht die Zeit, die Sie für den Task benötigt haben, einzutragen (falls Sie das noch nicht gemacht haben).
Vergessen Sie nicht die Zeit, die Sie für den Task benötigt haben, einzutragen (falls Sie das noch nicht gemacht haben).
Zeile 148: Zeile 142:
==Aufgabe 6: Abgabe finalisieren==
==Aufgabe 6: Abgabe finalisieren==


Wenn Sie in Ihrer Gruppe die Aufgaben als letztes abschließen (d.h. Sie die das letzte Item im Sprintbacklog schließen) erledigen Sie noch folgende Aufgabe.  
Wenn Sie in Ihrer Gruppe die Aufgaben als letztes abschließen (d.h. Sie die das letzte Issue im Sprintbacklog schließen) erledigen Sie noch folgende Aufgabe.