Wann ist eine Anwendung zu anpassbar? [geschlossen]

8

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?

Michael K.
quelle
2
Dies ist keine vollständige Antwort, daher ist es ein Kommentar: Wenn Ihr Konfigurationsdialog ein Suchfeld erfordert, ist es zu anpassbar. Zum Beispiel Toad von Quest Software. Oy.
Mark Freedman
Ich hoffe, Sie sind kein Google Chrome-Entwickler, denn wenn ja , verdient es diese Frage, in die Liste aufgenommen zu werden (Kontext für Nicht-Initiierte: Chrome glaubt an die Philosophie der Nullkonfiguration. Ich kann nicht einmal meine bevorzugte konfigurieren Sprache. Und Chrome schließt die * falsche Sprache.)
Konrad Rudolph
Nein, bin ich nicht. Nur zu meinem eigenen Vorteil. :)
Michael K
Diese Frage scheint für die User Interfaces SE besser zu sein.
Mummey

Antworten:

11

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.

GSto
quelle
Genau. Lohnt es sich, 25% Ihrer Entwicklungszeit für eine Funktion aufzuwenden, die vielleicht 5% Ihrer Kunden nutzen werden? Wahrscheinlich nicht. Werden Sie durch diese zusätzliche Anpassungsfähigkeit weitere Kunden gewinnen? Wieder wahrscheinlich nicht.
Andrew Arnold
@ GSto, absolut richtig! Es ist die Komplexität, die tötet, und jede Bedingung multipliziert die Möglichkeiten! Mit anderen Worten - 16 unabhängige Boolesche Werte ergeben 2 ^ 16 verschiedene Konfigurationen, die alle getestet werden müssen.
1
Dies ist, was Apple auszeichnet - treffen Sie Entscheidungen und verbergen Sie die Komplexität.
@Thorbjörn - absolut. Ich kann viel mehr Dinge in Windows konfigurieren, muss es aber unter OS XI im Allgemeinen nicht, da die Standardeinstellungen alle sehr gut durchdacht sind.
Jon Hopkins
@ Jeff O - Das ist ein guter Punkt. Es ist kein rein schwarz-weißes Thema, und es ist schwer, ein Gleichgewicht zu finden.
GSto
9

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.

Jon Hopkins
quelle
Tolle Antwort - Ich wollte etwas in meine Antwort einfügen, aber dann näherte es sich der Buchlänge und wurde ignoriert. :)
Wonko the Sane
5

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

Alex Warren
quelle
1
+1 Deshalb ist eine gute Reihe von Standardeinstellungen wichtig. Ich würde niemals etwas entwerfen, bei dem der Benutzer es konfigurieren muss. Mir geht es mehr darum, wie viele Optionen gegeben werden sollten.
Michael K
+1 bei Bezugnahme auf Jeffs Artikel. Dies deckt alles ab, was ich zu diesem Thema sagen wollte, und bezieht sich auch gut auf seinen Punkt zur Konvention über die Konfiguration.
Mark Freedman
5

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.

HLGEM
quelle
4

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).

Wonko der Gesunde
quelle
Was halten Sie von einem inkrementellen Suchfeld und einem Einstellungsdialog, die Eclipse ähneln?
Michael K
@Michael - Es kann in Ordnung sein, wenn sich Ihre Anwendung der Komplexität und / oder Zielgruppe von Eclipse nähert. Auch hier handelt es sich bei Eclipse in erster Linie um eine technische Anwendung, und diese Benutzer erwarten eine komplexere und breitere Palette von Optionen. Wenn ich dagegen so etwas wie Notepad verwenden würde, würde mich das alles nicht stören.
Wonko der Vernünftige
@ Michael, eigentlich der Eclipse - Einstellungsdialog HAS ein inkrementelles Suchfeld!
@ Thorbjørn Ravn Andersen: Deshalb habe ich es als Beispiel verwendet :)
Michael K
3

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.

David Thornley
quelle
2

Ein Programm ist zu anpassbar, wenn eine der folgenden Bedingungen erfüllt ist:

  1. 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.

  2. 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.

  3. 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.

Dsimcha
quelle
1
+1 # 3 ist eine, die ich nicht berücksichtigt hatte.
Michael K
Ich bin mir nicht sicher, warum Sie vi als Beispiel verwenden. Es funktioniert zwar ganz anders als native MS Windows- oder Mac OSX-Konventionen, ist jedoch intern konsistent. Ich hatte keine Probleme, irgendwo an einer Rohinstallation zu arbeiten. Lernen Sie vi so wie es ist, passen Sie es nicht an und es kann überall verwendet werden, obwohl es so klingt, als würden Sie es nirgendwo mögen.
David Thornley
1
@ David: Ok, aber IMHO-Software, die so schwer gegen so wichtige Konventionen verstößt, ist im Grunde genommen kaputt. Außerdem verstößt vi gegen die Konventionen "moderner" Linux-Software, wie z. B. alles, was für KDE oder Gnome geschrieben wurde. Dies ist also nicht nur auf "nicht nativen" Plattformen ein Problem.
Dsimcha
vi ist definitiv seine eigene Sache. Das, was einer nativen Plattform am nächsten kommt, hat vor langer Zeit gediehen. Es scheint mir, dass es entweder keine Anpassung erfordert oder es nicht wert ist, angepasst zu werden, abhängig von Ihrer Sichtweise.
David Thornley
1
@ David: Für mich wäre es vernünftig, die Standardeinstellungen in neueren Versionen einfach vernünftig zu machen . Wenn Sie die Rückwärtskompatibilität mit dem vi auf PDP-11s gearbeitet, dann können Sie konfigurieren , dass selbst.
Dsimcha
2

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).

Lloeki
quelle
1

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.

aggietech
quelle
1

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:

    Custom Tables
    Custom Stored Procs & Views (These can have data modification capabilities as well)
    Creation of custom data sources in the application (Inside or outside the 'live' database)
    Creation of custom grid forms based on custom data source or combining of custom data sources
    Creation of custom reports based on custom data sources
    Creation of custom logic script on data entry fields 
    Customizable data import functionality
    Customizable workflow process data entry and notifications
    Customizable selection and placement of data entry fields/controls on standard forms
    Detailed user security settings to all forms, data CRUD, app functionality and reports

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.

JeffO
quelle
Ich benutze ein solches Projekt-Mamangement-Tool und jeder, der es benutzt, hasst es aus Leidenschaft. Wir sollten uns nicht anpassen müssen, um beispielsweise einen Clientnamen hinzuzufügen. Wer kauft ein teures Projektmanagement-Tool, wenn er nicht so viele Projekte hat, die er nach Kunden sortieren möchte? Wenn die Anpassung das Datenbankdesign vorschreibt, ist dies ein schwerwiegender Fehler und führt zu einer schlecht funktionierenden, schwer zu verwendenden Anwendung, die Benutzer verachten. Immer wenn jemand versucht, ein COTS-Produkt mit "es ist unendlich anpassbar" zu verkaufen, renne ich so schnell ich kann weg, weil das bedeutet, dass das Produkt letztendlich unbrauchbar ist.
HLGEM
1

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.

Glenatron
quelle
0

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.

Andrei Vajna II
quelle