## Zusammenfassung

Die erste Projektidee zum Transparenzregister umfasste die Entwicklung einer Lösung zur Extraktion, Aufbereitung, Analyse und Visualisierung von Metadaten von Unternehmen, wobei der Fokus auf den größten deutschen und europäischen Unternehmen lag.\
Die ermittelten Daten sollten wichtige Unternehmenskennzahlen wie Umsatz, Gewinn, Bilanzsumme, Eigenkapital, Vorstand, Aufsichtsrat, Wirtschaftsprüfer, Besitzverhältnisse und mehr umfassen. Dabei stand die Verknüpfung und Visualisierung dieser Daten im Vordergrund.

Die Projektziele erstreckten sich über verschiedene Fragestellungen. Die Analyse von Unternehmensverflechtungen, die Identifikation der handelnden Personen im Vorstand und Aufsichtsrat, sowie die Bewertung von Berichten über Unternehmen waren zentrale Aspekte. \
Die Auswertung von Berichten sollte klären, ob diese positiv oder negativ sind, beispielsweise anhand von Indikatoren wie häufigen Vorstandswechseln oder Meldungen über Zielerreichung.

Ein weiterer Schwerpunkt war die Visualisierung der erhobenen Daten. Hierbei war eine benutzerfreundliche Suche nach Unternehmen und Personen sowie eine detaillierte Ansicht gefordert. Besonderes Augenmerk lag auf der transparenten Darstellung von Verbindungen zwischen Unternehmen und Personen durch ein Netzwerkdiagramm.

Um diese Projektziele zu erreichen wurde ein 14-tägiger Regeltermin mit dem Product Owner (PO) und ein 7-tägiger Regeltermin mit dem Projektteam festgelegt. \
Zur Festlegung der Anforderungen und Umfang des Projekts wurden Domänen identifiziert, welche notwendig sind, um die gestellten Aufgaben zu erreichen.\
Zur Organisation wurden moderne Werkzeuge zur Softwareentwicklung und Projektmanagement eingesetzt, um das Projektteam jederzeit auf dem gleichen Wissensstand, Fortschritt und weiteren Verlauf zu halten.\
Die Teammitglieder erarbeiteten sich in der ersten Projekthälfte Expertenwissen in den Bereichen DevOps, Data-Mining, Datenvisualisierung, Datenspeicherung, Netzwerk- und Sentimentanalyse, stellten dieses in Seminarvorträgen vor und überprüften die Umsetzbarkeit mit einem ersten Proof-of-Concept zum Transparenzregister.\
Es wurden Metriken zur Bewertung von Unternehmen definiert und erste Mock-Ups für eine GUI erstellt. Diese Konzepte wurden mit dem PO diskutiert, um eine Architektur für die Implementierungsphase zu schaffen.


Die zweite Projekthälfte konzentrierte sich auf die praktische Umsetzung der Produktidee in einer professionellen Umgebung.\
Die notwendigen Funktionen zur Datenerfassung, -extraktion, -speicherung und Visualisierung wurden in Python geschrieben und über GitHub verwaltet, wobei vorab eine CI/CD Infrastruktur geschaffen wurde.\
In einem Präsenztermin hat das Projektteam eine Containerarchitektur erarbeitet, in welcher die Funktionen organisiert werden.

Die benötigten Datenbanken zur Speicherung der Staging- und Produktivdaten wurden auf dem Kubernetes-Cluster der FH gehostet. \
Die Dockerarchitektur und die Container wurden auf einer Portainerinstanz der FH deployed.\
Zusätzlich wurde im Projekt ein lokales Deployment umgesetzt, welches mittels docker-compose die benötigten Datenbanken und Container lokal baut, mit einem Datenbank-Dump befüllt und das Frontend bereitstellt.

Die wichtigsten Erkenntnisse für die Teammitglider sind in der folgenden Tabelle zusammengefasst:

| Ergebnisse                       | Herausforderungen                         | Erfolge                                             |
|----------------------------------|-------------------------------------------|-----------------------------------------------------|
| neue SW-Tools erlernt            | heterogene Gruppe auf einen Stand bringen | Continuous Deployment auf FH-Cluster                |
| Projektmanagement                | offenes Projektziel                       | gutes Aufgaben- und Zeitmanagement                  |
| Umgang mit Github                | Scope Creep                               | erfolgreiche Implementierung und Umsetzung der Idee |
| praktische Anwendung von CI/CD   | technische Infrastruktur                  | sehr hohe Code Qualität                             |
| Softwaretesting                  | viel Domänenwissen notwendig              | interdisziplinäres Arbeiten                         |
| funktionsfähige Software         |                                           | lokales Deployment                                  |
| wartbarer Code                   |                                           |                                                     |
| Netzwerkanalyse                  |                                           |                                                     |
| Umgang mit SQL/NoSQL Datenbanken |                                           |                                                     |
| Methoden des Data-Minings        |                                           |                                                     |
| Dashboard-/GUI Entwicklung       |                                           |                                                     |
| Anwendung Docker                 |                                           |                                                     |
| Softwarearchitektur              |                                           |                                                     |


