Fallstudie · Web-Werkzeug

Der Dienstplan der Abteilung

Von einer Tabelle zu einem Online-Werkzeug für das ganze Team: mit E-Mails verknüpfte Abwesenheiten, frei gewordene Räume und Vertretungen, getestete Auslieferung, Veröffentlichung über einen Pull-Request. Der tatsächliche Weg, einschließlich der Schwierigkeiten.

16Schritte
18aufgetretene Schwierigkeiten
14Warnhinweise
Rund vierzig Versionen über einige Wochen
Dienstplan im Dialog bauen: Gespräch, Vorschau der Version, Zähler pro Person.
Dienstplan im Dialog bauen: Gespräch, Vorschau der Version, Zähler pro Person.
Ausliefern und veröffentlichen: vier Schritte, Prüfbericht, Änderungen vorher / nachher.
Ausliefern und veröffentlichen: vier Schritte, Prüfbericht, Änderungen vorher / nachher.

Bildschirmfoto eines echten Werkzeugs · fiktive Daten, Namen unkenntlich · Oberfläche auf Englisch

1

Idee

Welches Problem, in einem Satz?

  1. Das Problem in einem Satz formulieren

    „Der Dienstplan steckt in einer Tabelle, die nur wenige bearbeiten können; jede Abwesenheit löst eine E-Mail-Kette aus, und Echokardiographie-Räume bleiben leer.“ Solange das Problem nicht in einen Satz passt, wird nichts programmiert.

    SchwierigkeitAlles auf einmal lösen wollen (Dienstplan, Abwesenheiten, Softwarezugänge, E-Mails).

    LösungDie Bedürfnisse auflisten, dann das erste auswählen: ein gemeinsamer Dienstplan, den das ganze Team aktuell sieht.

    !Mit dem Werkzeug beginnen, nicht mit der Automatisierung: E-Mails und Vertretungen kommen später.

  2. Entscheiden, was es werden soll

    Ein Dienstplan ist weder ein Skill noch ein einfaches Artefakt: Er ist ein eigenständiges Web-Werkzeug, genutzt von Menschen, die kein Claude haben. Claude baut es, testet es und liefert es aus; veröffentlicht wird es außerhalb von Claude.

    !Ein Claude-Artefakt ist nur für die Personen sichtbar, mit denen es geteilt wird: Für ein ganzes Team ist eine veröffentlichte Website robuster.

2

Konzept

Was wird das Werkzeug sein, und was soll es tun?

  1. Die Spezifikation vor dem Code schreiben

    Lassen Sie Claude aus der bestehenden Tabelle entwerfen: das Personal und seine Kategorie (Oberärzte, klinische Assistenten, Assistenzärzte, Ärzte in Weiterbildung), die Tätigkeiten, die Halbtageseinheiten, wer was bearbeitet, und die Liste der offenen Fragen.

    Was Sie Claude sagen

    „Hier ist unsere Dienstplan-Tabelle und die Personalliste. Schreibe die Spezifikation für ein Dienstplan-Werkzeug als einzelne Webseite: Standarddienstplan, ein Reiter pro Tätigkeit, Monatsansicht, Abwesenheiten. Liste alles Mehrdeutige auf, bevor du irgendetwas programmierst.“

    SchwierigkeitAbkürzungen und Spalten, die nur eine Person versteht.

    LösungEin Block „getroffene / offene Entscheidungen“: Es wird nichts gebaut, bevor die Mehrdeutigkeiten geklärt sind.

  2. Die Reiter skizzieren

    Ein Reiter Global für den Standarddienstplan; ein Reiter pro Tätigkeit (Echokardiographie nach Raum und Halbtag, Sprechstunde, Belastungstests, MRT, Bereitschaftsdienst, Besprechungen, Fakultät, Einsatzblätter); ein Reiter Abwesenheiten; eine Monatsansicht für alle.

    !Der Standarddienstplan darf nie durch eine punktuelle Zuweisung verändert werden: Aus ihm werden die Wochen abgeleitet.

  3. Die technische Architektur wählen

    Eine einzige HTML-Datei (nichts zu installieren), eine gemeinsame Echtzeit-Datenbank, damit alle dieselben Daten sehen, ein Team-Passwort und Veröffentlichung über ein GitHub-Repository, das mit einem statischen Hoster verbunden ist.

    !Das Team-Passwort steht nie in der veröffentlichten Datei oder in einem verteilten Dokument.

3

Umsetzung

