\cleardoublepage
\pagestyle{fancy}
\pagenumbering{arabic}

# Einleitung Allgemeiner Teil

## Diplomarbeitsantrag

### Ausgangslage

Der Absolventenverein verwaltet derzeit rund 300 Alumni, deren Daten in einer CSV-Datei gepflegt werden. Die Event-Anmeldungen der letzten Jahre erfolgten über “Perspective Funnels”, dessen Lizenz mittlerweile abgelaufen ist. Für die kommenden Veranstaltungen wird daher ein Ersatz für die Event-Registrierung benötigt. Die aktuellen Abläufe sind dezentral und teilweise manuell, was zu einem erhöhten Verwaltungsaufwand und fehlender Übersicht führt. Eine integrierte Plattform für Mitgliederverwaltung, Kommunikation und Event-Organisation existiert bislang nicht.

### Zielsetzung

Ziel der Diplomarbeit ist es, ein Content-Management-System als Basis für eine innovative, barrierefreie und sichere Webseite des Absolventenvereins zu nutzen, dabei vorhandene Funktionen des CMS anzupassen und eigene Module wie eine Eventanmeldung, eine Hall of Fame, ein Schwarzes Brett als Kommunikationsplattform sowie einen Premiumbereich zu entwickeln. Die Anwendung soll modular, erweiterbar und leicht wartbar sein und auf einem Schulserver betrieben werden, um eine kontrollierte und geschützte Umgebung für die Verwaltung der Mitglieder- und Veranstaltungsdaten zu gewährleisten.

### Tatsächliches Ergebnis

Im Rahmen des Projekts konnten alle priorisierten Tickets aus dem Product Backlog erfolgreich umgesetzt werden.

Konstantin Hintermayer übernahm als Product Owner die Kommunikation mit dem Auftraggeber und stellte einen funktionsfähigen Linux-Server als technische Grundlage bereit. Zusätzlich erarbeitete er Skripte sowie Dokumentationen zur Serverlandschaft und führte die Grundkonfiguration des CMS durch. Weiters wurden die Module „Auswertung“ und „Schwarzes Brett“ erfolgreich an den Kunden übergeben.

Adam Gaiswinkler war für die Dokumentation der Benutzeroberfläche und des Backends sowie für die Entwicklung eines CMS-Moduls zur Anmeldung und für die „Hall of Fame“ verantwortlich. Auch die grundlegende Konfiguration des CMS wurde erfolgreich umgesetzt.

Florian Edlmayer entwickelte ein funktionierendes CMS-Modul für den Premiumbereich der Absolventen. Zusätzlich erstellte er eine vollständige und gesetzeskonforme Datenschutzerklärung. Ein weiterer wichtiger Bestandteil war die erfolgreiche Implementierung einer OAuth-Authentifizierung über LinkedIn.

## Das Team

**Konstantin Hintermayer**

Geboren am: 25.05.2007

E-Mail: [konstantin.hintermayer@edu.szu.at]

Individuelle Themenstellung: Projektleitung (Product Owner), (Server-) Infrastruktur, Aufsetzen und Installieren der Server / Linux / Datenbank, Adminzugriff, Skripten, Entwicklung der Auswertungen und des schwarzen Bretts.


**Florian Edlmayer**

Geboren am: 20.08.2006

E-Mail: [florian.edlmayer@edu.szu.at]

Individuelle Themenstellung: Entwicklung eines CMS-Moduls für den Premiumbereich des Absolventenvereins,Verfassung der Datenschutzerklärung und zuständig für Informationssicherheit, Implementierung von OAuth, Datenbankmanagement.


**Adam Gaiswinkler**

Geboren am: 11.10.2006

E-Mail: [adam.gaiswinkler@edu.szu.at]

Individuelle Themenstellung:Entwicklung zweier CMS-Module: (Anmeldetool für Treffen und Hall of Fame), Grundkonfiguration des CMS, Starker Fokus auf nutzerfreundliches und responsives Design, Web-Entwicklung mit C# und ASP.NET.

## Fachliches Umfeld(Technologien)

