Die Sache mit dem richtigen Fokus

Der menschliche Organismus ist schon ein Wunderwerk – man kann es kaum anders ausdrücken. Im Zusammenspiel der Augen und dem Gehirn ermöglicht es uns in aller Regel einen großen Bereich der Wahrnehmung abzudecken. Sei es ein Panorama, ein Ausblick über eine große Fläche bei dem wir weniger auf Details achten sondern das Gesamtbild auf uns wirken lassen, oder das genaue Gegenteil: Der stark eingeschränkte Blick auf einen sehr kleinen Bereich, die Betrachtung eines winzigen Details um es bis ins Letzte zu erfassen und zu verstehen. Der Sehaparat leistet hierbei ganze Arbeit aber auch die Aufbereitung der Information im Hirn ist hochgradig spezialisiert. Mit dem Heranwachsen entwickeln wir die Fähigkeit unwichtige Dinge auszublenden, uns auf das Wesentlich zu konzentrieren – ganz egal ob Weitwinkel oder Tele-Einstellung – unser Hirn blendet unwichtige Dinge aus die wir derzeit nicht dringend benötigen. Wir nehmen sie nicht in voller Intensität war. Und das ist auch gut so, andernfalls würden wir irgendwann vor lauter Reizen erschlagen werden. Wer beispielsweise mit dem Auto unterwegs ist, kennt den Effekt sicherlich: Noch eben plaudert man gemütlich mit den Mitfahrern, der Verkehr fliest gemütlich vor sich hin. Aber dann kommt etwas, dass diese Ruhe stört – sofortiges und richtiges Handeln ist gefordert – beispielsweise weil man vor sich plötzlich ein Stauende hat. Mit einem Mal ist der Fokus voll auf der Straße, die ganze Konzentration steht zur Aufnahme der wichtigen Infos zur Verfügung – alles ander wird beiseite geschoben.

Auch im Geschäftsleben haben wir ständig mit einem Wechsel des Fokus zu tun – auf der einen Seite dürfen Details nicht übersehen werden, auf der anderen Seite gilt es den Überblick nicht zu verlieren. Besonders augenfällig wird die Problematik, wenn man Software entwickeln soll, die das Zusammenspiel mehrer Menschen ermöglichen oder vereinfachen soll. Auch hier gibt es zwei konträre Skalen-Enden: An einem Ende die Erfassung der Details des Facharbeiters mit allen Informationen bis hin zur letzten Schraube. Am anderen Ende die Verwaltung, bzw. neudeutsch das Management. Dort sollte es nicht auf die einzelne Schraube ankommen – wichtiger ist hier die Frage: Sind genügend Schrauben vorhanden, damit alle Arbeiten erledigt werden können?

Als Programmierer steht man somit vor einem Dilemma: Richtig recht machen kann man es auf Anhieb sowieso niemandem.
Die Lösung heißt in diesem Fall: spezialisierte Ansichten für jeden Anwender schaffen. Dies wird im Englischen gerne zusammenfassend beschrieben als “Overview first, zoom and filter, detail on demand”. Auf deutsch: Beginne mit einem groben Überblick und lasse den Benutzer entscheiden wie er weiter vorgehen möchte. Filtern hat hier nicht zwingned die Bedeutung der Anwendung eines regelbasierten Filters (auch wenn es dem Programmierer oftmals das Leben um ein Vielfaches leichter machen würde). Welche Auswahl ein Benutzer trifft ist eine sehr komplexe Sache, die sich nicht immer zur vollsten Zufriedenheit aller Beteiligten lösen lässt. Das man Details nur anschaut, wenn man sie auch wirklich braucht ist dann ja nur eine logische Konsequenz.

Soweit die Theorie, es folgt die Praxis. In meiner doch recht umfangreichen Erfahrung mit dem Design im Web habe ich Tabellen für den Überblick schätzen gelernt. GGf muss man diese auf mehrere Seiten zerlegen, damit die Ladezeit sich in Grenzen hält und der Benutzer nicht erschlagen wird. Problematisch wird es insbesondere bei der Datenverwaltung, wenn die Anzahl der Datensätze trotz eines möglicherweise gesetzten Filters zu groß wird als dass man sie vollständig erfassen und verstehen kann. Ich rede hierbei explizit von den gerade aktuell notwendigen Daten, dass Archive stark angefüllte Gebilde sein können ist mir bewusst, aber hier kann man ja noch recht gut über die Zeitschiene arbeiten. Bei einer Liste aktuell zu erledigender Aufgaben geht das nunmal nicht, allenfalls lässt sich über eine Priorität nachdenken. Zusammenfassen zu Gruppen ist eine weitere Alternative, allerdings ist diese nicht immer anwendbar. Programmseitig lässt sich vieles davon ohne größere Verenkungen umsetzen.

