Zum Inhalt springen

1. Projektstart und Zielbild

Zu Zen-Modus wechseln

Dieses Jahr hat 21 Unterrichtswochen, danach kommt die Matura. In diesen 21 Wochen soll eine Anwendung entstehen, die tatsächlich in einer Produktivumgebung läuft, Fremdcode enthält, auf Telefon und Rechner benutzbar ist, rechtlich hält und im Betrieb beobachtet wird.

Das geht, aber nur mit einem Thema, das am Ende der ersten Woche feststeht. Der häufigste Grund, warum ein Maturajahrprojekt nicht in Produktion kommt, ist nicht mangelndes Können. Es ist ein Thema, das in der dritten Woche noch diskutiert wurde, oder eines, das für 21 Wochen um den Faktor drei zu groß war.

Am Ende dieser Woche steht deshalb: ein festgelegtes Thema, ein Zielbild mit prüfbaren Anforderungen, ein Jahresplan mit Terminen, zwei laufende Umgebungen und ein Repository mit Dokumentationsgerüst.

In der 4. Klasse haben Sie die Kette einmal ganz gebaut: Server, Webservice, Datenbank, Frontend. Alles darin war Ihr eigener Code, und alles lief auf einer Umgebung.

Dieses Jahr kommen drei Dinge dazu, die den Unterschied zwischen einer Übung und einer Anwendung ausmachen.

Fremdcode. Sie greifen in ein System ein, das Sie nicht geschrieben haben, und Sie binden Dienste ein, die Ihnen nicht gehören. Beides bringt eine neue Fehlerklasse mit: Das fremde System ändert sich, ohne Sie zu fragen.

Reichweite. Dieselbe Anwendung auf Telefon und Rechner, auffindbar über Suchmaschinen, benutzbar für Menschen mit unterschiedlichen Voraussetzungen, rechtlich sauber.

Betrieb. Sie liefern kontrolliert aus, Sie sehen im laufenden Betrieb, was passiert, und Sie bemerken einen Ausfall, bevor jemand anruft.

Der Lehrplan verlangt eine komplexe Anwendung. Das heißt nicht kompliziert und nicht viele Bildschirme. Es heißt: mehrere Systeme, die zusammenspielen, und ein Betrieb, der das aushält.

Beides ist erlaubt, und die Entscheidung gehört begründet.

Projekt der 4. Klasse fortführenNeues Thema
VorteilDatenmodell und Deployment stehen, Zeit fließt in den neuen StoffZuschnitt passt genau auf die Anforderungen dieses Jahres
NachteilDer alte Zuschnitt passt selten auf Fremddienste und mobile NutzungZwei bis drei Wochen gehen für den Unterbau drauf
Sinnvoll wenndas System läuft, sauber gebaut ist und Anknüpfungspunkte hatdas alte Thema keinen Fremddienst und keinen mobilen Anwendungsfall hergibt

Ein häufiger Irrtum: Die Fortführung sei automatisch der schnellere Weg. Sie ist es nur, wenn der alte Stand solide ist. Ein Projekt, das im Juni gerade so durch die Abnahme gekommen ist, kostet mehr Zeit an Aufräumarbeit, als ein neuer Anfang kosten würde.

Ihr Thema muss alle Kompetenzbereiche dieses Jahres hergeben. Prüfen Sie es vor der Festlegung gegen diese Liste, und zwar schriftlich.

AnforderungWird gebraucht inPrüffrage an Ihr Thema
Redaktioneller Anteil mit eigener ErweiterungKapitel 2Welche Inhalte pflegt jemand, der nicht programmiert, und was kann das CMS dafür noch nicht?
Mindestens ein Drittanbieter-ServiceKapitel 3Welcher fremde Dienst liefert echten Nutzen, nicht nur eine Landkarte zur Dekoration?
Personenbezogene DatenKapitel 4Wessen Daten speichern Sie, und wofür?
Öffentlich auffindbarer TeilKapitel 5Was soll über eine Suchmaschine gefunden werden?
Mehrere Bildschirme mit echten AbläufenKapitel 6Gibt es einen Ablauf über mehrere Schritte, oder ist alles ein Formular?
Anmeldung und RechteKapitel 7Wer darf was, und gibt es mindestens zwei Rollen?
Mobiler AnwendungsfallKapitel 8Wozu holt jemand unterwegs das Telefon heraus?
Betrieb mit ZustandKapitel 10, 11Was tut das System, wenn niemand hinsieht?

Die Zeile zum mobilen Anwendungsfall wird am häufigsten schöngeredet. „Die Seite ist responsiv” ist kein mobiler Anwendungsfall. Ein Anwendungsfall ist: Der Kassier scannt beim Vereinsfest QR-Codes am Eingang. Die Wanderin öffnet die Tourenbeschreibung ohne Netz. Der Werkstattleiter fotografiert einen Schaden und hängt ihn an das Ticket.