Im fachlichen Umfeld dieser Diplomarbeit kommt das Content-Management-System Oqtane zum Einsatz. Oqtane basiert auf modernen Webtechnologien wie ASP.NET Core und der Plattform .NET und ermöglicht die Entwicklung modularer und skalierbarer Webanwendungen. Durch seine komponentenbasierte Architektur können Funktionen in Form von Modulen flexibel entwickelt und in die Anwendung integriert werden. Dies erleichtert sowohl die Erweiterbarkeit als auch die Wartung der Plattform. Besonders im Kontext dieser Arbeit bietet Oqtane eine geeignete Grundlage, um eine dynamische und benutzerorientierte Alumni-Plattform umzusetzen, da sowohl Inhalte als auch Benutzerverwaltung effizient verwaltet werden können.

Siehe Details unter: Konstantin Hintermayer individueller Teil

# Projektplanung

## Projektziele

### Hauptziele

- **HZ01 – Verwaltung von Absolventenprofilen**
  Das System ermöglicht die zentrale Erstellung und Pflege individueller Profile für Absolventen.

- **HZ02 – Organisation von Veranstaltungen**
  Die Applikation stellt Funktionen zur Planung und Durchführung von Vereinstreffen und Events bereit.

- **HZ03 – Darstellung der Hall of Fame**
  Besondere Leistungen und Erfolge von Absolventen werden in einer digitalen Ehrengalerie präsentiert.

- **HZ04 – Firmen- und Jobstellenmarkt**
  Integration einer Plattform für Stellenangebote, Praktika und die Vernetzung mit Partnerunternehmen.

- **HZ05 – Zugriffsverwaltung und Sicherheit**
  Implementierung einer rollenbasierten Zugriffskontrolle und Gewährleistung der Datensicherheit nach DSGVO-Standard.

- **HZ06 – Schülerzugang und CMS**
  Einbindung eines Redaktionssystems für Beiträge und eines speziellen Zugangs für aktuelle Schüler.

### Hardwareanforderungen und Infrastruktur

- **HW01 – Benutzerkapazität (300 Nutzer)**
  Das System unterstützt mindestens 300 gleichzeitig registrierte Benutzer für Administration und Nutzung.

- **HW02 – Aktive Zugriffsrate (50 Zugriffe/Tag)**
  Die Infrastruktur ist auf ca. 50 tägliche aktive Nutzer ohne Performanceverluste ausgelegt.

- **HW03 – Einfache Skalierbarkeit**
  Die Architektur erlaubt eine flexible Erweiterung der Ressourcen ohne strukturelle Änderungen.

- **HW04/05 – Hochverfügbarkeit (99,5 %)**
  Der Betrieb erfolgt auf skalierbaren Cloud-Servern mit einer angestrebten Verfügbarkeit von 99,5 % pro Jahr.

- **HW07 – Disaster Recovery (24h)**
  Im Falle eines Totalausfalls muss das System innerhalb von 24 Stunden wieder benutzbar sein.

• **HW12/13 – Automatisierte Sicherung**
Implementierung einer automatisierten Datensicherung für Datenbanken und Binaries auf unabhängigen Speichern.

• **RED-1 – Redundanz der Datenbank**
Die Datenbank wird zur Ausfallsicherheit redundant geführt und nutzt automatische Master-Promotion im Fehlerfall.

### Schnittstellenanforderungen

- **SnT-1 – REST-API (Frontend/Backend)**
  Bereitstellung einer API zur Kommunikation zwischen dem Oqtane-CMS und dem Blazor-Frontend für dynamische CRUD-Operationen.

- **SnT-2 – SMTP-E-Mail-Versand (Brevo)**
  Einbindung des Brevo SMTP-Dienstes für den Versand von bis zu 300 transaktionalen E-Mails pro Tag.

- **SnT-3 – LinkedIn OAuth (Phase 2)**
  Schnittstelle zur Authentifizierung und zum automatisierten Abruf von Profildaten über LinkedIn.

### Software und Zugriffsverwaltung

- **SW-1/2 – Barrierefreiheit und Browser-Support**
  Unterstützung gängiger Browser und Einhaltung des WCAG 2.1 AA Standards für Barrierefreiheit.

- **SW-4 – Sicherer Administrationszugriff**
  Administrativer Zugriff erfolgt ausschließlich über eine verschlüsselte VPN-Verbindung (Wireguard) und SSH.