Was bittet man Claude, in welcher Reihenfolge?

  1. Die erste Version bauen

    In Cowork oder Claude Code, auf Ihrem Rechner: Claude schreibt die Datei, Sie öffnen sie im Browser, Sie korrigieren durch kleine Anfragen. Jede Auslieferung trägt eine Versionsnummer, die im Titel angezeigt wird.

    Was Sie Claude sagen

    „Baue Version 1 des Dienstplans nach der freigegebenen Spezifikation. Eine einzige HTML-Datei, zuerst die Reiter Global und Echokardiographie. Zeige die Versionsnummer im Seitentitel an.“

    SchwierigkeitDie Vorschau wurde auf dem Rechner nicht angezeigt oder war nicht aktuell.

    LösungZwei getrennte Dateien ausliefern: eine lokale Vorschau mit dem heutigen Stand, die sofort betrachtet werden kann, und die zu veröffentlichende Datei ohne Daten.

  2. Die gemeinsame Datenbank anbinden

    Echtzeit-Synchronisation, Personen per Drag-and-drop in Zeitfenster ziehen, Bearbeitungsrechte durch das Passwort geschützt.

    SchwierigkeitAuf manchen Rechnern erschienen alte oder „zufällige“ Namen.

    LösungDie veröffentlichte Datei enthielt eine eingefrorene Kopie von Daten aus einem alten Export. Sie wurde entfernt, und ein rotes Banner kennzeichnet nun jeden nicht verbundenen Rechner.

    SchwierigkeitDas mit „Später“ geschlossene Passwortfenster kam nie wieder.

    LösungEin dauerhaftes, anklickbares Banner, solange der Rechner nicht verbunden ist.

    SchwierigkeitZwei Personen bearbeiteten gleichzeitig dasselbe Zeitfenster: Die eine Änderung löschte die andere.

    LösungÄnderungen werden nach Identität zusammengeführt (wer eingeteilt ist), nicht mehr nach Position in der Liste.

    !Niemals echte Daten in die veröffentlichte Datei einbetten.

    !Auf einem „frischen“ Rechner testen (privates Surfen), nicht nur auf Ihrem eigenen.

  3. Abwesenheiten und E-Mails verknüpfen

    Eine Schaltfläche erzeugt die monatliche Abwesenheits-E-Mail; eine andere importiert Antworten im Format „NAME: Daten“ und überträgt sie auf alle Tätigkeiten. Unbekannte Namen werden abgelehnt, nicht erraten.

    Was Sie Claude sagen

    „Füge im Reiter Abwesenheiten eine Schaltfläche hinzu, die die monatliche Abwesenheits-E-Mail erzeugt, und einen Import aus einer E-Mail im Format „NAME: Daten“, der die Abwesenheiten auf die Tätigkeitsreiter überträgt. Lehne unbekannte Namen ab.“

    SchwierigkeitIn einem alten Format erfasste Abwesenheiten blieben unsichtbar.

    LösungSie auflisten und eine Umwandlung vorschlagen, ohne ohne Freigabe etwas zu ändern.

    SchwierigkeitDie Monatsansicht zeigte nur einen Teil des Teams.

    LösungDie Monatsansicht liest die vollständige Personalliste.

  4. Frei gewordene Räume und Vertretungen

    Jedes Zeitfenster einer abwesenden Person wird als „Raum frei?“ markiert. Eine Tabelle Personen × Halbtage legt die Vertretungen fest; nur verfügbare Vertretungen werden vorgeschlagen, und nur für diese Woche.

    SchwierigkeitEine genannte Vertretung stand noch nicht auf der Personalliste (Ankunft in Kürze).

    LösungVor dem Hinzufügen um Bestätigung bitten; nie eine Identität erraten.

    !Eine Vertretungszuweisung berührt nie den Standarddienstplan.

  5. Wiederkehrende Anwesenheiten und Migrationen

    Eine Anwesenheit kann in geraden oder ungeraden Wochen wiederkehren, zwischen einem Start- und einem Enddatum. Jede neue Regel ist eine nummerierte Migration, die nur einmal angewendet wird, und erst nach der ersten erfolgreichen Synchronisierung.

    Was Sie Claude sagen

    „Füge wiederkehrende Anwesenheiten nach Wochenparität hinzu (gerade oder ungerade Wochen), mit Start- und Enddatum. Wende diese Regel über eine nummerierte Migration an, nur einmal, nach der ersten erfolgreichen Synchronisierung. Zeige mir vor der Freigabe die Liste der geänderten Zeitfenster.“

    SchwierigkeitEine beim Laden der Seite angewendete Regel lief vor der Synchronisierung auf leeren Daten und wurde dann überschrieben oder doppelt angewendet.

    LösungVersionierte Migrationen, in der Datenbank als erledigt markiert, die erst nach der ersten erfolgreichen Synchronisierung laufen.

    SchwierigkeitÜber die Kapazität eines Zeitfensters hinaus „verschwanden“ Namen.

    LösungEine Zeile „ebenfalls anwesend“ unter dem Zeitfenster zeigt alle, die darüber hinausgehen.

    !Eine wiederkehrende Anwesenheit wird berechnet: Sie wird nicht Woche für Woche kopiert.

4

Prüfung