Ein Thema fällt durch, wenn eines davon zutrifft:

  • Es kommt kein Fremdsystem vor. Dann fehlt Kapitel 3 das ganze Jahr.
  • Es gibt keine redaktionellen Inhalte. Dann bleibt Kapitel 2 eine Trockenübung.
  • Es gibt keine denkbaren Benutzer. Ohne Benutzer kein Bedienbarkeitstest in Kapitel 6.
  • Es gibt keinen mobilen Anwendungsfall.
  • Der geplante Fremddienst verlangt eine Firmenprüfung, eine Gewerbeberechtigung oder eine Kreditkarte, die Sie nicht haben. Prüfen Sie das jetzt, nicht im November.
  • Sie bräuchten Daten, die Sie nicht verarbeiten dürfen. Gesundheitsdaten echter Personen sind kein Schulprojekt.
ThemaFremddienstRedaktioneller AnteilMobiler Anwendungsfall
VereinsverwaltungZahlungsdienst im Testmodus, MailversandVereinsnachrichten, Statuten, TermineAnwesenheit beim Training erfassen
Veranstaltungen und TicketsZahlungsdienst, QR-ErzeugungProgramm, KünstlerseitenEinlasskontrolle mit Kamera
Wanderrouten-PortalKartendienst, HöhendatenTourenbeschreibungen mit BildernRoute unterwegs, auch ohne Netz
ReparaturannahmeMailversand, Objektspeicher für FotosAnleitungen, ÖffnungszeitenSchaden fotografieren und melden
NachhilfevermittlungKalender-Anbindung, Videokonferenz-LinkFächerseiten, ProfileTermin unterwegs bestätigen
Regionaler HofladenZahlungsdienst, KarteProduktbeschreibungen, HofporträtsBestellung an der Abholstation
Werkstattbuchung, fortgeführtKalender-Anbindung, MailversandSicherheitsunterweisungen, MaschinenseitenBuchung an der Maschine per QR

Die Spalten sind Vorschläge, keine Vorgaben. Was zählt, ist die Skizze, die Sie selbst dazu schreiben.

Wenn Ihr Projekt Ihre Diplomarbeit ist, brauchen Sie in dieser Woche eine schriftliche Abgrenzung in docs/abgrenzung.md, abgestimmt mit der Betreuung.

Dieselbe Leistung wird nicht zweimal gewertet. Der Schnitt lässt sich auf zwei Arten sauber ziehen: nach Bestandteilen (diese Module gehören zur Diplomarbeit, jene zu diesem Gegenstand) oder nach Aspekten (die fachliche Funktionalität ist Diplomarbeit, die CMS-Erweiterung, die Integration, der Betrieb und die Sicherheitsarbeit gehören hierher). Der zweite Schnitt ist meist der klarere und deckt sich besser mit dem Lehrstoff dieses Gegenstands.

Planen Sie außerdem die Termine gegeneinander. Diplomarbeitsabgabe und Präsentationen fallen in dieselben Wochen wie die Kapitel 9 bis 11. Wer das im September einträgt, verliert im April keine Woche.

Nutzergeschichten mit Akzeptanzkriterien, so wie Sie es in SEW machen. Das Verfahren wird hier nicht noch einmal erklärt, sondern angewandt. Wichtig ist nur eines: Akzeptanzkriterien sind prüfbar formuliert, sonst ist am Jahresende strittig, ob etwas fertig ist.

Der Abschnitt, der über das halbe Jahr entscheidet. Adjektive kann man nicht prüfen, Zahlen schon, und in den Kapiteln 10 und 11 werden genau diese Zahlen wieder gebraucht.

ZielUntauglichBrauchbar
Antwortzeit„schnell”p95 unter 400 ms für die Listenansicht, LCP mobil unter 2,5 s
Verfügbarkeit„läuft immer”99 Prozent im Monat, gemessen am Health Check, geplante Wartung ausgenommen
Geräte„responsiv”ab 360 Pixel Breite, aktuelle Chrome, Firefox, Safari, iOS ab 17
Datenmenge„viele Benutzer”500 Konten, 20.000 Datensätze, 30 gleichzeitige Benutzer
Barrierefreiheit„barrierefrei”WCAG 2.2 Stufe AA auf den drei Hauptwegen, geprüft mit Werkzeug und Tastatur
Sprachen„mehrsprachig”Oberfläche de-AT und en, Inhalte zweisprachig gepflegt
Wiederherstellung„wir haben Backups”Datenverlust höchstens 24 Stunden, Wiederherstellung in höchstens 4 Stunden