- **ZUG-1–4 – Authentifizierung und Rollen**
  Implementierung klassischer Login-Verfahren, Passwort-Reset-Funktionen und einer detaillierten Benutzerverwaltung für Administratoren.

- **ZUG-6/7 – Magic Link und 2FA (Phase 2)**
  Erweiterung der Sicherheit durch passwortlose Anmeldung via E-Mail-Link und Zwei-Faktor-Authentifizierung.

### Funktionsmodule (Phase 2)

- **HoF-1/2 – Hall of Fame Funktionen**
  Nutzer können ihre Erfolge online präsentieren und als ansprechendes PDF für Treffen exportieren.

- **JOB-1/2 – Job- und Praktikumsbörse**
  Plattform für Stellenanzeigen und Bewerbungen inklusive Dashboard für Arbeitgeber und statistischen Auswertungen.

- **PRE-1–3 – Premiumbereich**
  Exklusiver Zugang für Premiummitglieder inklusive Einsicht in Ingenieuranträge und erweiterter Event-Organisation.

- **ScB-1–4 – Schwarzes Brett**
  Ein interaktiver Feed für Nachrichten, Event-Ankündigungen und Werbung mit integriertem Meldesystem für Inhalte.

- **AfT-1–5 – Anmeldetool für Treffen**
  Umfassendes Tool zur Eventerstellung, zum Versand von Einladungen (E-Mail/SMS) und zur Zielgruppenfilterung.

- **Pro-1–4 – Erweiterte Profilverwaltung**
  Nutzer können ihre Daten manuell pflegen oder automatisiert mit ihrem LinkedIn-Profil abgleichen lassen.

### Daten und Dokumentation

- **DB-1 – PostgreSQL Datenbank**
  Entwicklung eines relationalen Datenbankdesigns inklusive Indizierung und Verschlüsselung zur Gewährleistung der Datenintegrität.

- **DOK-1–6 – Projektdokumentation**
  Erstellung aller notwendigen Handbücher (Benutzer, Admin, Git) und des Disaster-Recovery-Handbuchs.

### Nicht-Ziele

- **NZ01 – Zahlungsprozesse**
  Die technische Abwicklung von Zahlungen im Premiumbereich liegt außerhalb des Projektscopes.

- **NZ02 – Externe Kalenderlösungen**
  Die Integration externer Dienste wie V-Calendar oder V-Event ist nicht vorgesehen.

## Aufgabenverteilung

### Konstantin Hintermayer

|                         |                                                                                                                                                                                            |
| :---------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Themenstellung:         | Die individuelle Themenstellung umfasst die Konzeption und Umsetzung der Infrastruktur sowie die Entwicklung von Modulen für Auswertungen und ein Schwarzes Brett innerhalb der Plattform. |
| Ziele und Anforderungen | HW01, HW02, HW03, HW04/05, HW07, RED-1, SW-4, ScB-1–4                                                                                                                                      |

Table: Aufgabenverteilung Konstantin Hintermayer

### Florian Edlmayer

|                         |                                                                                                                                                                                                         |
| :---------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Themenstellung:         | Die individuelle Themenstellung umfasst die Entwicklung eines Premiumbereichs sowie die Umsetzung von Datenschutz- und Informationssicherheitsmaßnahmen, einschließlich Zugriffs- und Profilverwaltung. |
| Ziele und Anforderungen | HZ01, HZ05, HW12/13, SnT-3, ZUG-1–4, ZUG-6/7, PRE-1–3, Pro-1–4, DB-1                                                                                                                                    |

Table: Aufgabenverteilung Florian Edlmayer

### Adam Gaiswinkler

|                         |                                                                                                                                                                                        |
| :---------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Themenstellung:         | Die individuelle Themenstellung umfasst die Entwicklung einer Hall of Fame, die Implementierung eines Anmeldetools für Treffen sowie die Konfiguration des Content-Management-Systems. |
| Ziele und Anforderungen | HZ02, HZ03, HZ06, SnT-2, SW-1/2, HoF-1/2, AfT-1–5                                                                                                                                      |

Table: Aufgabenverteilung Adam Gaiswinkler

## Geplante Projektablauf