### Lessons Learned

Während des Projektverlaufs wurden wichtige Erkenntnisse und Lektionen gewonnen, die das Team in zukünftigen Projekten berücksichtigt. \
Eine der zentralen Lektionen war die Bedeutung einer klaren Zieldefinition und -setzung. Die Festlegung und Dokumentation des Projektziels wurde zu einem entscheidenden Faktor für den reibungslosen Fortschritt.\
Das Team erkannte die Notwendigkeit eines regelmäßigen Team-Meetings, um Ideen, Herausforderungen, Probleme und Fortschritte zu besprechen.
Der Regeltermin führte zu kontinuierlicher Kommunikation und unterstützte den Fortschritt positiv.

Durch die unterschiedlichen Hintergründe der Teammitglieder gab es die Herausforderung einen gemeinsamen technischen Stand zu erreichen, um auf dieser Basis das Projekt durchzuführen.\
Die unterschiedlichen Eigenschaften, Fähigkeiten und Wissensstände lieferten aber auch alle wichtigen Kompetenzen für ein leistungsfähiges Team.

![Teamrollen](Abbildungen/Teamrollen.PNG)

| Rolle          | Stärken                                         | Schwächen                                      |
|:--------------:|-------------------------------------------------|------------------------------------------------|
| Perfektionist  | Sorgfalt, Gewissenhaftigkeit                    | Kontrollsucht, kann nicht delegieren           |
| Umsetzer       | praktisch veranlagt, zuverlässig                | unflexibel, skeptisch gegenüber neuen Methoden |
| Macher         | Mut, Pragmatismus                               | ungeduldig, unsensibel                         |
| Erfinder       | kreativ, frische Ideen                          | Provokateur, hält Regeln nicht ein             |
| Spezialist     | Expertise                                       | verliert sich in Details                       |
| Beobachter     | skeptisch, kritisch                             | kann demotivieren und bremsen                  |
| Weichensteller | lösungsorientiert, kommunikativ, offen          | zu optimistisch, verliert schnell Interesse    |
| Teamarbeiter   | einfühlsam, diplomatisch, kooperativ            | unentschlossen, vermeidet Konfrontation        |
| Koordinator    | selbstbewusst, zielorientiert, guter Netzwerker | wirkt manipulativ, übergibt Aufgaben an andere |

Wir haben im vorherigen Kapitel zahlreiche Methoden, Werkzeuge und vor allem deren praktische Anwendung kennengelernt. Die Implementierung verschaffte uns wertvolle Einblicke und Fähigkeiten in moderne Softwareentwicklungsmethoden und -werkzeuge. Die Planung der Architektur führte zu einer skalierbaren Plattform, die sowohl lokal als auch in der Cloud bereitgestellt werden kann.

Das Projekt war äußerst anspruchsvoll und herausfordernd, jedoch war der daraus resultierende Wissensgewinn von unschätzbarem Wert. Die interdisziplinäre Zusammenarbeit im Team funktionierte hervorragend, und die Herausforderungen, denen wir gegenüberstanden, wurden als Chancen für Wachstum und Lernen betrachtet.

Wir möchten unseren besonderen Dank an Professor Arinir richten, der uns nicht nur fachkundig betreute, sondern auch mit seiner Expertise in Softwareentwicklung, Methodik und Management entscheidende Impulse setzte. Seine konstruktive Kritik und Ratschläge waren von unschätzbarem Wert und trugen maßgeblich zum Erfolg des Projekts bei. Seine Unterstützung ermöglichte es uns, die gesteckten Ziele zu erreichen und darüber hinaus wertvolle Einblicke in die Welt der Softwareentwicklung zu gewinnen.

Trotz der Herausforderungen war das Projekt eine bereichernde Erfahrung, die nicht nur unser technisches Know-how erweiterte, sondern auch die Fähigkeit zur Zusammenarbeit und zum Problemlösen förderte. Wir blicken mit Stolz auf das, was wir erreicht haben, und freuen uns darauf, die gewonnenen Erkenntnisse in zukünftigen Projekten anzuwenden.
