Application Kata “Idea Flow Mapping”

Idea Flow Mapping ist eine von Jeanelle Klein erfundene Methode, um die effektivsten Verbesserungen in der Softwareentwicklung zu erreichen.

Laut Jeanelle müssen alle Änderungen durch Beweise belegt werden, was wir wirklich tun. Mehr oder weniger Testautomatisierung, mehr oder weniger saubere Code-Praktiken, mehr oder weniger agile Rituale? Es hängt alles davon ab, wie schnell Sie vorankommen und wie viel Zeit Sie damit verbringen, Ihre Ideen zu verwirklichen. Solange Sie die meiste Zeit wirklich Fortschritte machen, ist alles in Ordnung. Sobald jedoch der Fortschritt abnimmt und die Fehlerbehebung zunimmt, müssen einige Maßnahmen ergriffen werden.

Was ist Fortschritt? Erzielen Sie die erwarteten Ergebnisse und wandeln Sie Ihre wertvollen Ideen in korrekten und nützlichen Code um. Was ist eine Fehlerbehebung? Im Konflikt mit dem zu stehen, was Sie erwartet haben. Sie erwarten, dass der Code, den Sie gerade geschrieben haben, fehlerfrei kompiliert werden kann – und das tut er nicht? Das ist ein Konflikt. Jetzt gelangen Sie in den Konfliktlösungsmodus. Das ist kein Fortschritt, das ist Fehlerbehebung. Oder Ihr Code kompiliert, aber wenn Sie Ihre Tests ausführen, brechen einige alte ab, d. h. es ist eine Regression aufgetreten? Auch das ist ein Konflikt. Sie müssen in den Konfliktlösungsmodus wechseln. Oder du programmierst fröhlich – und dein Chef braucht für eine Stunde deine sofortige Aufmerksamkeit? Auch das ist ein Konflikt, denn Sie haben bis Mittag mit ununterbrochener Codierungszeit gerechnet.

Jeanelle argumentiert, dass wir nicht wirklich wissen, wie viel Zeit wir damit verbringen, Fortschritte zu machen und wie viel Zeit wir mit der Fehlerbehebung verbringen. Wir wissen nicht, wie viel Geld durch Konflikte verschlungen wird. Vor allem Entscheidungsträger sind entkoppelt von den Konflikten, die ihre Aufträge verursachen können. In Unternehmen wird eine grundlegende Feedbackschleife durchbrochen.

Ihre Empfehlung: Verfolgen Sie Ihre Zeit. Der erste Schritt zu einer vernünftigen Änderung ist die Beobachtung. Das bedeutet, dass Sie messen, wie viel Zeit aufgewendet wird, ob die Arbeit voranschreitet oder eine Fehlerbehebung stattfindet.

Sobald solche Daten aufgezeichnet wurden, können Karten gezeichnet werden, um die Verteilung der Arbeitsmodi über die Zeit zu zeigen. Hier ein Beispiel aus ihrem Buch:

Application Kata Idea Flow Mapping - Clean Code Developer Akademie

Deine Aufgabe

Entwickle eine Anwendung für Idea Flow Mapping.

Benutzer müssen in der Lage sein, ihre Zeit mit der App zu verfolgen und Idea Flow Maps zu erstellen.

Zeiterfassung

Ein Benutzer startet die Zeiterfassung im Fortschrittsmodus und durch Hinzufügen einer beliebigen Anzahl von Tags. Tags können Projekte oder Aufgaben oder andere Aspekte von Aufgaben darstellen.
Bei eingeschalteter Zeiterfassung kann der Nutzer jederzeit zwischen Fortschritt und Konfliktlösung wechseln – und optional Tags hinzufügen.
Sobald eine Aufgabe erledigt wurde, wird die Zeiterfassung für sie gestoppt.
Bei Bedarf kann eine gestoppte Aufgabe erneut geöffnet werden, um die darin investierte Zeit weiter zu verfolgen.
Wenn ein Benutzer eine Pause einlegen möchte, kann das Tracking angehalten und später wieder aufgenommen werden.

Während der Zeiterfassung einer Aufgabe sollte der Benutzer einen einfachen Verlauf der Modusänderungen sehen.

