Supongamos que está desarrollando una aplicación de escritorio y desea que el usuario pueda personalizar menús, botones, asignación de teclas y otros comandos y componentes. ¿Cuánta personalización se debe permitir?
Me gusta que mis entornos sean bastante personalizables. También quiero que el entorno tenga un buen conjunto de valores predeterminados para poder modificar la configuración que necesito en lugar de tener que configurar todo. ¿Alguien tiene alguna experiencia de usuario para apoyar o contradecir mi preferencia?
gui-design
Michael K
fuente
fuente
Respuestas:
tenga en cuenta que cada opción / personalización que agregue será un programa más complejo, que será más difícil de usar y mantener. Si es algo que solo un pequeño porcentaje de personas usaría, preguntaría si vale la pena.
fuente
Cuándo hará una diferencia positiva significativa para los usuarios para permitir la personalización.
Esencialmente es como cualquier otro requisito: debe justificar el costo / esfuerzo para implementarlo. Eso puede ser una mayor productividad o usabilidad, o puede ser un cierto nivel de mayor satisfacción del usuario, pero debe haber alguna razón para hacerlo que justifique el esfuerzo involucrado.
Como alguien a quien le gusta la personalización, las preguntas que debe hacerse son:
Si estuviera pagando, ¿qué pagaría por este nivel de personalización? ¿Cuántas personas como yo hay? ¿Y eso cubriría el costo de desarrollarlo?
¿Qué hacen mis competidores? ¿Cuál es la expectativa para los productos en esta área?
Si en lugar de gastar el esfuerzo para hacerlo personalizable, gastara ese esfuerzo en otras funciones, ¿cuál preferiría? ¿Es esto cierto para los usuarios típicos?
Recuerde, todo lo que elige implementar es realmente algo más que está eligiendo no hacer (al menos por ahora), por lo que todo debe justificar el esfuerzo necesario.
fuente
Pregúntese por qué quiere permitir que el usuario personalice cada pequeña cosa. ¿Es para evitar tomar decisiones de diseño usted mismo, forzándolas al usuario?
Aquí hay una buena publicación de Jeff sobre el tema: http://www.codinghorror.com/blog/2005/09/the-problem-with-configurability.html
fuente
Los usuarios, en general, odian las aplicaciones que están tan mal pensadas que tienen que personalizarlas para satisfacer sus necesidades. En mi experiencia, la mayoría de los usuarios no se sienten tan cómodos usando una computadora como una persona de TI y no personalizarán incluso cuando se les dé la opción.
Si está personalizando para evitar hacer un trabajo de diseño adecuado, está personalizando demasiado. Si está personalizando porque le gusta la personalización y no porque sea un requisito, está personalizando demasiado. Si tiene un requisito genuino para personalizar, aún debe preguntarse si es una buena idea y averiguar la razón subyacente por la que creen que necesitan personalización. A menudo encontrará un nuevo requisito que no habían mencionado si usa un requisito de personalización como un lugar para iniciar un diálogo con la persona que hace los requisitos.
fuente
Depende de la aplicación
Esto puede sonar como una evasión, pero realmente no lo es (o, al menos, no está destinado a serlo).
La cantidad de personalización debe depender, en parte, de la sofisticación del usuario final esperado. Es mucho más probable que los tipos de ingenieros entren y jueguen con la configuración del usuario que, por ejemplo, mi abuela jugando al solitario en una máquina Win98.
También depende de cuál sea la aplicación en sí. Si el objetivo de la aplicación es la facilidad de uso, no debe enturbiarlo con un montón de opciones configurables por el usuario.
Demasiadas opciones configurables hacen que una aplicación parezca demasiado compleja. Si crea una aplicación que tiene muchas de estas opciones, al menos las "escondería" en una pantalla de configuración o cuadro de diálogo "Avanzado ...", y solo pondría un subconjunto de cosas que el usuario promedio de esa aplicación desea cambiar en la pantalla de opciones "normal".
Otra alternativa es "desollar" algo. Eso puede significar las cosas tradicionales de "skinning" (por ejemplo, la pestaña "Apariencia" en las Propiedades de pantalla de Windows), o puede significar un conjunto de opciones que se configuran todas a la vez (por ejemplo, la pestaña "Temas" en el mismo diálogo).
fuente
Generalmente no me molesto. He tenido que trabajar en muchas máquinas diferentes, y mantenerlas todas personalizadas sería más molesto de lo que parece valer. Si hago personalización en una máquina, me enojaré cuando otra máquina no la tenga. Hacer que sea más fácil mover las personalizaciones sería de alguna manera útil (considere a los usuarios de emacs y sus archivos de lisp del sitio), pero a menudo me parece demasiado molesto de todos modos.
Si su aplicación no funciona bien, pero necesita ser personalizada, ha fallado.
Quiero mi software favorito en una máquina, pero no creo que eso sea lo que quiere decir con personalización.
Un problema con la personalización es que es una promesa para todos y cada uno de los clientes que debe respetar. Envía la versión A y sus clientes la personalizan. Todo bien y bien. Ahora, ¿qué haces con la versión B? Si rompe las personalizaciones de sus clientes, se molestarán, y si lo hace más de una vez, serán muy reacios a personalizar, por lo que se quedará con la funcionalidad de personalización que muy pocas personas usan, además de molesta clientes.
Esto significa que debe prestar atención a la personalización que ha involucrado con cada actualización. Esto puede causarle dolores de cabeza, cuando desee reestructurar algo que debería ser fácil de hacer, excepto que arruinaría las personalizaciones. Debe prestar atención a las posibles combinaciones de personalizaciones que podrían interactuar mal.
fuente
Un programa es demasiado personalizable cuando se cumple alguna de las siguientes condiciones:
No hay valores predeterminados razonables listos para usar para las cosas. La personalización es mucho más agradable si las cosas funcionan razonablemente bien, incluso si no lo personalizas. Por ejemplo, odio vi porque su comportamiento inmediato en términos de lo que hacen las teclas de retroceso y flechas es muy diferente de la convención en el resto de la máquina. Sé que esto se puede personalizar, pero cuando camino hacia una máquina de inventario, básicamente no se puede usar hasta que pierdo un montón de tiempo jugando.
Has hecho que tu programa sea tan personalizable que su apariencia y eficacia son efectivamente diferentes en cada máquina, distribución de Linux, etc. y efectivamente no puedes "aprender una vez, usar en todas partes". De nuevo, ver vi.
Ha creado una plataforma interna de modo que el usuario estaría mejor simplemente usando la plataforma externa para lograr lo que quiere. Por ejemplo, una vez que un editor de texto o una herramienta de procesamiento de texto de línea de comando se vuelve demasiado poderosa, probablemente sea más fácil escribir un script Python rápido y sucio para realizar las manipulaciones de texto más complejas que aprender a hacerlo usando La plataforma interior. Del mismo modo, una vez que una biblioteca de trazado se vuelve demasiado poderosa, probablemente sea mejor dejar que el usuario interactúe directamente con la biblioteca GUI que está construida encima para personalizar los detalles más finos del trazado.
fuente
TL; DR: cuando su aplicación se convierte en un marco intimidante.
Desde el punto de vista del desarrollador de la aplicación , es cuando la personalización permitiría que la aplicación se rompa de tal manera que el soporte se vuelva imposible, ya sea porque el usuario no puede informar cómo configuró la aplicación o porque varias interacciones de configuración se vuelven demasiado tortuosas como para llamar la atención. o colas Piense bien en el sistema de personalización y permita que la información le llegue de manera significativa.
Desde el punto de vista del usuario de la aplicación , es cuando el usuario siente que la configuración de la aplicación es desalentadora, a menudo porque es similar a la programación, por una definición imprecisa de "programación" (esto incluye programación orientada a la GUI o interruptores Blinkens ).
Sí, la línea es borrosa .
Sí, a veces un buen código o (re) diseño de GUI puede hacer que la placa de conmutación de la aplicación incluso con el mismo conjunto de características personalizables .
Cree una curva de aprendizaje entre las configuraciones "informal", "avanzada" y "experta". Podría llegar hasta proporcionar una API y / o secuencias de comandos. Todos los usuarios no comienzan con el mismo pie: un sistema escalonado hará que cada uno se sienta como en casa . También puede crear una sensación de progreso y logro cuando un principiante cambia de "curado" a "avanzado".
Los buenos ejemplos en diversas áreas incluyen Firefox (preferencias, sobre: config, userchrome.css & al.), Chrome (configuración básica frente a "Under the hood"), Mac OS X (paneles de preferencias, "valores predeterminados (1)", AppleScript / Automatizador) , o incluso el vimrc de Vim. Los malos ejemplos incluyen cualquier aplicación cuyo panel de configuración parezca un laberinto. Estoy seguro de que podrías nombrar media docena desde la parte superior de tu cabeza (a menos que te hayan traumatizado para que los olvides).
fuente
Firefox podría ser un buen ejemplo: el usuario tiene la capacidad de personalizar la interfaz de usuario y agregar diferentes extensiones según sea necesario. El programa principal no es personalizable, pero el resto es un juego justo.
fuente
Cuando su aplicación se rompe con demasiada frecuencia por el bien de su cliente o por la cordura de su desarrollador, probablemente tenga demasiados.
Estoy trabajando con una aplicación de servidor cliente de escritorio .NET, SQL Server que permite:
En serio, esta compañía creó una bestia personalizable. Está diseñado para un mercado vertical, pero las otras implementaciones podrían ser ilimitadas.
fuente
Me gusta diseñar para personalizar, pero antes de comenzar a implementarlo, preferiría que todo lo demás sea realmente sólido. De hecho, probablemente me gustaría obtener la versión 1.0 para que los usuarios puedan manejarla antes de comenzar a pensar en agregar funciones personalizables por el usuario.
Antes de eso, simplemente no sé qué personalizaciones serán útiles para mis usuarios del mundo real. Es posible que estén contentos con el funcionamiento de la interfaz y prefieran tener más funciones disponibles en lugar de tener la capacidad de personalización suficiente para que puedan cambiar la posición de los botones o elementos del menú.
Prefiero tener una interfaz realmente excelente que fuerce un poco la mano del usuario, que tener mucha personalización, pero espere seis meses o un año más hasta que se pueda lanzar mi aplicación. El envío es una característica!
La única excepción definitiva a esto es que si estoy requiriendo combinaciones de teclas, en la mayoría de los casos, quisiera hacerlas personalizables, porque nunca se sabe qué más ha ejecutado un usuario y sería muy irritante chocar con otra aplicación en un forma en que el usuario no podría evitarlo fácilmente.
fuente
Puede agregar las configuraciones más básicas y de sentido común a un menú, para que puedan modificarse directamente desde la interfaz de usuario. Todo lo demás, que es más complicado, puede ponerlo en algún archivo de configuración u otro medio al que se pueda acceder desde una herramienta de configuración o algo así.
De esa forma, sus usuarios más comunes y no especializados tienen acceso a las configuraciones básicas que necesitan para usar la aplicación, mientras que sus usuarios más especializados, expertos o interesados pueden usar las configuraciones adicionales para satisfacer sus necesidades altamente especializadas.
Creo que esta es la mejor compensación entre tener una aplicación fácil de usar y altamente personalizable. Sin embargo, el éxito de esto es cómo se dividen las configuraciones. ¿Cuáles son los importantes, que son solo para ajustes sofisticados? Esa es la parte difícil, creo. Y no olvide agregar un botón para restablecer los valores predeterminados, en caso de que alguien estropee algo.
fuente