stringtranslate.com

Principio del mínimo asombro

En el diseño de interfaz de usuario y diseño de software , [1] el principio de mínimo asombro ( POLA ), también conocido como principio de mínima sorpresa , [a] propone que un componente de un sistema debe comportarse de la manera que la mayoría de los usuarios esperan que lo haga. comportarse, y por tanto no asombrar ni sorprender a los usuarios. El siguiente es un corolario del principio: "Si una característica necesaria tiene un alto factor de asombro, puede ser necesario rediseñar la característica". [4]

El principio se ha utilizado en relación con la interacción con computadoras desde al menos la década de 1970. Aunque el principio se formalizó por primera vez en el campo de la tecnología informática, se puede aplicar ampliamente en otros campos. Por ejemplo, al escribir , una referencia cruzada a otra parte del trabajo o un hipervínculo debe redactarse de manera que indique con precisión al lector qué esperar.

Origen

Una de las primeras referencias a la "Ley del menor asombro" apareció en el Boletín PL/I de 1967 (PL/I es un lenguaje de programación lanzado por IBM en 1966). [5] A finales de la década de 1960, PL/I se había hecho famoso por violar la ley, [6] por ejemplo porque, debido a las reglas de conversión de precisión de PL/I, [7] las expresiones 25 + 1/3y 1/3 + 25producen un error fatal y el resultado 5.33333333333 después suprimiendo el error, en lugar del 25.33333333333 esperado. [8]

La ley apareció redactada íntegramente en 1972:

Para aquellas partes del sistema que no pueden ajustarse a las peculiaridades del usuario, los diseñadores de un lenguaje de programación de sistemas deben obedecer la "Ley del menor asombro". En resumen, esta ley establece que cada construcción del sistema debe comportarse exactamente como sugiere su sintaxis. Siempre que sea posible, se deben seguir convenciones ampliamente aceptadas y las excepciones a las reglas del lenguaje previamente establecidas deben ser mínimas. [9]

Formulación

Una formulación de libro de texto es: "Las personas son parte del sistema. El diseño debe coincidir con la experiencia, las expectativas y los modelos mentales del usuario ". [10]

El principio pretende aprovechar el conocimiento existente de los usuarios para minimizar la curva de aprendizaje , por ejemplo, diseñando interfaces que tomen prestado en gran medida de "programas funcionalmente similares o análogos con los que sus usuarios probablemente estén familiarizados". [2] Las expectativas de los usuarios a este respecto pueden estar estrechamente relacionadas con una plataforma o tradición informática particular . Por ejemplo, se espera que los programas de línea de comandos de Unix sigan ciertas convenciones con respecto a los interruptores , [2] y se espera que los widgets de los programas de Microsoft Windows sigan ciertas convenciones con respecto a los atajos de teclado . [11] En entornos más abstractos como una API , la expectativa de que los nombres de funciones o métodos coincidan intuitivamente con su comportamiento es otro ejemplo. [12] Esta práctica también implica la aplicación de valores predeterminados sensatos . [4]

Cuando dos elementos de una interfaz entran en conflicto o son ambiguos, el comportamiento debe ser el que menos sorprenda al usuario ; en particular, un programador debería intentar pensar en el comportamiento que menos sorprenderá a alguien que utilice el programa, en lugar de aquel comportamiento que es natural al conocer el funcionamiento interno del programa. [4]

La elección del comportamiento "menos sorprendente" puede depender de la audiencia esperada (por ejemplo, usuarios finales , programadores o administradores de sistemas ). [2]

Ejemplos

Los sitios web que ofrecen atajos de teclado a menudo permiten presionar ?para ver los atajos disponibles. Los ejemplos incluyen Gmail , [13] YouTube , [14] y Jira . [15]

En los sistemas operativos Windows y algunos entornos de escritorio para Linux , la tecla de función normalmente abre el programa de ayuda de una aplicación . Un atajo de teclado similar en macOS es + + . Los usuarios esperan una ventana de ayuda o un menú contextual cuando presionan las teclas de acceso directo de ayuda habituales. Es probable que el software que utiliza este acceso directo para otra función cause asombro si no aparece ayuda. [dieciséis]F1 Command⇧ Shift/