### Meilensteine

| #   | Datum          | Beschreibung                                                                                                                                                                                                                                                                                                                              |
| :-- | :------------- | --------------------------------------------------------- |
| _1_ | _19.09.2025_ | Fertigstellung und Abgabe des Diplomarbeitsantrags.                                                                                                                                                                                                                                                                              |
| _2_ | _30.10.2025_ | Server-Setup mit SSH-Zugriff, CMS-Grundkonfiguration (Oqtane) im SZU-Design, Implementierung der Eingabemaske und API für das Anmeldetool sowie Erstellung der DSGVO-Richtlinien und Backupstrategie. |
| _3_ | _27.11.2025_ | Entwicklung grafischer Auswertungen für Anmeldedaten und Integration der OAuth-Authentifizierung zum automatisierten Abruf von Profildaten.                                                                                                                                   |
| _4_ | _18.12.2025_ | Realisierung des Schwarzen Bretts inkl. Sperrfunktion für Administratoren, Entwicklung des Hall of Fame Moduls mit PDF-Generierung sowie Aufbau der Premiumkunden-Verwaltung.                                                                             |
| _5_ | _21.01.2026_ | Erstellung der technischen Systemdokumentation, Durchführung von Modultests und Implementierung der Premium-Serviceverwaltung.                                                                                                                                                    |
| _6_ | _08.02.2026_ | Projektabschluss der Infrastruktur-Tasks, Übergabe der Disaster-Recovery-Skripte und Finalisierung der gesamten Projektdokumentation.                                                                                                                                              |
| _7_ | _12.03.2026_ | Finale Abgabe des Diplomarbeitsbuchs.                                                                                                                                                                                                                                                                                            |
| _8_ | _22.04.2026_ | Defensio (Projektabschluss).                                                                                                                                                                                                                                                                                                     |

Table: Meilensteine

### Sprints

| #    | Beginn     | Ende       | Hinweis          | Meilensteine   |
| :--- | :--------- | :--------- | :--------------- | :------------- |
| 1    | 02.10.2025 | 16.10.2025 |                  |                |
| 2    | 16.10.2025 | 30.10.2025 |                  | 1. Meilenstein |
| 3    | 30.10.2025 | 13.11.2025 | Herbstferien     |                |
| 4    | 13.11.2025 | 27.11.2025 |                  | 2. Meilenstein |
| 5    | 27.11.2025 | 11.12.2025 |                  |                |
| 6    | 11.12.2025 | 25.12.2025 | Weihnachtsferien | 3. Meilenstein |
| 7    | 25.12.2025 | 08.01.2026 | Weihnachtsferien |                |
| 8    | 08.01.2026 | 22.01.2026 |                  | 4. Meilenstein |
| 9    | 22.01.2026 | 05.02.2026 | Semesterferien   |                |
| 10   | 05.02.2026 | 19.02.2026 |                  | 5. Meilenstein |
| 11   | 19.02.2026 | 05.03.2026 |                  |                |
| 12   | 05.03.2026 | 19.03.2026 |                  | 6. Meilenstein |

Table: Sprints und deren Schwerpunkte

## Projektumfeld Analyse

### Grafische Darstellung