Richtig problematisch wird es allerdings wenn die Daten aus dem betreffenden Projekt zu umfangreich werden – die Software es dann aber richten soll. Wenn ich mehr als 50 Probleme in einer Liste stehen habe, die alle höchste Priorität haben, dann muss ich mich fragen ob es wirklich ein Software-Problem ist wenn der Überblick verloren geht. Ich sage ja auch immer: Eine Software löst keine Probleme im Allgemeinen. Eine Software kann nur unterstützen, oder sehr sehr spezialisierte Aufgaben übernehemen. Diese Aufgaben müssen sich aber auch in Code gießen lassen. Geht es beispielsweise um eine statische Berechnung, so kann man eine Software erstellen, die anhand der Geometrie, der verwendeten Materialien und einigen anderen Randbedingungen wie Temperatur mögliche Schwachstellen berechnet. Die Software kann dann nicht die Schwachstellen beseitigen, darüber muss man sich immer im Klaren sein.

Noch eine Stufe problematischer, und das erlebe ich derzeit leider mal wieder, ist es wenn die Filterung bzw. der eingangs erwähnte Focus auf die richtige “Ebene” nicht vorhanden ist. Eine Vorgänger-Software zeigte beispielsweise immer alle Ergebnisse immer vollständig an – eines pro Seite zum “Blättern” (Access verleitet dazu solche Konstrukte zu bauen) – Ergebnis: Man verlor ggf. auch bei gefilterten Ergebnissen den Überblick. Gerade den braucht man aber, wenn man fundierte Entscheidungen auf der Management-Ebene treffen möchte. Gerade das ist ja die Aufgabe eines Vorgesetzten: Er hat nichts anderes zu tun, als dafür Sorge zu tragen, dass die unterstellten Mitarbeiter möglichst effizient arbeiten können. Ich verlange hier jetzt bewusst nicht das alte Bild vom Vorgesetzen der nur nebendran steht und zusieht wie seine Mitarbeiter sich abquälen. Ein guter Vorgesetzer weiß wann es sinnvoll ist, auch mal eben selbst mit anzupacken und sich ggf. auch mal die Finger schmutzig zu machen. Aber es darf kein Dauerzustand sein.

Als Software-Entwickler endgültig gekniffen ist man dann, wenn es heißt: Wir wollen das weiterhin so haben, nur besser. Was macht man da? Ich habe noch keine richtige Antwort darauf gefunden. Klar kann man hergehen und es alles etwas aufhübschen und auf den neusten Stand der Technik heben – aber das löst die Problematik einer schlecht gestalteten Software eben nicht. Genausowenig wie das 1:1 umsetzen einer Datenbank auf einen neuen Unterbau sinnvoll ist um die Funktion zu erweitern oder die Performance zu steigern. Leistungsfähige Hardware kann sicherlich etwas bringen, genauso wie gute Datenbank-Server oder andere Infrastruktur, aber all das verpufft im Nichts, wenn die Datenstrukturen unterhalb nicht stimmig sind oder das Modell an allen Ecken und Enden nicht mit der Realität überein stimmt. Leider sind solche Probleme gerade gegenüber Vorgesetzten sehr schwer zu erläutern und zu rechtfertigen.
Auch da fehlt es in meinen Augen mal wieder an der richtigen Einstellung des Focus.

Es ist nicht immer einfach die richtige Einstellung des Focus zu finden, jeder der Bilder gestaltet kennt das Problem. Aber mit ein wenig Übung und Sorgfalt und vor allem der regelmäßigen Kontrolle kann es doch recht gut in den Griff bekommen. Dazu gehören unter anderem Fragen wie: Ist diese Aufgabe bei mir richtig angesiedelt? Sollte ich sie an einen Fachmann deligieren? Gehört das wirklich auf meine Ebene, in meinen Aufgabenbereich? Dann klappt es auch mit der Verwendung von Software und dieses Werkzeug entfaltet dann auch seine Wirkung.