Wie beweist man, dass es funktioniert?

  1. Automatischer Dreifachtest

    Claude steuert einen Browser: 1) keine Skriptfehler, alle Module geladen, mit und ohne Daten; 2) die Schlüsselansichten (vollständige Monatsansicht, sichtbare Abwesenheiten); 3) echte Aktionen (Import einer E-Mail, Drag-and-drop, Zuweisung einer Vertretung).

    SchwierigkeitDas Ablegen einer Person auf einem belegten Zeitfenster vertauschte die beiden Personen und konnte eine Dublette erzeugen.

    LösungAktion für jede Version in den Dreifachtest aufgenommen; Korrektur separat entschieden.

    SchwierigkeitDer Browsertest erkannte keine Logikfehler (Zusammenführung, Wochenparität, Migrationen).

    LösungZwei Testreihen, beide vor jeder Veröffentlichung bestanden: eine zur Datenlogik, die andere zu den Handgriffen im Browser.

    !Ein Test, der auf Ihrem Rechner besteht, beweist nichts für die anderen: mit und ohne Daten testen.

  2. Doppelte Kontrolle von Halbtagen und Namen

    Den Standarddienstplan mit jedem Tätigkeitsreiter vergleichen und die Abweichungen auflisten (jemand ist im Standarddienstplan für die Echokardiographie eingeplant, fehlt aber im Reiter). Namen und Kennungen mit dem Verzeichnis abgleichen. Ohne Freigabe wird nichts korrigiert.

    SchwierigkeitEine falsch geschriebene Kennung in einem Reiter verhinderte die Anzeige einer Person.

    LösungSystematische Prüfung der Kennungen bei jeder Version.

    SchwierigkeitKontaktdaten, die nicht zu finden waren (Sekretariat, Funktionspostfach).

    LösungIm Verzeichnis suchen, dann im E-Mail-Archiv; wenn nichts gefunden wird, fragen statt raten.

5

Inbetriebnahme

Wie ausliefern, veröffentlichen und am Leben halten?

  1. Immer dieselben vier Dinge ausliefern

    1) die lokale Vorschau; 2) die Änderungen auf einem Zweig, mit einem prüfbereiten Pull-Request; 3) die archivierte Online-Quelle; 4) die im Gespräch entworfenen E-Mails.

    SchwierigkeitDas Veröffentlichungsverfahren war unklar.

    LösungDie Datei vorab umbenennen und jeden Klick beschreiben, zusammen mit dem, was Sie am Ende sehen sollten.

  2. Über einen Zweig und einen Pull-Request veröffentlichen

    Claude schiebt die Version auf einen Zweig und eröffnet einen Pull-Request (Änderungen, Ergebnisse beider Testreihen, Abweichungen). Die verantwortliche Person prüft und führt ihn selbst zusammen; die Veröffentlichung folgt. Danach: Strg + F5, Versionsnummer im Titel, und der korrigierte Handgriff wird online wiederholt.

    SchwierigkeitDas manuelle Hochladen der Datei auf die Online-Version wurde von Monat zu Monat vergessen und hinterließ keine prüfbare Spur.

    LösungKein direktes manuelles Hochladen mehr: ein Zweig, dann ein Pull-Request, den die verantwortliche Person selbst zusammenführt.

    SchwierigkeitEine als „online“ angekündigte Version funktionierte noch nicht für alle.

    LösungBereitgestellt heißt nicht getestet: Kein Link wird weitergegeben, ohne geöffnet worden zu sein; sonst trägt er den Vermerk „nicht geprüft“.

    !Nur die neueste Version veröffentlichen: Jede Version enthält die vorherigen.

    !Nichts wird ohne Zustimmung veröffentlicht; die Korrekturen einer Sitzung werden in einer einzigen Version gebündelt.

  3. Ankündigen und begleiten

    Eine kurze E-Mail an das Sekretariat und das Funktionspostfach, die anderen in Kopie: was sich ändert, wie eine Abwesenheit gemeldet wird, was zu tun ist, wenn das Banner „nicht verbunden“ erscheint. Im Gespräch entworfen, von Ihnen versendet.

    !Die KI bereitet die E-Mails vor; sie versendet sie nie.

    !Der Dienstplan speist nie den persönlichen Kalender: Es sind zwei getrennte Quellen.

  4. Daraus einen Skill machen

    Das gesamte Gespräch in einen Orchestrator-Skill namens „dienstplan“ verdichten: Architektur, bekannte Fehler, Auslieferungsverfahren, Dreifachtest, doppelte Kontrolle, Verbindung zum Verzeichnis. Das nächste Gespräch beginnt dort, nicht bei null.

    Was Sie Claude sagen

    „Fasse dieses gesamte Gespräch in einem Orchestrator-Skill namens „dienstplan“ zusammen: Architektur, aufgetretene Fehler und Korrekturen, Auslieferungsverfahren, Dreifachtest, doppelte Kontrolle von Halbtagen und Namen, Veröffentlichungsverfahren. Lege ihn mir als Vorschlag zur Freigabe vor.“

    !Ein Skill wird vor der Installation freigegeben; er wird bei jeder größeren Version überprüft.

← Die Methode in fünf Phasen