```mermaid
%%| fig-cap: Projektumfeld Analyse
%%| filename: projektumfeld-analyse

   flowchart TD
    %% Interne Umwelten (Oben)
    subgraph Interne ["Interne Umwelten"]
        direction LR
        N1["1) Konstantin Hintermayer<br/>Projektleiter"]
        N2["2) Florian Edlmayer<br/>Projektmitarbeiter"]
        N3["3) Adam Gaiswinkler<br/>Projektmitarbeiter"]
        N4["4) Ing. Thomas Gürth<br/>Projektbetreuer"]
    end

    %% Zentraler Knoten
    Hub(("Alumnihub"))

    %% Externe Umwelten (Unten)
    subgraph Externe ["Externe Umwelten"]
        direction LR
        N5["5) Absolventenverein"]
        N6["6) Schülerinnen/Schüler"]
        N7["7) Lehrerinnen/Lehrer"]
        N8["8) Konkurrenz"]
    end

    %% Verbindungslinien
    N1 & N2 & N3 & N4 --- Hub
    Hub --- N5 & N6 & N7 & N8

    %% Legende (Ganz unten)
    subgraph Legend ["Legende"]
        direction LR
        L1["... positiver Einfluss"]
        L2["... potenzieller positiver und/oder negativer Einfluss"]
        L3["... negativer Einfluss"]
    end

    %% Styling für bessere Lesbarkeit und Ähnlichkeit zur Vorlage
    classDef green fill:#008000,stroke:#333,stroke-width:2px,color:#fff,font-weight:bold,font-size:16px;
    classDef blue fill:#2E64FE,stroke:#333,stroke-width:2px,color:#fff,font-weight:bold,font-size:16px;
    classDef red fill:#FF0000,stroke:#333,stroke-width:2px,color:#fff,font-weight:bold,font-size:16px;
    classDef center fill:#D1D9F0,stroke:#333,stroke-width:3px,color:#000,font-weight:bold,font-size:20px;

    class N1,N2,N3,N4,L1 green;
    class N5,N6,N7,L2 blue;
    class N8,L3 red;
    class Hub center;

```

### Beschreibung der wichtigsten Umfelder

| #    | Bezeichnung            | Beschreibung                     | Bewertung |
| :--- | :--------------------- | :------------------------------- | :-------- |
| 1    | Konstantin Hintermayer | Projektleiter                    | +         |
| 2    | Florian Edlmayer       | Projektmitarbeiter               | +         |
| 3    | Adam Gaiswinkler       | Projektmitarbeiter               | +         |
| 4    | Ing. Thomas Gürth      | Projektbetreuer                  | +         |
| 5    | Absolventenverein      | Auftraggeber des Alumnihubs      | +/-       |
| 6    | Schülerinnen/Schüler   | Zielgruppe der SZU Ungargasse    | +/-       |
| 7    | Lehrerinnen/Lehrer     | Lehrpersonal der SZU Ungargasse  | +/-       |
| 8    | Konkurrenz             | Potenziell vorhandene Konkurrenz | -         |

Table: Projektumfelder und deren Bewertung

## Risikoanalyse

| #   | Bezeichnung        | Beschreibung                                                                                                                      | Warsch. (%) | Ausw. (%) | Risikowert |
| :-- | :----------------- | :-------------------------------------------------------- | :-------: | :-------: | :-----: |
| 1   | Infrastruktur      | Instabilität oder Fehlkonfiguration der Cloud-Server (Hetzner CX22), die den Live-Betrieb unterbrechen. |           60           |       90       |    5400    |
| 2   | Datenverlust       | Kritischer Ausfall der Datenbank ohne erfolgreiche Wiederherstellung durch automatisierte Backups.      |           20           |       92       |    1425    |
| 3   | DSGVO-Verstoß      | Fehlende Konformität bei der Speicherung personenbezogener Daten oder beim Opt-In-Verfahren.       |           10           |      89       |    1000    |
| 4   | Sicherheitslücke   | Unbefugter Zugriff auf das System durch Schwachstellen in der VPN- oder SSH-Verbindung.                     |           15           |       85       |    1275    |
| 5   | API-Schnittstellen | Ausfall oder Inkompatibilität externer Dienste wie LinkedIn OAuth oder Brevo Mailservice.               |           30           |       50       |    1500    |
| 6   | Performance        | Beeinträchtigung der Systemleistung bei steigenden Zugriffszahlen in Phase 2.                           |           40           |       40       |    1600    |
| 7   | Wieder-herstellung  | Überschreitung des geplanten Disaster-Recovery-Zeitraums von 24 Stunden.                                |           25           |       70       |    1750    |
| 8   | Oqtane-Integration | Komplexität bei der Entwicklung und Einbindung benutzerdefinierter CMS-Module.                          |           55           |       45       |    1350    |
| 9   | Dokumentation      | Lückenhafte technische Dokumentation erschwert die Wartung durch den Absolventenverein.                    |           20           |       30       |    600     |

Table: Risikoanalyse und Bewertung

### Grafische Darstellung

