Human Interface Guidelines/Design Fundamentals/Key Design Principles/lang-es

Principios Claves del Diseño
Piso bajo, sin techo: este mantra deberá guiar todos los esfuerzos de desarrollo para la OLPC. Todas las actividades e interfaces deben ser diseñadas de modo tal de ser lo más simple e intuitivas posible para usuarios de todas las edades, nacionalidades y niveles de experiencia con computadoras. Al mismo tiempo, tampoco deseamos imponer limitantes innecesarias en el software. En cambio, esperamos crear una plataforma adecuada para cualquier tipo de expresión creativa que provea un piso bajo al no experimentado, pero que al mismo tiempo no imponga un techo para los que lo sean. Esta es una meta digna, pero que requerirá de un esfuerzo genuino por parte de los desarrolladores, que deberán incorporar muchos aspectos al momento de diseñar. Los siguientes puntos, es una lista (incompleta) que provee puntos iniciales para dichas consideraciones.

Performance
La laptop de la OLPC rompe con la tendencia de "más, más rápido, más pesado"; apuntamos a proveer una computadora diseñada para satisfacer las necesidades de los chicos dentro del contexto de su aprendizaje, no las necesidades de hiper-juegos o aplicaciones de oficina. Si estamos, sin embargo, trabajando dentro de las restricciones del costo de componentes, robustez, y consumo energético. Para satisfacer dichas restricciones, hemos optado por memoria flash NAND en vez de un disco rígido y unos modestos 256MiB (Por favor vean Especificacion de hardware). Por lo tanto, los desarrolladores deben hacer todos los esfuerzos posibles para que el código que escriban resulte en el menor consumo de memoria.

Dada la inexistencia de espacio de memoria virtual (swap) en la laptop, solo un número limitado de actividades podrán correr simultáneamente; la IU de Sugar presenta éstos detalles a los chicos. La pantalla o vista del Hogar muestra un anillo de actividades que contiene los íconos que representan cada instancia de una actividad en curso. El tamaño que una dada actividad ocupa en el anillo representa su consumo de memoria; cuando el anillo se llena, será imposible comenzar otra actividad hasta que los recursos necesarios sean liberados. Estas limitaciones deben ser tenidas en cuenta al momento de desarrollar actividades, dado que tendrá un mayor impacto en la performance del software en la laptop que en otras plataformas.

Usabilidad
La OLPC pone un énfasis en la capacidad de descubrir y usabilidad (de la interfaz) dada nuestra audiencia. La usabilidad es intrínseca al comportamiento de las actividades, la diagramación de los botones y herramientas, y las respuestas y estímulos que la interfaz provea al chico cuando interactúan con ella. En última instancia, las decisiones de diseño que harán a la actividad usable o no dependerán enormemente del tipo de actividad desarrollada, y dependerá de Uds. el considerar cuidadosamente los tipos de interacciones que los chicos esperan de ella. Como regla general, si la interfaz provista hace lo que el chico espera de ella, es un buen comienzo. Sin embargo, dado que es bastante difícil saber que es lo esperado&mdash;y en la práctica no todos los chicos esperan las mismas cosas&mdash;no hay sustituto como las pruebas con usuarios.

Simpleza
Hemos diseñado la totalidad de la interfaz de la laptop con el objetivo de la simplicidad. Puede ser muy tentador&mdash;y bastante fácil&mdash;el agregar una sobre-abundancia de funcionalidades al software: la disponibilidad de MIPS y memoria usualmente agudizan el problema de software-pesado. Las limitaciones del hardware de la laptop nos guían hacia soluciones más concisas y diseñar cosas simples.

Simple no es sinónimo de limitado. La OLPC aspira demostrarle al mundo que los controles simples&mdash;casi mínimo&mdash;tienen un enorme poder expresivo. Evitemos interfaces sobrecargadas que hacen demasiadas cosas, y limitemos los controles a esas tareas inmediatamente relevantes a la tarea en cuestion. En vez de crear la "cortaplumas suiza" como actividad, pensemos en la laptop en si como la cortaplumas, y desarrollemos una herramienta particular que hace una cosa para esa cortaplumas, y que lo haga bien. Cuando todas las actividades se adhieran a esta idea, el verdadero poder de la laptop será evidente.

Confiabilidad
Es obvio que queremos evitar situaciones donde las cosas vayan mal; ésta sería la meta de todo el software. Nuestro compromiso es asegurar que el framework de la IU evite que una actividad arruine al sistema. Los desarrolladores deberán considerar el incorporar alternativas de tipo "fallo-suave" (fail-soft) en sus diseños, tal como incorporar un comportamiento apropiado ante la terminación espontánea de una actividad.

Seguridad
La seguridad se detalla en otras partes del wiki (ver Bitfrost). Nuestro objetivo es protegerse de cinco tipos de "cosas malas" que el software puede hacer: Es importante la inclusión de medidas anti-robo y mecanismos estándar de filtrado de contenido objetable.
 * 1) dañar la laptop;
 * 2) comprometer la privacidad;
 * 3) dañar los datos de los chicos;
 * 4) hacer cosas malas a otras personas; y
 * 5) suplantar o personificar al chico.

Desde la perspectiva de la interfaz del usuario, es importante que estos objetivos se logren sin la utilización de menús, diálogos, contraseñas, etc., ya que son incomprensibles o carecen de sentido para la mayoría de la gente.

