Eigene Felder, die man auch abfragen kann
Früher oder später braucht jedes Team eine Angabe, die es im Standard nicht gibt. Die Buchhaltung will eine Kostenstelle, die Entwicklung ein Freigabedatum, der Einkauf ein Häkchen, ob etwas extern vergeben wird. Bisher landete so etwas in der Beschreibung, und dort ist es zwar notiert, aber nicht mehr auffindbar. Seit dieser Version kann ein Prozess benutzerdefinierte Felder führen.
Einrichten: Typ, Stellen, Vorgabe
Ein Administrator legt die Felder in der Prozesseinrichtung im Reiter Felder an. Zur Wahl stehen Text, Link, ganze Zahl, Dezimalzahl, Ja/Nein, Auswahl und Datum. Je Feld legt man fest, an welchen Stellen es erscheint: am Projekt, an Epic, Feature, Story, Aufgabe oder Request. Die Felder hängen bewusst am Prozess und nicht global: Welche Angaben ein Bereich führt, entscheidet dieser Bereich.
Die Reihenfolge in der Tabelle ist die Reihenfolge auf der Karte.
Auf der Vorgangskarte stehen die Felder rechts in einer eigenen Infobox, alle auf einmal mit einem gemeinsamen Speichern-Knopf. Die Box erscheint nur, wenn der Prozess an dieser Stelle überhaupt Felder führt. Eine leere Box würde behaupten, es gäbe etwas einzutragen.
Zwei Regeln an der Einrichtung schützen die Werte, die schon eingetragen sind. Der Typ eines Feldes lässt sich nur ändern, solange noch niemand einen Wert eingetragen hat. Aus „ganze Zahl“ nachträglich „Text“ zu machen, hieße, bestehende Werte umzudeuten. Und die Vorgabe gilt nur für neu angelegte Vorgänge. Ich hätte sie auch rückwirkend auf alle leeren Felder anwenden können, habe es aber bewusst gelassen: Ein Wert an einem bestehenden Vorgang ist eine Angabe, die jemand hätte setzen können und nicht gesetzt hat. Eine rückwirkende Vorgabe wäre eine Behauptung über Entscheidungen, die nie getroffen wurden.
Der Typ ist gesperrt, weil schon 23 Vorgänge einen Wert tragen.
Ein kleines Detail am Rande: Ja/Nein ist auf der Karte kein Häkchen, sondern eine Auswahl mit drei Zuständen, „Nicht gesetzt“, „Ja“ und „Nein“. Ein Häkchen kann „Nein“ nicht von „hat noch niemand beantwortet“ unterscheiden.
Gespeichert, um gefragt zu werden
Die wichtigste Entscheidung sieht man nicht. Die einfachste Lösung wäre gewesen, alle Feldwerte eines Vorgangs als einen Block im JSON-Format abzulegen. Das ist flexibel und schnell gebaut. Ich habe mich trotzdem für eigene Spalten je Typ entschieden, also Zahlen als Zahlen, Daten als Daten. Der Grund ist die Frage, die nach dem Erfassen kommt: „Zeig mir alle Vorgänge mit einer Kostenstelle zwischen 4000 und 4999.“ Auf einer Zahlenspalte ist das ein schneller, einfacher Vergleich. In einem Textblock wäre es eine umständliche Auswertung, die mit jedem Vorgang langsamer wird.
„Kein Wert“ ist dabei bewusst keine Zeile und nicht eine Zeile mit lauter leeren Spalten. Damit bedeutet „hat einen Wert“ in jeder Auswertung genau das.
Filtern auf dem Board
Auf den Boards öffnet der Knopf Felder ein Fenster mit allen Feldern, nach denen sich dort fragen lässt. Die Form steht je Typ fest: Text „enthält“, Zahl und Datum als Spanne, Ja/Nein und Auswahl als Auswahl. Eine kleine Abfragesprache mit „ist“, „ist nicht“, „größer als“ wäre mächtiger gewesen, aber in einer Filterzeile hat eine Abfragesprache nichts verloren.
Der Haken „ohne Wert“ findet die Vorgänge, an denen die Angabe noch fehlt.
Der Haken ohne Wert ist dabei keine Zusatzoption, sondern die halbe Funktion. Weil ein fehlender Wert keine Zeile ist, findet ihn keine Bedingung auf den Werten. Ohne den Haken bliebe genau die Frage unbeantwortbar, die man bei einem neuen Feld zuerst stellt: Wo fehlt die Kostenstelle noch?
Der Knopf steht nur bereit, wenn alle gezeigten Projekte denselben Prozess haben, und er bietet nur Felder an, die an jeder gezeigten Vorgangsart stehen. Ein Feld, das es nur an Stories gibt, wäre auf einem Board mit Stories und Aufgaben eine Falle: Jede Aufgabe fiele heraus, nicht weil ihr der Wert fehlt, sondern weil sie das Feld gar nicht führen kann.
Außerdem
- Jede Änderung eines Feldwerts steht im Änderungsverlauf des Vorgangs, und die globale Suche findet Text- und Linkfelder.
- Ein gelöschtes Feld kommt samt seinen Werten unter „Gelöschte Elemente“ zurück.
- Wechselt ein Projekt den Prozess, bleiben die Werte unsichtbar stehen, bis es zurückwechselt.
- Bewusst noch nicht dabei: Pflichtfelder und Platzhalter in Mailvorlagen. Beides braucht ein eigenes Konzept.