Die letzte Zeile hat zwei Fachbegriffe, die Sie ab Kapitel 11 dauernd brauchen: Die zulässige Menge verlorener Daten heißt RPO, die zulässige Ausfalldauer RTO. Beide sind eine Entscheidung und keine technische Eigenschaft. Sie legen sie jetzt fest und bauen später darauf hin.

Drei Körbe, und der erste ist der einzige, der zählt. Das Muss-Set ist der Umfang, der bis Kapitel 12 in Produktion laufen muss. Alles andere ist Zugabe.

Die Faustregel für den Schnitt: Wenn das Muss-Set nicht bis Woche 14 fertig sein kann, ist es zu groß. Streichen Sie jetzt, wo es nichts kostet, und nicht im Mai, wo es die Note kostet.

Das Vorgehensmodell kommt aus SEW und wird hier nicht durch ein zweites ersetzt. Ein Team, das in SEW in Sprints arbeitet und hier nach Gefühl, führt zwei Projekte statt einem.

Zweiwöchige Iterationen decken sich mit dem Kapitelrhythmus. Dazu eine Definition of Done für dieses Projekt, die für jede Aufgabe gilt:

  • Code liegt im Hauptzweig, ist durch ein Review gegangen und hat Tests auf der in SEW festgelegten Ebene.
  • Die Änderung läuft in der Testumgebung, nicht nur lokal.
  • Die betroffene Dokumentation ist aktualisiert.
  • Eine getroffene Entscheidung von Gewicht steht in docs/entscheidungen.md.

Er wird rückwärts geplant, vom Abnahmetermin. Der Plan ist keine Prognose, sondern eine Kette von Terminen.

WocheThemaWas am Ende steht
1ProjektstartThema, Zielbild, zwei Umgebungen
2 bis 3CMS erweiterneigene Erweiterung produktiv im Einsatz
4 bis 5Drittanbieterfremder Dienst integriert, Ausfall abgefangen
6DatenschutzRechtsgrundlagen, Löschkonzept, Informationspflichten
7SEO und mobile Auftritteindexierbar, gemessen
8 bis 9UI/UX und DesignsystemDesignsystem, Bedienbarkeitstest ausgewertet
10 bis 11AnwendungssicherheitBedrohungsmodell, Anmeldung über OIDC
12 bis 14Desktop und mobilPWA oder plattformübergreifende App
15 bis 16DeploymentPipeline, Produktivinstallation, Rollback
17 bis 18Logging und MonitoringDashboard, funktionierende Alarmierung
19 bis 20VerfügbarkeitHealth Checks, Notfallplan, Wiederherstellung geübt
21ProjektabschlussAbnahme, Übergabe, Präsentation
22 bis 24MaturaVorbereitung

Zwei Termine ergeben sich daraus zwangsläufig. Ab Woche 15 setzen die Kapitel ein System voraus, das fachlich steht; wer dann noch Funktionen baut, kommt in Verzug. Und Funktionsstopp ist Woche 16, danach gibt es Fehlerbehebung, Betrieb und Dokumentation.

Eine Risikoliste zu Jahresbeginn, fünf bis acht Einträge, in docs/risiken.md:

| Risiko | Wahrsch. | Auswirkung | Frühwarnzeichen | Gegenmaßnahme |
|---|---|---|---|---|
| Zahlungsdienst verlangt Gewerbenachweis | mittel | hoch | Konto bleibt im Testmodus | in Woche 2 anlegen, Alternative benennen |
| Kein iOS-Gerät zum Testen | hoch | mittel | erst bei Kapitel 8 sichtbar | Gerät im Team klären, Simulator einplanen |
| Diplomarbeit kollidiert im April | hoch | hoch | Termine überschneiden sich im Kalender | Puffer in Woche 13, Aufgaben vorziehen |
| Server zu klein für Test und Produktion | mittel | mittel | Speicher über 80 Prozent | Bestandsaufnahme Woche 1, Aufrüstung planen |

Diese Liste wird alle zwei Wochen kurz durchgesehen. Ein Risiko, das eingetreten ist, wandert in den Plan; ein Risiko, das weg ist, wird gestrichen.

Im Vorjahr gab es eine Umgebung, und jede Änderung ging direkt an die Benutzer. Das ist ab jetzt vorbei.

ProduktionTest
Adresseprojekt.example.attest.projekt.example.at
Datenechte Datenerzeugte Testdaten
Geheimnisseeigene, nur dorteigene, andere Werte
FremddiensteProduktivschlüsselSandbox oder Testmodus
ZugangöffentlichBasisauthentifizierung
SuchmaschinenindexierbarX-Robots-Tag: noindex
Deploymentbewusst ausgelöstjederzeit, gern automatisch