Adaptabilidad
Existen varias condiciones de uso que deben ser tomadas en cuenta para diseñar actividades: la laptop puede operar en modo de escala de grises (solar) o color (interior); la malla&mdash;siempre disponible&mdash;puede o no estar conectada a la internet cuando la actividad este activa; la laptop puede estar configurada en modo laptop (tanto el teclado y la pantalla están accesibles) o en modo consola (controles de juego, cámara, micrófono y parlantes únicamente). Niveles de señal, y por ende ancho de banda, pueden fluctuar, y por momentos los participantes en una actividad pueden desaparecer momentáneamente. Las actividades deberán manejar estas situaciones con cuidado. Ej: perdida temporal de conectividad debería ser manejado silenciosamente, y la reconexión de un individuo a una actividad en la que estaban participando con anterioridad debería ocurrir de modo que ningún efecto colateral sea evidente tal como lo detalla la guía sobre la robustez de las actividades.

Recuperabilidad
La recuperabilidad es una característica fundamental para permitir la exploración. Siendo la exploración creativa una de las metas principales de la OLPC, esta capacidad es de máxima importancia para la laptop. Cuando un chico sabe que tiene un plan alternativo&mdash;un modo de volver al estado actual&mdash;será mucho mas propenso a explorar más allá de sus fronteras, experimentando con nuevas herramientas y medios más creativos de expresión.

El diario provee una noción parcial de recuperabilidad, dado que de algún modo representa una copia de respaldo (backup) incremental. La habilidad de un chico de elegir "mantener" cualquier cosa sobre la que están trabajando en su estado actual refuerza esta idea.

Sin embargo, el medio primario y esencial de recuperabilidad sigue siendo la habilidad de deshacer sus acciones. Por supuesto, la noción de des-hacer/re-hacer se torna complicada en el contexto de una edición colaborativa, ya que impone un límite al alcance sobre lo que es posible deshacer, puesto que los conflictos son muy probables entre lo que un chico quiere deshacer y las cosas que otro chico ha cambiado desde entonces. Sin embargo, estamos dedicados a proveer ésta funcionalidad en la medida que sea posible, y las actividades deben esmerarse en soportarla al máximo de sus capacidades.

(Revisiones futuras del teclado pueden incluso tener una tecla de des-hacer/re-hacer con el objetivo de reforzar ésta idea.)

Movilidad
Por supuesto, como con todas las computadoras portátiles, una cierta noción general de movilidad es intrínseca a la laptop. Sin embargo, en manos de los chicos, el nivel de movilidad llega a nuevos niveles, ya que podemos esperar que no solo las lleven hacia y desde la escuela, sino también en caminatas, al parque, o un número elevado de lugares donde puedan aprender y experimentar al mundo. Las características físicas han sido diseñadas con la durabilidad en mente. Lo importante a considerar es el efecto que dicha movilidad puede, y debería tener sobre las actividades mismas. El lente de la cámara incorporada cobra otra dimensión cuando se lo trata no como una simple cámara-web, sino como un medio para capturar al mundo que nos rodea, tanto en el interior como al aire libre.

Transparencia
La OLPC también espera poder incitar a los chicos a usar las laptops para explorar la tecnología bajo la superficie. Con éste objetivo, es que la tecla para ver código fuente fue agregada al teclado de la laptop, proveyendo así la capacidad de acceder al código que hace posible las actividades que usan a diario. Dicha tecla permitirá a aquellos que les interese investigar las capas de abstracción, sumergiéndose cada vez más en el código a medida que aprenden.

Para permitir la exploración por capas es que la OLPC está escrito lo más posible en Python, un lenguaje interpretado, permitiendo así al chico ver el código fuente. Esto quiere decir que, aparte de las prácticas habituales del buen código, el código debe ser claro y estar bien documentado. Los lineamientos de estilo PEP 8 para Python proveen un excelente recurso para ello, y la OLPC recomienda que los desarrolladores se adhieran a dichas prácticas salvo razones excepcionales.

Accesibilidad
Existen multiples aspectos relacionados con la accesibilidad en unos lineamientos de interfaz humana. Recién hemos comenzado a explicitar los aspectos generales en la página de Accesibilidad.
 * Usar la interfaz sólo con el teclado (sin ratón o trackpad)
 * Usar la interfaz sin necesidad de poder distinguir colores (un porción significativa posee algún grado de daltonismo)
 * Proveer iconos y tipografías grandes para aquellos que no tienen una visión perfecta (pero que todavía ven cosas agrandadas - ej: tipografías de 18 puntos)
 * Usar el teclado sin necesitar el apretar dos teclas al mismo tiempo (todos los modificadores deben funcionar con la funcionalidad de AccessX)
 * Soportar el acceso programático a la GUI (que en términos prácticos implica soportar ATK en Sugar y todas las actividades)
 * Ya sea distribuir con un conjunto de aplicaciones de asistencia (sería un lector de pantalla una "actividad"?), o hacer trivial su descarga
 * Proveer algún mecanismo que permita al usuario descubrir el soporte de accesibilidad y habilitar lo necesario (Windows XP & Vista tienen un wizard a tal fin; no disponemos de buena tecnología proveniente de GNOME que podamos utilizar desafortunadamente; la gente de accesibilidad de Ubuntu son quizás los que más avanzado están en esto)