La biblioteca estándar de un lenguaje de programación generalmente proporciona una función similar al pseudocódigo , que crea un número entero legible por máquina a partir de una cadena de dígitos legibles por humanos . La base convencionalmente tiene por defecto 10, lo que significa que la cadena se interpreta como decimal (base 10). Esta función generalmente admite otras bases, como binaria (base 2) y octal (base 8), pero solo cuando se especifican explícitamente. A diferencia de esta convención, JavaScript originalmente adoptó de forma predeterminada la base 8 para las cadenas que comienzan con "0", lo que provocó confusión en los desarrolladores y errores de software . [17] Esto se desaconsejó en ECMAScript 3 y se eliminó en ECMAScript 5. [18] ParseInteger(string, radix)

Algunas comunidades de desarrollo como FreeBSD [19] utilizan POLA como una de las pautas para lograr una experiencia de usuario nada sorprendente.

Ver también

Notas

  1. ^ Alternativamente, una ley de mínima sorpresa o una regla de mínima sorpresa . [2] [3]

Referencias

  1. ^ Seebach, Peter (1 de agosto de 2001). "El principio del menor asombro". El usuario malhumorado . IBM DeveloperWorks . Consultado el 23 de enero de 2014 .
  2. ^ abc Raymond, Eric Steven (2003). "Aplicación de la regla de la menor sorpresa". El arte de la programación Unix. preguntas frecuentes.org. pag. 20.ISBN 978-0-13-142901-7. Consultado el 23 de agosto de 2020 .
  3. ^ James, Geoffrey (1987). El Tao de la programación. 4.1. ISBN 0-931137-07-1. Consultado el 5 de febrero de 2014 .
  4. ^ abc Cowlishaw, MF (1984). «El diseño del lenguaje REXX» (PDF) . Revista de sistemas IBM . 23 (4): 333. doi : 10.1147/sj.234.0326 . Consultado el 23 de enero de 2014 . ¿Podría haber un alto factor de asombro asociado con la nueva característica? Si el usuario accidentalmente aplica mal una característica y causa lo que le parece un resultado impredecible, esa característica tiene un alto factor de asombro y, por lo tanto, es indeseable. Si una característica necesaria tiene un alto factor de asombro, puede ser necesario rediseñar la característica.
  5. ^ Southworth, RN (diciembre de 1967). Southworth, enfermera registrada (ed.). "Propuesta de pseudonombre PL/I". Avisos ACM SIGPLAN . 2 (12) (Boletín PL/I nº 5 ed.): 6. doi :10.1145/1139502.1139504. ISSN  0362-1340. S2CID  12180929.
  6. ^ Fecha, CJ (11 de febrero de 2022). Database Dreaming Volumen I: Escritos relacionales revisados ​​y revividos. Publicaciones técnicas. Capítulo 2, referencia 36. ISBN 978-1-63462-984-3. Como me comentó una vez un amigo mío (esto debe haber sido a finales de la década de 1960), independientemente de lo que se pueda decir al respecto, hay una cosa que PL/I definitivamente no es, y es "el lenguaje que menos asombra".
  7. ^ Tremblay, Jean-Paul; Sorenson, Paul G. (1985). La teoría y la práctica de la escritura compiladora . Nueva York: McGraw-Hill. ISBN 9780070651616. PL/I es el principal mal ejemplo en este caso; está plagado de construcciones que no hacen lo que piensa el programador, como se ejemplifica con la división FIJA.
  8. ^ Múltiples fuentes:
    • Barrón, David William (1968). Lenguajes de programación comparativos . Estadounidense Elsevier, Nueva York.[ página necesaria ]
    • Holt, Richard C. (mayo de 1973). "Enseñanza de la enfermedad mortal: (o) introducción a la programación informática utilizando PL/I". Avisos ACM SIGPLAN . 8 (5): 8–23. doi :10.1145/986948.986950. desafortunadamente, la expresión '25 + 1/3' produce 5,33333333333333
    • Golden, Donald (octubre de 1980). "Un alegato por un software amigable". Notas de ingeniería de software de ACM SIGSOFT . 5 (4): 4–5. doi : 10.1145/1010884.1010885 . Para que el programador que no es PL/I llegue a la conclusión errónea de que PL/I no tiene defectos, considere los siguientes ejemplos de la hostilidad de PL/I. Las reglas para la conversión de tipos en PL/I son suficientes para provocar úlceras en los programadores. ¿Qué otro lenguaje produciría un error fatal al evaluar la expresión (25 + 1/3)? (Igual de malo, si suprime la verificación de errores, el resultado de evaluar la expresión es 5.3333...)
    • Stansifer, Ryan D. (1995). El estudio de los lenguajes de programación . Englewood Cliffs, Nueva Jersey: Prentice Hall. pag. 123.ISBN​ 978-0-13-726936-5. PL/I es famoso en este sentido, ya que convierte casi cualquier tipo en cualquier otro tipo, a veces con resultados sorprendentes. Considere la expresión 1/3 + 25. En PL/I esta expresión tiene el valor 5,33333333333. ¿Por qué? Un tercio se calcula con 15 dígitos de precisión, 14 a la derecha del punto decimal. Luego se fuerza a 25 a tener la misma precisión, ¡perdiéndose el dígito más significativo, 2! Esto genera un error en PL/I, pero el valor predeterminado es ignorarlo. Esto apareció impreso por primera vez en Barron 1968, donde se presenta como una violación de una ley popular del diseño del lenguaje: "la ley del menor asombro".
    • "Enterprise PL/I para z/OS 5.3: referencia del lenguaje" (PDF) . IBM. Marzo de 2021. págs. 57–62. Considere la siguiente expresión: 25+1/3. El resultado de evaluar esta expresión no está definido y se genera la condición FIXEDOVERFLOW porque la división FIXED da como resultado un valor de máxima precisión definida por la implementación. [...] Los resultados de las dos evaluaciones se alcanzan como se muestra en la Tabla 29.
  9. ^ Bergeron, RD; Gannon, JD; Shecter, DP; Tompa, FW; Presa, A. Van (1972). "Lenguajes de programación de sistemas". Avances en Computadoras . 12 : 175–284. doi :10.1016/s0065-2458(08)60510-0. ISBN 9780120121120.
  10. ^ Saltzer, JH; Kaashoek, Frans (2009). Principios del diseño de sistemas informáticos: una introducción. Morgan Kaufman. pag. 85.ISBN 978-0-12-374957-4.
  11. ^ Petroutsos, Evangelos (2010). Dominar Microsoft Visual Basic 2010. Wiley. pag. 133.ISBN 978-0-470-53287-4.
  12. ^ Bloch, Josué (2006). "Cómo diseñar una buena API y por qué es importante". Procediendo OOPSLA '06 Compañero del 21º simposio ACM SIGPLAN sobre sistemas, lenguajes y aplicaciones de programación orientada a objetos . Asociación para Maquinaria de Computación. págs. 506–7. doi :10.1145/1176617.1176622. ISBN 1-59593-491-X. S2CID  27230400.
  13. ^ Vivian (21 de junio de 2013). "Atajos de teclado para Gmail". Corporación Google . Consultado el 27 de julio de 2013 .
  14. ^ "Atajos de teclado para YouTube - Ayuda de YouTube". soporte.google.com . Consultado el 16 de agosto de 2022 .
  15. ^ "Uso de atajos de teclado". Atlassiano . Consultado el 27 de julio de 2013 .
  16. ^ Keizer, G. (1 de marzo de 2010). "Microsoft: no presione la tecla F1 en Windows XP". Mundo de la informática . Consultado el 10 de noviembre de 2019 .
  17. ^ "¿Por qué la base de parseInt de JavaScript tiene el valor predeterminado 8?". Desbordamiento de pila . 8 de abril de 2011.
  18. ^ "parseInt()", Mozilla Developer Network (MDN) , si la cadena de entrada comienza con "0" (un cero), se supone que la base es 8 (octal) o 10 (decimal). La base exacta que se elige depende de la implementación. ECMAScript 5 aclara que se debe utilizar 10 (decimal), pero no todos los navegadores lo admiten todavía.
  19. ^ "Preguntas frecuentes sobre FreeBSD 2.X, 3.X y 4.X". FreeBSD. 2002-06-11 . Consultado el 15 de febrero de 2023 .

enlaces externos