All dies wird dauerhaft in einer Datenbank für die spätere Berichterstellung aufgezeichnet.
Mehrere Benutzer in einem lokalen Netzwerk können gleichzeitig ihre Aufgaben verfolgen.

Um eine angehaltene Aufgabe fortzusetzen oder eine angehaltene fortzusetzen, ist eine Übersicht über die Aufgaben (abgeschlossen sowie laufende) erforderlich, aus der der Benutzer auswählen kann.
Aus dieser Übersicht können auch Aufgaben gelöscht werden – die in der Tracking-Datenbank protokolliert werden.

Reporting

Die Berichterstattung erzeugt auf (einfache) Weise Idea Flow Maps wie die oben genannten. Der Hauptzweck besteht darin, sich leicht einen Überblick darüber zu verschaffen, wie die Zeit verbracht wurde. Wie das Muster zwischen Fortschritt und verschiedenen Arten der Konfliktlösung (z. B. #Troubleshooting, #Learning, #Rework) aussieht.

Dazu müssen Aufgaben nach Benutzer und/oder Datum und/oder Tag ausgewählt werden.

Berichte werden direkt auf dem Bildschirm gerendert. Oder, wenn es einfacher ist, kann in eine Datei geschrieben werden (z. B. jpeg, SVG) und dann mit einem Standardprogramm wie einem Webbrowser geöffnet werden.

Damit sich der Schnellmodus nicht ändert, zB weil ein falscher Modus ausgewählt wurde, fügen Sie dem Bericht Rauschen hinzu, es werden nur Modi angezeigt, die mindestens 1,5 Minuten dauern. Wenn die Dauer eines Modus kürzer ist, wird der vorherige Modus um die halbe Dauer verlängert und der nächste um die halbe Dauer vorgezogen.

Sicherheit

Es sind keine echten Sicherheitsmaßnahmen erforderlich. Im Kontext eines einzelnen Unternehmens (oder Teams) vertrauen sich die Benutzer. Um sich für die Zeiterfassung zu identifizieren, müssen sie beim Start der App lediglich ihre E-Mail-Adressen angeben.

Die App kann sich sogar merken, wer sie das letzte Mal gestartet hat. Bis sich ein anderer Benutzer „anmeldet“.

Benutzeroberflächenskizze der Konsole

Die App benötigt keine schicke GUI. Eine einfache Konsolen-Benutzeroberfläche reicht auch. Diese könnte so aussehen:

Application Kata Idea Flow Mapping

(Eine Funktion ist in der obigen Auflistung schwer zu zeigen: ständige Aktualisierung. Während eine Aufgabe verfolgt wird, wird die Dauer des Modus mindestens jede Minute, wenn nicht jede Sekunde aktualisiert. Dies ist z. B. für die obigen Zeilen 4, 7, 9 relevant. Einmal der Benutzer drückt eine Taste, um den Modus zu wechseln, die automatische Aktualisierung wird ausgesetzt.)

Wie das Beispiel andeutet, können einige Befehle mit Parametern ausgegeben werden:

  • Task starten: Ohne Parameter wird eine neue Task gestartet, ansonsten wird die Task, deren ID vergeben wurde, neu gestartet.
  • Aufgabenverlauf: Ohne Parameter werden die heutigen Aufgaben aufgelistet, ansonsten eine vorgegebene Anzahl Aufgaben vom letzten zurückgezählt. Es werden nur Aufgaben des aktuellen Benutzers aufgelistet.
  • Aufgabe löschen: Die Aufgabe mit der angegebenen ID wird gelöscht.

Und hier ist eine Idee für einen einfachen Konsolenbericht:

Application Kata Idea Flow Mapping CCD Akademie

Für diesen Teil der Anwendung wäre jedoch mehr Kreativität wünschenswert. Auch wenn die Zeiterfassung die Grundlage für jedes Reporting ist und reibungslos ablaufen sollte, können die Vorteile des Ideenfluss-Mappings nur ausgeschöpft werden, wenn das Reporting aussagekräftige Diagramme liefert.

Aufwändigere Benutzeroberfläche

Eine Web-UI oder eine Desktop-GUI ist natürlich willkommen.

de_DEGerman