```mermaid
%%| fig-cap: Risikoportfolio Alumnihub
%%| filename: risikoportfolio-alumnihub
quadrantChart
    title Risikoportfolio Alumnihub
    x-axis Geringe Auswirkung --> Hohe Auswirkung
    y-axis Geringe Wahrscheinlichkeit --> Hohe Wahrscheinlichkeit
    quadrant-1 Kritisch
    quadrant-2 Beobachten
    quadrant-3 Akzeptabel
    quadrant-4 Handlungsbedarf
    Infrastruktur: [0.9, 0.6]
    Datenverlust: [0.92, 0.2]
    DSGVO_Verstoss: [0.89, 0.1]
    Sicherheitsluecke: [0.85, 0.15]
    API_Schnittstellen: [0.5, 0.3]
    Performance: [0.4, 0.4]
    Wiederherstellung: [0.7, 0.25]
    Oqtane_Integration: [0.55, 0.45]
    Dokumentation: [0.3, 0.2]
```

## Projektressourcen

### Personelle Ressourcen (geplant)

| Teammitglied               | Personenstunden |
| :------------------------- | :-------------: |
| **Konstantin Hintermayer** |       180       |
| **Florian Edlmayer**       |       180       |
| **Adam Gaiswinkler**       |       180       |
| **SUMME**                  |     **540**     |

Table: Personelle Ressourcen

### Persönliche Ressourcen(real)

| Monat/Datum | Florian Edlmayer | Adam Gaiswinkler | Konstantin Hintermayer |
| :---------- | :--------------- | :--------------- | :--------------------- |
| 30.05.      | 1.0h             | 1.0h             | 0.2h                   |
| 13.06.      | 0.5h             | 0.8h             | 13.8h                  |
| 27.06.      | 1.2h             | 2.1h             | 1.5h                   |
| 11.07.      | 0.8h             | 0.5h             | 5.0h                   |
| 25.07.      | 1.5h             | 1.2h             | 2.5h                   |
| 08.08.      | 0.5h             | 1.5h             | 1.0h                   |
| 22.08.      | 1.0h             | 2.0h             | 1.8h                   |
| 05.09.      | 2.3h             | 1.4h             | 3.2h                   |
| 19.09.      | 1.8h             | 2.8h             | 4.5h                   |
| 03.10.      | 10.8h            | 18.1h            | 22.8h                  |
| 17.10.      | 1.0h             | 5.5h             | 10.8h                  |
| 31.10.      | 8.0h             | 3.5h             | 2.2h                   |
| 14.11.      | 3.8h             | 10.0h            | 5.0h                   |
| 28.11.      | 6.0h             | 14.3h            | 22.5h                  |
| 12.12.      | 25.0h            | 20.0h            | 30.0h                  |
| 26.12.      | 15.0h            | 14.7h            | 25.0h                  |
| 09.01.      | 3.0h             | 20.0h            | 25.0h                  |
| 23.01.      | 30.0h            | 12.5h            | 24.0h                  |
| 06.02.      | 17.5h            | 47.9h            | 16.0h                  |
| 20.02.      | 31.0h            | 9.5h             | 24.0h                  |
| 06.03.      | 42.9h            | 24.0h            | 8.7h                   |
| **Gesamt**  | **204.6h**       | **213.3h**       | **249.5h**             |

Table: Persönliche Ressourcen(real)

## Projektmanagement mit Scrum

### Grundlagen der Scrum-Methode

Für die Organisation und Umsetzung des Projekts wurde das agile Projektmanagement-Framework Scrum verwendet. Scrum ist ein weit verbreitetes Vorgehensmodell in der Softwareentwicklung, das besonders für Projekte geeignet ist, bei denen sich Anforderungen im Laufe der Entwicklung verändern können. Im Gegensatz zu klassischen Projektmanagementmethoden arbeitet Scrum nicht mit einer vollständig im Voraus geplanten Entwicklung, sondern mit kurzen, wiederkehrenden Entwicklungszyklen.

Das zentrale Element von Scrum ist der sogenannte Sprint. Ein Sprint stellt einen fest definierten Zeitraum dar, in dem bestimmte Funktionen oder Anforderungen umgesetzt werden. In diesem Projekt betrug die Dauer eines Sprints zwei Wochen. Innerhalb dieses Zeitraums arbeitete das Entwicklungsteam daran, ausgewählte Aufgaben zu implementieren und am Ende des Sprints ein funktionsfähiges Ergebnis zu präsentieren.