Zwei Punkte daran sind keine Formalie. Erstens: Keine Echtdaten in der Testumgebung. Sobald Sie die Produktionsdatenbank kopieren, um „mit realistischen Daten zu testen”, verarbeiten Sie personenbezogene Daten zu einem Zweck, für den Sie keine Grundlage haben. Kapitel 4 wird das im Detail behandeln, die Regel gilt ab heute.

Zweitens: Die Testumgebung darf nicht in den Suchindex. Sonst konkurriert sie mit der Produktion um dieselben Inhalte, und in Kapitel 5 suchen Sie den Fehler.

Ein Repository, ein Ort für die Dokumentation, von Anfang an angelegt und nicht am Jahresende befüllt:

README.md Zweck, lokaler Start, Deployment in drei Schritten
docs/
├── architektur.md Systemskizze, Schnitt, Datenmodell, Schnittstellen
├── betrieb.md Server, Umgebungen, Domains, Zugänge, Sicherung
├── entscheidungen.md Entscheidungsprotokolle, fortlaufend
├── sicherheit.md Bedrohungsmodell, Befunde, Maßnahmen
├── datenschutz.md Verarbeitungen, Rechtsgrundlagen, Löschfristen
├── risiken.md Risikoliste
└── abgrenzung.md nur bei Diplomarbeit

Wer aus der 4. Klasse fortführt, übernimmt sein Entscheidungsprotokoll und schreibt darin weiter. Ein neues Projekt beginnt eines, und der erste Eintrag ist die Themenwahl mitsamt den verworfenen Alternativen.

  1. Thema erst in der dritten Woche festlegen. Der Puffer des Jahres ist damit weg, bevor die erste Zeile geschrieben ist.
  2. Zu groß angelegt. Das Muss-Set ist der Prüfstein, nicht die Vision.
  3. Nichtfunktionale Ziele als Adjektive. „Schnell” und „sicher” lassen sich am Jahresende weder nachweisen noch widerlegen.
  4. Diplomarbeit und Gegenstandsumfang vermischt und die Abgrenzung erst im Mai geschrieben.
  5. Nur eine Umgebung betreiben und alle Experimente in Produktion machen.
  6. Produktionsdaten in die Testumgebung kopieren.
  7. Fremddienst nicht geprüft. Im November stellt sich heraus, dass für den Produktivschlüssel eine Firma nötig gewesen wäre.
  8. Kein mobiler Anwendungsfall im Thema. In Kapitel 8 wird dann drei Wochen lang etwas gebaut, das niemand unterwegs braucht.
  9. Zwei Vorgehensmodelle nebeneinander, eines aus SEW und eines nach Gefühl.
  10. Risikoliste angelegt und nie wieder angesehen.
  • Erschaffen: ein Projektthema entwickeln, das alle Kompetenzbereiche des Maturajahres abdeckt, und die Abdeckung nachweisen.
  • Beurteilen: zwischen Fortführung und Neuanfang begründet entscheiden.
  • Anwenden: funktionale Anforderungen als Nutzergeschichten mit prüfbaren Akzeptanzkriterien formulieren.
  • Anwenden: nichtfunktionale Ziele als Zahlen festlegen, einschließlich RPO und RTO.
  • Beurteilen: den eigenen Umfang gegen 21 Wochen abwägen und ein Muss-Set begründen.
  • Anwenden: einen Jahresplan rückwärts vom Abnahmetermin aufstellen und Risiken schriftlich führen.
  • Anwenden: getrennte Produktions- und Testumgebungen mit getrennten Daten und Geheimnissen aufsetzen.
  • Erklären: die eigene Abgrenzung zur Diplomarbeit darstellen und vertreten.

Bis zum Ende der Woche liegt vor:

  • Projektskizze mit Themenprüfung gegen die Pflichtabdeckung, schriftlich.
  • Anforderungen mit Muss-, Soll- und Kann-Set.
  • Nichtfunktionale Ziele in Zahlen, inklusive RPO und RTO.
  • Jahresplan mit Terminen, rückwärts geplant, mit Funktionsstopp.
  • Risikoliste mit mindestens fünf Einträgen und Gegenmaßnahmen.
  • Bei Diplomarbeit: schriftliche Abgrenzung, mit der Betreuung abgestimmt.
  • Zwei laufende Umgebungen, getrennte Daten, getrennte Geheimnisse, Testumgebung nicht indexierbar.
  • Repository mit Dokumentationsgerüst und erstem Entscheidungsprotokoll.
  • Aufgabe - Themenprüfung gegen die Pflichtabdeckung
  • Aufgabe - Nichtfunktionale Ziele in Zahlen
  • Aufgabe - Jahresplan rückwärts vom Abnahmetermin
  • Aufgabe - Test- und Produktivumgebung aufsetzen