In den letzten Jahren ist mir ein Thema immer wieder unangenehm aufgefallen – inzwischen so sehr, dass ich beschlossen habe, hier ein paar Zeilen dazu zu schreiben (nein, es dreht sich nicht um ein kleines grünes galaktisches Männchen mit Grammatikschwächen, auch wenn die Überschrift so wirkt …). Es handelt sich um das eigentlich sehr einfache Thema der Reihenfolge von Werten oder Objekten – man trifft es in grafischen Benutzeroberflächen überall:
- in Dropdowns
- in tabellenartigen Listen
- in baumartigen Strukturen
- in der Tab-Order
- …
Klassischerweise scheint man in der Spezifikation häufig hierüber keine Worte verlieren zu wollen (oder zu müssen zu meinen – naja, auch hier eine kleine Grammatikschwäche).
Vor vielen Jahren schien dies auch noch meist einigermaßen akzeptabel auszugehen, da Oracle sich gnädig zeigte und auch ohne explizites „order by“ eine irgendwie sinnvolle und meist auch reproduzierbare Reihenfolge zurücklieferte und Dropdowns häufig hardcoded waren, d.h. von einem kooperativen Entwickler gestaltet wurden.
Inzwischen sieht es anders aus. Durch diverse Layer und Objektstrukturen zwischen Datenbank und Benutzerschicht einerseits und multi-lingual konfigurierbare GUI-Elemente andererseits wird in der Praxis das eingelöst, was Oracle schon immer androhte, aber alleine nie wirklich so konsequent umsetzte: Eine in der Spezifikation undefinierte Reihenfolge bedeutet, dass die Reihenfolge in der Praxis wirklich zufällig ist und auch gerne von Aufruf zu Aufruf variiert (Offshoring scheint nach meinem Gefühl hier auch ein verstärkender Faktor zu sein, aber dies ist ein anderes Thema).
Selbst wenn der Endanwender bei der Spezifikation dabei war, kommen in solchen Momenten böse Gefühle auf („das weiß man doch“ / „wie kann man nur“ / „…“) – hier können Business Analysten frühzeitig das Thema entschärfen, und solche proaktiven Gedanken machen für mich einen guten Business Analysten aus.
Ich habe für mich aus diesen Erfahrungen als Leidtragender die Leitlinie (als Teil der Spezifikationschecklisten) aufgestellt, dass eine undefinierte Reihenfolge in der Spezifikation explizit begründet werden muss. Wenn man im Gespräch mit dem Fachbereich dadurch „gezwungen“ wird, für jedes solche GUI-Element das Thema der Reihenfolge anzusprechen, wird im Allgemeinen etwas Sinnvolleres gewählt werden (nach Datum, nach Abfolge in den Business-Prozessen, nach Wichtigkeit – alphabetisch ist bei weitem nicht immer die beste Lösung), es kommt ja nur darauf an, das Thema nicht zu vergessen.
Wem dies alles so selbstverständlich vorkommt: Ich kenne jetzt unsortierte Dropdowns mit 200 Elemente aus der Praxis (und nicht nur an einer Stelle), und wenn man darin häufig genug suchen muss, dann ist der Schmerz groß genug, dass man einen solchen kleinen Artikel schreibt – vielleicht hilft es Ihnen, beim nächsten Projekt diese Schmerzen zu verhindern.
Ostertage Sinne in wünsche dem schöne ich!