Die agile Arbeitsweise von Scrum basiert auf einer iterativen und inkrementellen Entwicklung. Das bedeutet, dass die Software Schritt für Schritt erweitert wird. Nach jedem Sprint steht eine neue Version der Anwendung zur Verfügung, die zusätzliche Funktionen enthält. Dadurch können Änderungen oder neue Anforderungen flexibel in zukünftige Sprints integriert werden.

Die grundlegende Struktur und der Ablauf eines Scrum-Projekts sind in Abbildung X dargestellt.

![Übersicht des Scrum-Frameworks mit Rollen, Artefakten und Ereignissen](./images/02-Allgemein/scrum-framework.png)

Die Abbildung zeigt die wichtigsten Elemente des Scrum-Frameworks. Auf der linken Seite sind die Anforderungen des Projekts dargestellt, die im sogenannten Product Backlog gesammelt werden. Dieses Backlog enthält alle geplanten Funktionen, Verbesserungen und Aufgaben des Projekts. Diese Anforderungen stammen häufig von Stakeholdern oder zukünftigen Benutzern der Anwendung.

Während der Sprintplanung wählt das Entwicklungsteam gemeinsam mit dem Product Owner jene Aufgaben aus dem Product Backlog aus, die im nächsten Sprint umgesetzt werden sollen. Diese Aufgaben werden anschließend im Sprint Backlog gesammelt und bilden die Grundlage für die Arbeit während des Sprints.

Im Zentrum der Abbildung befindet sich der Sprint-Zyklus, der typischerweise zwischen einer und vier Wochen dauert. In diesem Projekt wurde eine Sprintdauer von zwei Wochen festgelegt. Während dieser Phase arbeitet das Entwicklungsteam an der Umsetzung der definierten Aufgaben. Dabei durchläuft die Entwicklung mehrere Schritte, wie beispielsweise Design, Entwicklung, Testen und Deployment.

Ein wichtiger Bestandteil des Scrum-Prozesses ist das Daily Scrum, ein kurzes tägliches Meeting des Teams. In diesem Meeting berichten die Teammitglieder über ihren aktuellen Fortschritt, geplante Aufgaben sowie mögliche Hindernisse im Entwicklungsprozess. Ziel dieses Meetings ist es, den Arbeitsfortschritt zu koordinieren und Probleme frühzeitig zu erkennen.

Am Ende jedes Sprints findet das Sprint Review statt. Dabei präsentiert das Entwicklungsteam die umgesetzten Funktionen des Produkts. Stakeholder und Projektbeteiligte haben in diesem Meeting die Möglichkeit, Feedback zu geben und neue Anforderungen einzubringen.

Anschließend folgt die Sprint Retrospective, in der das Team den Ablauf des vergangenen Sprints reflektiert. Dabei wird analysiert, welche Aspekte des Arbeitsprozesses gut funktioniert haben und welche Verbesserungen für zukünftige Sprints möglich sind.

Durch diese strukturierte Vorgehensweise ermöglicht Scrum eine kontinuierliche Weiterentwicklung der Software sowie eine regelmäßige Überprüfung des Projektfortschritts.

### Rollenverteilung im Projektteam

Das Scrum-Framework definiert drei zentrale Rollen, die jeweils unterschiedliche Aufgaben innerhalb des Projekts übernehmen. Diese Rollen tragen dazu bei, Verantwortlichkeiten klar zu strukturieren und den Entwicklungsprozess effizient zu gestalten.

Der Product Owner ist für die inhaltliche Planung des Produkts verantwortlich. Zu seinen Aufgaben gehört die Verwaltung und Priorisierung des Product Backlogs. Er entscheidet, welche Funktionen oder Anforderungen für das Produkt am wichtigsten sind und sorgt dafür, dass das Entwicklungsteam stets an den relevantesten Aufgaben arbeitet. Außerdem fungiert der Product Owner als Verbindung zwischen Stakeholdern und Entwicklungsteam.

