Angenommen, Sie entwickeln eine Desktop-Anwendung und möchten, dass der Benutzer Menüs, Schaltflächen, Keymapping und andere Befehle und Komponenten anpassen kann. Wie viel Anpassung sollte erlaubt sein?
Ich mag es, wenn meine Umgebungen so gut wie unendlich anpassbar sind. Ich möchte auch, dass die Umgebung eine Reihe guter Standardeinstellungen hat, damit ich einfach die Einstellungen anpassen kann, die ich benötige, anstatt das Ganze einrichten zu müssen. Hat jemand eine Benutzererfahrung, auf die er hinweisen kann, um meine Präferenz zu unterstützen oder zu widersprechen?
gui-design
Michael K.
quelle
quelle
Antworten:
Denken Sie daran, dass jede Option / Anpassung, die Sie hinzufügen, zu einem komplexeren Programm führt, das sowohl schwieriger zu verwenden als auch zu warten ist. Wenn es etwas ist, das nur ein kleiner Prozentsatz der Leute benutzen würde, würde ich fragen, ob es sich lohnt.
quelle
Wann wird es für die Benutzer einen signifikanten positiven Unterschied bedeuten, die Anpassung zuzulassen.
Im Wesentlichen ist es wie jede andere Anforderung - es muss die Kosten / den Aufwand für die Implementierung rechtfertigen. Dies kann eine erhöhte Produktivität oder Benutzerfreundlichkeit sein, oder es kann ein gewisses Maß an erhöhter Benutzerzufriedenheit sein, aber es sollte einen Grund dafür geben, der den Aufwand rechtfertigt.
Als jemand, der Anpassungen mag, sollten Sie sich folgende Fragen stellen:
Was würde ich für diese Anpassungsstufe bezahlen, wenn ich zahlen würde? Wie viele Leute wie ich gibt es? Und würde das die Kosten für die Entwicklung decken?
Was machen meine Konkurrenten? Was ist die Erwartung für Produkte in diesem Bereich?
Wenn ich mich nicht um die Anpassung an andere Funktionen kümmern würde, welche würde ich bevorzugen? Gilt das für typische Benutzer?
Denken Sie daran, dass alles, was Sie implementieren möchten, wirklich etwas anderes ist, das Sie (zumindest vorerst) nicht tun möchten. Daher muss alles den erforderlichen Aufwand rechtfertigen.
quelle
Fragen Sie sich, warum Sie den Benutzer jede Kleinigkeit anpassen lassen möchten. Soll vermieden werden, dass Designentscheidungen selbst getroffen werden, und diese stattdessen dem Benutzer aufgezwungen werden?
Hier ist ein guter Beitrag von Jeff zu diesem Thema: http://www.codinghorror.com/blog/2005/09/the-problem-with-configurability.html
quelle
Benutzer hassen im Allgemeinen Anwendungen, die so schlecht durchdacht sind, dass sie angepasst werden müssen, um ihre Anforderungen zu erfüllen. Nach meiner Erfahrung sind die meisten Benutzer mit einem Computer nicht so vertraut wie eine IT-Person und passen sich nicht an, selbst wenn sie die Option erhalten.
Wenn Sie Anpassungen vornehmen, um eine ordnungsgemäße Gestaltung zu vermeiden, passen Sie zu viele Anpassungen an. Wenn Sie anpassen, weil Sie die Anpassung mögen und nicht, weil dies erforderlich ist, passen Sie zu viel an. Wenn Sie eine echte Anforderung zum Anpassen haben, sollten Sie sich dennoch fragen, ob dies eine gute Idee ist, und den zugrunde liegenden Grund herausfinden, warum sie glauben, dass sie angepasst werden müssen. Oft finden Sie eine neue Anforderung, die sie nicht erwähnt haben, wenn Sie eine Anpassungsanforderung als Ort verwenden, um mit der Person, die die Anforderungen ausführt, eine Dialognierung zu starten.
quelle
Es hängt von der Anwendung ab
Das mag sich wie eine Ausrede anhören, ist es aber wirklich nicht (oder zumindest nicht).
Der Umfang der Anpassung sollte teilweise von der Raffinesse des erwarteten Endbenutzers abhängen. Ingenieurtypen greifen viel häufiger in die Benutzereinstellungen ein und basteln daran, als beispielsweise meine Oma, die auf einem Win98-Computer Solitaire spielt.
Es hängt auch davon ab, was die Anwendung selbst ist. Wenn der Punkt der Anwendung einfach zu bedienen ist, möchten Sie dies nicht mit einer Reihe von vom Benutzer konfigurierbaren Optionen verwirren.
Zu viele konfigurierbare Optionen lassen eine Anwendung zu komplex erscheinen. Wenn Sie eine Anwendung erstellen, die viele dieser Optionen bietet, würde ich sie zumindest in einem Konfigurationsbildschirm oder -dialog "Erweitert ..." "ausblenden" und nur eine Teilmenge der Dinge einfügen, die der durchschnittliche Benutzer dieser Anwendung tun wird möchten auf dem "normalen" Optionsbildschirm ändern.
Eine andere Alternative ist das "Enthäuten" von etwas. Dies kann das herkömmliche "Skinning" -Stoff bedeuten (z. B. die Registerkarte "Darstellung" in den Windows-Anzeigeeigenschaften), oder es kann eine Reihe von Optionen bedeuten, die alle gleichzeitig festgelegt werden (z. B. die Registerkarte "Themen") Dialog).
quelle
Ich kümmere mich im Allgemeinen nicht darum. Ich musste an vielen verschiedenen Maschinen arbeiten, und es wäre mehr störend, sie alle individuell zu gestalten, als es wert zu sein scheint. Wenn ich auf einem Computer Anpassungen vornehme, ärgere ich mich, wenn ein anderer Computer diese nicht hat. Das Verschieben von Anpassungen zu vereinfachen, würde etwas helfen (berücksichtigen Sie Emacs-Benutzer und ihre Site-Lisp-Dateien), aber oft würde mir das sowieso zu viel Mühe machen.
Wenn Ihre App nicht sofort funktioniert, sondern angepasst werden muss, sind Sie gescheitert.
Ich möchte meine Lieblingssoftware auf einer Maschine haben, aber ich glaube nicht, dass Sie das mit Anpassung meinen.
Ein Problem bei der Anpassbarkeit ist, dass es jedem Kunden ein Versprechen ist, das Sie respektieren müssen. Sie senden Version A aus und Ihre Kunden passen sie an. Alles schön und gut. Was machst du nun mit Version B? Wenn Sie die Anpassungen Ihrer Kunden brechen, werden sie verärgert sein, und wenn Sie dies mehrmals tun, werden sie nur sehr ungern Anpassungen vornehmen, sodass Sie nur noch über Anpassungsfunktionen verfügen, die nur sehr wenige Benutzer verwenden, und sich darüber ärgern Kunden.
Dies bedeutet, dass Sie darauf achten müssen, welche Anpassungen Sie bei jedem Upgrade vorgenommen haben. Dies kann Ihnen Kopfschmerzen bereiten, wenn Sie etwas umstrukturieren möchten, das einfach zu tun sein sollte, außer dass es Anpassungen durcheinander bringen würde. Sie müssen auf mögliche Kombinationen von Anpassungen achten, die schlecht interagieren können.
quelle
Ein Programm ist zu anpassbar, wenn eine der folgenden Bedingungen erfüllt ist:
Es gibt keine vernünftigen Standardeinstellungen für Dinge. Anpassbarkeit ist viel schmackhafter, wenn Dinge einigermaßen gut funktionieren, auch wenn Sie sie nicht anpassen. Zum Beispiel hasse ich vi, weil sein Out-of-the-Box-Verhalten in Bezug auf die Funktion der Rücktaste und der Pfeiltasten sich so stark von der Konvention auf dem Rest der Maschine unterscheidet. Ich weiß, dass dies angepasst werden kann, aber wenn ich zu einer Lagermaschine gehe, ist es im Grunde unbrauchbar, bis ich eine Menge Zeit damit verschwendet habe, herumzuspielen.
Sie haben Ihr Programm so anpassbar gemacht, dass sein Erscheinungsbild auf jedem Computer, jeder Linux-Distribution usw. effektiv anders ist und Sie effektiv nicht "einmal lernen, überall verwenden" können. Siehe auch vi.
Sie haben eine innere Plattform so aufgebaut, dass der Benutzer besser dran ist, nur die äußere Plattform zu verwenden, um das zu erreichen, was er will. Wenn beispielsweise ein Texteditor oder ein Textverarbeitungstool für die Befehlszeile zu leistungsfähig wird, ist es wahrscheinlich einfacher, einfach ein schnelles und schmutziges Ad-hoc-Python-Skript zu schreiben, um die komplexeren Textmanipulationen durchzuführen, als zu lernen, wie man sie verwendet die innere Plattform. Wenn eine Plotbibliothek zu leistungsfähig wird, ist es wahrscheinlich besser, den Benutzer direkt mit der darauf basierenden GUI-Bibliothek interagieren zu lassen, um die feineren Details des Plots anzupassen.
quelle
TL; DR: Wenn Ihre Anwendung zu einem einschüchternden Framework wird.
Aus Sicht des Anwendungsentwicklers würde die Anwendung dann ermöglichen, dass die Anwendung so unterbrochen wird, dass die Unterstützung unmöglich wird, entweder weil der Benutzer nicht berichten kann, wie er die Anwendung eingerichtet hat, oder weil verschiedene Einstellungen zu umständlich werden, um Köpfe zu machen oder Schwänze. Überlegen Sie sich das Anpassungssystem genau und lassen Sie zu, dass Informationen auf sinnvolle Weise an Sie zurückgesandt werden.
Aus Sicht des Anwendungsbenutzers ist dies der Fall, wenn der Benutzer das Gefühl hat, dass das Einrichten der Anwendung für eine lose Definition von "Programmierung" (einschließlich GUI-orientierter Programmierung oder Blinkenswitches ) entmutigend ist, häufig weil es der Programmierung ähnelt .
Ja, die Linie ist verschwommen .
Ja, manchmal kann ein guter Code oder ein GUI-Design (Re-) Design die Anwendungsschalttafel auch mit demselben anpassbaren Funktionsumfang machen .
Erstellen Sie eine Lernkurve zwischen den Einstellungen "Gelegenheitsspiele", "Fortgeschrittene" und "Experten". Dies kann bis zur Bereitstellung einer API und / oder eines Skripts reichen. Nicht alle Benutzer sind gleichberechtigt: Durch ein abgestuftes System fühlt sich jeder wie zu Hause . Es kann auch ein Gefühl von Fortschritt und Leistung erzeugen, wenn ein Anfänger von "kuratiert" zu "fortgeschritten" wechselt.
Gute Beispiele in verschiedenen Bereichen sind Firefox (Einstellungen, ungefähr: config, userchrome.css & al.), Chrome (Grundeinstellungen vs "Unter der Haube"), Mac OS X (Voreinstellungen, "Standardeinstellungen (1)", Applescript / Automator) oder sogar Vims vimrc. Zu den schlechten Beispielen gehört jede Anwendung, deren Einstellungsbereich sich wie ein Labyrinth anfühlt. Ich bin sicher, Sie könnten ein halbes Dutzend von oben nennen (es sei denn, sie haben Sie traumatisiert, sie zu vergessen).
quelle
Firefox könnte ein gutes Beispiel sein - der Benutzer kann die Benutzeroberfläche anpassen und nach Bedarf verschiedene Erweiterungen hinzufügen. Das Kernprogramm ist nicht anpassbar, aber der Rest ist Fair Game.
quelle
Wenn Ihre Anwendung aus Gründen Ihres Kunden oder der Vernunft Ihres Entwicklers zu oft unterbrochen wird, haben Sie wahrscheinlich zu viele.
Ich arbeite mit einer .NET, SQL Server-Desktop-Client-Server-App, die Folgendes ermöglicht:
Im Ernst, diese Firma hat ein anpassbares Tier geschaffen. Es ist für einen vertikalen Markt konzipiert, aber die anderen Implementierungen können unbegrenzt sein.
quelle
Ich entwerfe gerne für Anpassbarkeit, aber bevor ich mit der Implementierung beginne, würde ich es vorziehen, alles andere wirklich solide zu machen. In der Tat würde ich wahrscheinlich gerne Version 1.0 herausbringen, wo sie von Benutzern gehandhabt werden kann, bevor ich darüber nachdachte, benutzeranpassbare Funktionen hinzuzufügen.
Vorher weiß ich einfach nicht, welche Anpassungen für meine Benutzer in der realen Welt nützlich sein werden. Es kann sein, dass sie mit der Funktionsweise der Benutzeroberfläche zufrieden sind und lieber mehr Funktionen zur Verfügung haben, als über eine ausreichende Anpassbarkeit zu verfügen, um die Position von Schaltflächen oder Menüelementen ändern zu können.
Ich hätte lieber eine wirklich großartige Benutzeroberfläche, die die Hand des Benutzers ein wenig zwingt, als viele Anpassungen vorzunehmen, aber warte weitere sechs Monate oder ein Jahr, bis meine Anwendung veröffentlicht werden kann. Versand ist ein Feature!
Die einzige eindeutige Ausnahme ist, dass ich in den meisten Fällen, wenn ich Tastenkombinationen benötige, diese anpassbar machen möchte, da Sie nie wissen, was ein Benutzer sonst noch ausführt, und es sehr irritierend wäre, mit einer anderen Anwendung in einer zu kollidieren Art und Weise, dass der Benutzer nicht einfach umgehen konnte.
quelle
Sie können einem Menü die grundlegendsten und vernünftigsten Konfigurationen hinzufügen, damit sie direkt über die Benutzeroberfläche angepasst werden können. Alles andere, was komplizierter ist, können Sie in eine Konfigurationsdatei oder ein anderes Mittel einfügen, auf das über ein Konfigurationstool oder etwas anderes zugegriffen werden kann.
Auf diese Weise haben Ihre häufigsten, nicht spezialisierten Benutzer Zugriff auf die Grundkonfigurationen, die sie zur Verwendung der App benötigen, während Ihre spezialisierteren, erfahreneren oder anderweitig interessierteren Benutzer die zusätzlichen Konfigurationen verwenden können, um ihren hochspezialisierten Anforderungen gerecht zu werden.
Ich denke, dies ist der beste Kompromiss zwischen einer benutzerfreundlichen und hochgradig anpassbaren App. Der Erfolg davon ist jedoch, wie Sie die Konfigurationen aufteilen. Welches sind die wichtigsten, die nur für ausgefallene Optimierungen gedacht sind? Das ist der schwierige Teil, denke ich. Und vergessen Sie nicht, eine Schaltfläche zum Zurücksetzen der Standardeinstellungen hinzuzufügen, falls jemand etwas durcheinander bringt.
quelle