Projektmanagement - MrJaimba/Projektseminar Wiki

Original URL: https://github.com/MrJaimba/Projektseminar/wiki/Projektmanagement

In diesem Abschnitt des Wikis wird die Organisation und der Ablauf des Projektseminars beschrieben. Hierbei wird einerseits auf die Voraussetzungen und Vorbereitung, andererseits auf die Planung des Gesamtprojektes eingegangen.

Voraussetzungen und Vorbereitung

Die Einteilung der Gruppe konnte durch die Mitglieder des Teams nicht beeinflusst werden. Deshalb veranstaltete das neue Team direkt nach dem Eröffnungsmeeting ein weiteres Treffen in welchem grundsätzliche Hoffnungen und Ziele für das Projekt aber auch der Stand der Vorkenntnisse und Fähigkeiten der einzelnen Teammitglieder offengelegt wurden. Nur wenige Personen des Teams verfügten über Programmiererfahrungen. Aufgrund der vergleichsweise einfachen Einarbeitung wurde sich schnell dafür entschieden das Projekt in der Programmiersprache Python umzusetzen. Hierfür wurde den Teilnehmern der Zugang zur E-Learning Plattform "Data Camp" ermöglicht, wodurch die Gruppe eine solide Basis an Kenntnissen in den Bereichen "Machine Learning" und "Data Preparation" sammeln konnte.

Um sich besser mit dem Thema vertraut zu machen wählte jedes Teammitglied in der Vorbereitungsphase ein Schwerpunktthema aus um darüber eine Seminararbeit zu verfassen. Somit eignete sich jeder in einer bestimmten Thematik spezifische Kenntnisse an und wurde zum Ansprechpartner für einen Bereich. Die Arbeiten umfassten die folgenden Themengebiete:

Da keiner der Mitarbeitenden zuvor an einem derartigen Projekt beteiligt war, sprach sich das Team von Anfang an dafür aus, dass jeder in allen Bereichen der Projektdurchführung Kenntnisse sammeln und sich einbringen möchte. Dies führte dazu, dass zwar jedes Gruppenmitglied bei spezifischen Schritten die Hauptarbeit übernahm, es jedoch immer wieder zu Arbeitsteilungen und Hilfestellungen durch die Kommilitonen kam. In diesem Wiki sind den einzelnen Schritten der Projektdurchführung jeweils die Ansprechpartner zugeordnet.

Zur Durchführung des Projektes bediente man sich einiger Programme. Für die Versionskontrolle, sowie zur Verwaltung des Codes und der Daten wurde ein Repository bei GitHub erstellt. Wie bereits erwähnt erfolgte die Umsetzung des Gesamtprojekts in Python. Als Entwicklungsumgebung entschieden sich die Mitglieder im Kollektiv für PyCharm. Kleinere Versuche wurden zuvor in diversen Jupyter Notebooks getestet. Als Datenbanksystem entschloss sich das Team SQLite zu nutzen.

Planung und zeitlicher Ablauf

Im ersten Meeting nach Beginn der aktiven Projektphase Anfang November wurde sich auf eine grundsätzliche Vorgehensweise nach Art der agilen Softwareentwicklung wie Scrum entschieden. Die einzelnen Teammitglieder setzten sich abhängig von ihren zugeteilten Aufgaben selbstständig Ziele, die innerhalb einer Woche erreichbar waren. Weiterhin wurde ein Termin für ein wöchentliches Meeting festgelegt, an dem Ergebnisse präsentiert wurden, sowie Feedback eingeholt werden konnte. Im Verlauf des Projektes wurden auch immer wieder Absprachen mit dem Betreuerteam getroffen. Diese dienten der Darlegung des aktuellen Standes, Feedbackgesprächen sowie der Abstimmung über das weitere Vorgehen.

Während der Vorbereitungsphase einigten sich die Mitglieder auf einen zeitlichen Ablaufplan, welcher das Erreichen der in der Einleitung festgelegten Ziele gewährleisten soll.

Der Ablaufplan enthält vier Phasen. Die sogenannte "Phase 0" umfasst dabei die organisatorischen Aufgaben und die Einarbeitung. Dies schließt alle Tätigkeiten mit ein, die während der Vorbereitungszeit ausgeführt und im letzten Teilkapitel beschrieben wurden. Mit der Durchführung der drei folgenden Phasen sollten die bereits beschriebenen Meilensteine Beschaffung einer soliden Datengrundlage und Feature Engineering, Training und Tests verschiedener Machine-Learning Modelle zur Bestimmung eines adäquaten Angebotspreises, Umsetzung eines User Interface mit hoher Usability und Einbezug weiterer Meta-Daten zur Ermöglichung zusätzlicher Funktionen erfolgreich und Fristgerecht abgeschlossen werden.

Beim Ablauf war man sich einig zunächst ein funktionstüchtiges Modell mit den Grundelementen zu erschaffen. Deshalb wurde die Priorität Anfangs auf die Beschaffung einer Datengrundlage gelegt, mit welcher anschließend die Machine Learning Tests durchgeführt werden konnten. Das Grundgerüst des User Interface wurde bereits zu Beginn des Projektes entwickelt. Wohingegen die Anpassung der Modelle auf das User Interface und die Feinjustierungen der Funktionalität am Ende vorgenommen wurden. Die Beschaffung und Integration weiterer Metadaten erfolgte nachdem die Datenbeschaffung abgeschlossen war weitestgehend parallel. Für die genaue Vorgehensweise wird auf die nachfolgenden Kapitel des Wikis verwiesen.