Der Scrum Master unterstützt das Team bei der Anwendung der Scrum-Methodik und stellt sicher, dass die Scrum-Prinzipien im Projekt eingehalten werden. Zu seinen Aufgaben gehört unter anderem die Organisation und Moderation der Scrum-Meetings. Darüber hinaus hilft er dem Team dabei, Hindernisse im Entwicklungsprozess zu identifizieren und zu beseitigen.

Das Entwicklungsteam ist für die technische Umsetzung der Anforderungen verantwortlich. Es besteht aus den Entwicklern, die die Software planen, implementieren, testen und integrieren. Das Team organisiert seine Arbeit weitgehend selbstständig und entscheidet gemeinsam über die technische Umsetzung der Aufgaben.

Durch diese klar definierten Rollen wird sichergestellt, dass organisatorische und technische Aufgaben effizient verteilt werden können und der Entwicklungsprozess strukturiert abläuft.

### Sprintplanung und Umsetzung

Die Sprintplanung stellt einen wichtigen Bestandteil des Scrum-Prozesses dar. Zu Beginn jedes neuen Sprints trifft sich das Team, um gemeinsam zu entscheiden, welche Aufgaben innerhalb des kommenden Zeitraums umgesetzt werden sollen.

Als Grundlage dient das Product Backlog, in dem alle bekannten Anforderungen des Projekts gesammelt werden. Während der Sprintplanung wählt das Team jene Aufgaben aus, die innerhalb der nächsten zwei Wochen realistisch umgesetzt werden können. Diese Aufgaben werden anschließend in das Sprint Backlog übernommen.

Während des Sprints arbeitet das Entwicklungsteam an der Umsetzung dieser Aufgaben. Die Arbeit wird dabei häufig in kleinere Teilaufgaben unterteilt, um die Fortschritte besser verfolgen zu können.

Zur Koordination der täglichen Arbeit findet das sogenannte Daily Scrum statt. Dieses kurze Meeting dauert in der Regel maximal 15 Minuten und dient dazu, den aktuellen Stand der Entwicklung zu besprechen. Jedes Teammitglied beantwortet dabei typischerweise drei Fragen:

• Was habe ich seit dem letzten Meeting erledigt?
• Woran werde ich heute arbeiten?
• Welche Hindernisse gibt es aktuell?

Durch diese regelmäßige Abstimmung wird sichergestellt, dass alle Teammitglieder über den aktuellen Projektstand informiert sind und mögliche Probleme frühzeitig erkannt werden.

Am Ende eines Sprints werden die entwickelten Funktionen im Sprint Review präsentiert. In diesem Meeting wird überprüft, welche Anforderungen erfolgreich umgesetzt wurden und ob weitere Anpassungen notwendig sind. Anschließend reflektiert das Team im Rahmen der Sprint Retrospective den Arbeitsprozess und identifiziert mögliche Verbesserungen für zukünftige Sprints.

### Vorteile von Scrum für die Webentwicklung

Die Verwendung von Scrum bietet insbesondere für Webentwicklungsprojekte zahlreiche Vorteile. Webanwendungen entwickeln sich häufig dynamisch weiter, da sich Anforderungen, Technologien oder Benutzerbedürfnisse im Laufe der Zeit verändern können.

Durch die Aufteilung der Entwicklung in kurze Sprints kann das Projekt flexibel auf solche Veränderungen reagieren. Neue Anforderungen können einfach in zukünftige Sprints integriert werden, ohne den gesamten Projektplan neu strukturieren zu müssen.

Ein weiterer Vorteil liegt in der kontinuierlichen Überprüfung der entwickelten Funktionen. Da am Ende jedes Sprints ein funktionierender Teil der Software präsentiert wird, können Fehler oder Verbesserungsmöglichkeiten frühzeitig erkannt werden. Dies reduziert das Risiko größerer Probleme in späteren Projektphasen.

Darüber hinaus fördert Scrum die Zusammenarbeit innerhalb des Teams. Regelmäßige Meetings und eine transparente Aufgabenverteilung sorgen dafür, dass alle Teammitglieder stets über den aktuellen Stand des Projekts informiert sind.

Insgesamt ermöglicht Scrum eine strukturierte, flexible und transparente Vorgehensweise bei der Entwicklung von Webanwendungen. Dadurch kann die Qualität der entwickelten Software verbessert und der Entwicklungsprozess effizienter gestaltet werden.
