sábado, 23 de febrero de 2013

Amor a primera vista (entre interfaces)



Dicen que la apariencia no lo es todo, pero ¿hay alguien que dude que la primera impresión causa un fuerte impacto, que incluso condiciona los posteriores encuentros?

La capa de presentación de las aplicaciones está tomando especial relevancia en los últimos tiempos. A esto ha contribuido sin lugar a dudas las mejoras tecnológicas y el alto grado de dedicación y refinamiento de las mismas de gigantes como Apple, Microsoft o Google.


No cabe duda que las interfaces son la única parte visible que percibe el usuario de todo el desarrollo SW. Esto provoca que una aplicación puede ser todo lo compleja que queramos y la capa de negocio ser un auténtico tesoro apoyándose en algoritmos de gran calidad, pero si la interfaz no está bien diseñada o no se adecua a las condiciones del usuario, todo este trabajo no será valorado tal y como se merece.

Tal importancia adquiere la interfaz, que determinadas metodologías, algunas de ellas tan importantes como la de desarrollo de software Lean, inciden en que el proceso de recopilación de requisitos de usuarios podría simplificarse mediante la mera presentación de las pantallas a los usuarios finales (aún sin contenido funcional) para que estos puedan hacer sus aportes. No me parece una idea descabellada en absoluto.

Ciertamente, la ingeniería del SW hasta el día de hoy ha estado muy basada en los requisitos. Todo gira alrededor de las funcionalidades que debe realizar un programa, y hasta fases avanzadas de diseño no se tienen muy en cuenta las interfaces. Quizás habría que afrontar un cambio de paradigma, y centrar la ingeniería del SW más en las personas, que al fin y al cabo es para las cuales se construye una determinada aplicación. Con esta nueva forma de actuar, las aplicaciones quizás se amolden mejor a lo que se espera de ellas en cuanto a usabilidad se refiere (tema sobre el que ya hablé aquí).

La tendencia actual en este mundo del diseño de interfaces es tratar de ofrecer aplicaciones elegantes, bonitas y de fácil manejo, evitando al máximo la complejidad. Ciertamente, conjugar esta simplicidad con los deseos de las personas es una tarea ardua y existen grandes conflictos, como por ejemplo en los siguientes casos:
  • En aplicaciones que tienen un ámbito y alcance extenso con diversidad de usuarios, o que sustenten procedimientos complejos en donde continuamente se van a solicitar nuevas mejoras funcionales.
  • Programas destinados a sustituir a otros existentes, o donde es posible otra forma de trabajar sin hacer uso de la aplicación, pero igualmente válida.
Es necesario conjugar las necesidades de los usuarios con mantener la simplicidad de la aplicación.

Sin referirme a cuestiones de estética y bonito diseño, que en mi opinión son menos importantes en nuestro ámbito de lo que podría ser por ejemplo para una aplicación móvil, es necesario destacar lo siguiente para lograr una correcta interfaz de usuario:
  • Desacoplamiento entre capas. La imagen institucional de las aplicaciones de la Administración Pública suele cambiar periódicamente, ya sea por modernización, cambios ministeriales, nuevas sedes electrónicas, etc. Si la capa de presentación está desligada de la lógica de negocio, estos cambios futuros serán mucho más sencillos de abordar. Además, favorece el desarrollo en paralelo de diseñadores, desarrolladores y jefes de proyecto, lo que en definitiva reduce el tiempo de codificación. Por esta razón, imperan tanto actualmente patrones del tipo modelo-vista- controlador. Si bien los frameworks de desarrollo vienen con estos patrones, al final es el programador el que realmente establece un diseño desacoplado o no, y la diferencia a efectos de mantenimiento es abismal.
  • Agilidad. Una vez que la aplicación permite al usuario trabajar con la misma, lo que éste va a demandar es mayor rapidez en su uso. Para ello, es importante conocer bien la forma de trabajo del usuario a fin de optimizar la interfaz. De este modo, desarrollos como cargas masivas de datos, grabado de los datos más importantes en una sola pantalla, poder copiar y pegar información, establecer caminos rápidos para acceso a lo más utilizado etc., cobran especial importancia.
  • Coherencia. Me refiero a cuestiones tan básicas como que la aplicación siempre actúe de la misma forma ante eventos similares. Por ejemplo, en una aplicación que gestiona un procedimiento administrativo, si al dar de alta un expediente la aplicación lanza un mensaje por pantalla indicando si se ha realizado o no correctamente, cuando se dé de alta otro elemento, como puede ser una alegación o un recurso, que se comporte de la misma forma y que salga el mismo mensaje. De lo contrario, el usuario tendrá dudas sobre si la operación se ha efectuado bien. Igualmente, si al hacer una operación que puede llevar un tiempo, se muestra un texto para confirmar al usuario que la aplicación está trabajando (una buena práctica por cierto), que en el resto de operaciones el comportamiento sea idéntico.
  • Uniformidad. Finalmente, cabe reseñar la conveniencia de unificar criterios en los diseños de las aplicaciones de las Administraciones Públicas. Esto hace que la curva de aprendizaje se vea reducida y su utilización se incremente. Ahora que tanto se habla de establecer servicios comunes, no se debe obviar definir maquetas de desarrollo para las aplicaciones de las Administraciones.
    Es importante no reinventar la rueda y adoptar patrones de diseño ampliamente aceptados como pueden ser la gestión de menús de Microsoft. Es decir, si tienes que gestionar un álbum de fotos, en vez de diseñarte tu propia solución, es mejor adoptar la solución de Facebook que todo el mundo conoce y es de uso generalizado.
En conclusión, las interfaces de usuario están creciendo en importancia y no se trata de una moda, sino que los desarrolladores se están dando cuenta de su transcendencia. Aspectos en el diseño de las mismas tales como sencillez, facilidad de uso, coherencia y empleo de los patrones ya existentes son clave, y se debe invertir tiempo y recursos hasta lograr el salto de calidad cualitativo que supone su adecuada implantación.

No hay comentarios:

Publicar un comentario