Un proyecto de sistemas web debe incorporar desde su concepción los principios de usabilidad web “UX”. También, garantizar su funcionamiento interno y las relaciones con otros elementos, dentro y fuera de su sistema. Cuando se consideran estos y otros elementos, estamos aplicando el enfoque sistémico, algo que no se debe tomar a la ligera al momento de diseñar un sitio web o un sistema para la web. Son procesos que requieren planificación y estrategia.
Al momento de escribir este artículo, he diseñado cerca de 50 sitios web y participado en el diseño de al menos tres aplicaciones web. En algunos casos, trabajé a código, desde cero y en otros, con herramientas con WordPress o algún Framework. Y en cada caso, me tomé el tiempo justo para hacer el levantamiento de información y trabajar de forma metódica, en el proceso de diseño y desarrollo de sitio/aplicación. Para algunos clientes este paso, es innecesario, se traduce en pérdida de tiempo. Otros más conscientes de la importancia de estas tareas al inicio, lo valoran.
El objetivo es este artículo es desarrollar un punto de vista analítico y ético en el diseñador/programador web para que valores desde la etapa inicial de un proyecto de sistemas web, la importancia de
n este artículo llamo a la reflexión desde un punto de vista analítico y ético, cada diseñador/programador/maquetador web debe tomar muy en serio la etapa inicial del proyecto, porque es ahí cuando conocer realmente el modelo de negocio para el cual se hará el diseño. Es también, donde conocerás qué problemas se deben resolver y cuáles son las soluciones adecuadas para ello.
¿Por qué te digo esto?
Habrás notado que por lo general cuando llegas a un sitio que no posee sistemas o no tiene actualizados sus procesos, lo primero que te dicen es: “Hay muchos problemas o sistemas por hacer, son estos x, y, z, pero puedes hacer una propuesta”. No se dan cuenta que solo revelaron procesos de 1 o 2 sistemas que se alimentan entre sí, y que la mayoría de las veces genera duplicidad de información o incoherencia en la data porque todos manejan una parte de forma individual. Los usuarios buscan proteger la información como si fuera de ellos y no de la organización, cosa que se puede resolver con un sistema central y privilegios por usuario y tipo de información.
Otro caso interesante, es cuando el sistema actual no ofrece los resultados esperados en el tiempo porque la tecnología se les adelantó o la empresa creció y no lo previeron, cuya solución sería a priori, actualizar primero los procesos y luego, evaluar la necesidad de un sistema. Debemos tener claros que problemas se resuelven optimizando procesos manuales, a través de sistemas y que modelo les funcionará mejor: un sistema interno, un sistema web, app o tienda virtual. Lo que no debemos hacer como analistas y desarrolladores es llenar la empresa de sistemas que no solucionen problemas ni perduren en el tiempo, mucho menos jugar con la inversión del negocio.
[Tweet “Ya deja de diseñar sistemas muertos, sin enfoque ni plan o estategia. Estudia referentes”]Entonces, ¿Cuál es el problema de fondo aquí?
A simple vista puedo mencionar 3 desde el analista:
El primero es que tiene una capacidad deficiente en resolución de problemas o está realizando las tareas por cumplir con un objetivo personal: Es tesista, sumar un sistema a su curriculum o el ingreso monetario.
Lo segundo, es no solicitar el manual de procedimientos del departamento, empresa u organización para quién realiza el proyecto, en cuyo caso debe exigirse o realizarse antes. Si no optimizas los procesos, es seguro que tu sistema arroje muchos problemas.
El tercer punto, todo futuro ingeniero de sistemas o inform´ática debe comprender y manejar el enfoque sistémico, y aplicarlo en cada desarrollo. Esto le permitirá ofrecer una solución más optimizada y adaptada a la realidad de la organización.
La realidad
Muchas veces quién te contrata o asigna un proyecto de sistemas dice: Quiero que el sistema haga esto, que mi personal pueda actualizar desde cualquier punto o el cliente consulte desde el móvil. Que los reportes sean un resumen que se entienda. ¡Ahí está! Esta es la visión que tiene tu cliente. Él solo sale que la tecnología puede ayudarle a resolver un problema, que sus procesos pueden realizar con mayor rapidez y que sus clientes estarán más satisfechos con esta actualización tecnológica.
¿Qué debe hacer el analista de sistemas?
Analizar – Analizar – Analizar
Proponer – Proponer – Proponer
Pero desde 3 dimensiones éticas básicas importantes, en la que si no sabes no te preocupes. Sé honesto contigo mismo y luego con tu cliente. Algo que es grandioso hoy día es que la información está disponible, los c´ódigos, las comunidades de desarrollo, manuales, videotutoriales. Estas dimensiones son usabilidad, factibilidad y escalabilidad.
Usabilidad
Este concepto nos dice que el sistema debe ser realmente útil, que sí solucionará un problema o satisfará a una comunidad de usuarios. Llega en el momento justo para automatizar, agilizar procesos, ahorrar recursos en papelería, generar reportes de las noticias del día a día, mantener al menos un par de horas a los usuarios en algún juego o aplicación de entretenimiento, fotos, etc. Es decir, el proyecto a desarrollar es esperado por el usuario, quien lo adopta como parte de sus tareas diarias. Se cumple entonces el primer objetivo ¡Se resolvió un problema!
Pero no es todo, con la incorporación de las tecnologías web en nuestras vidas, el incremento del uso de dispositivos móviles, las redes sociales, el ecommerce y el internet de las cosas, entre otros, debemos entender la usabilidad más allá del “uso de algo”. La usabilidad actualmente viene dada por las preferencias de los usuarios, entender como él interactúa con nuestras aplicaciones desde cualquier dispositivo y entorno, e incorporar este conocimiento en nuestro proceso de desarrollo.
[Tweet “Este sistema es muy bonito, pero ¿Qué hace?”]En caso de desarrollo de apps, agrego también el aporte de Google para permitir la aceleración de carga de las páginas en el móvil entre otras herramientas, que nos permiten evaluar un sin fin de aspectos para optimizar nuestros proyectos web. Entonces, ya el analista programador web no solo requiere conocimientos de lógica, análisis, metodologías para obtener requerimientos, sino que si queremos ser competitivos e ir de la mano de las tecnologías actuales, debemos aprender de posicionamiento en buscadores y usabilidad web.
Checklist que te servirá para evaluar 15 aspectos de la usabilidad de tu proyecto web
- Diseño de interfaz sobre fondo blanco
- Máximo 3 colores en el diseño general del sistema
- Tamaño de letra apto para todo tipo de usuario. Mínimo 12, máximo 18
- Tiempo de respuestas adecuados
- Mensajes de error o advertencia para el usuario
- Validación del tipo de datos
- Predicción o carga previa de datos para ahorrar tiempo en llenado de formularios
- Impresión por pantalla, en formato HTML o PDF. O por impresora de forma correcta
- Validar acceso de usuario
- Organización lógica de datos en pantalla
- Prueba de resultados de los procesos
- Si tiene versión móvil, adaptación a la resolución de pantalla de distintos dispositivos
- Posibilidad de hacer respaldos
- Corrección ortográfica
- Niveles de seguridad para asegurar captura y resguardo de datos a través de formularios.
Factibilidad
Pensar que un proyecto sea factible no significa que llegue a feliz termino y se mantenga al menos 1 año en funcionamiento. Aquí retomo lo dicho antes, es necesario entender el problema y basarnos en presupuestos reales, sin olvidar una constante comunicación con nuestro cliente.
Las metodologías ágiles nos facilitan revisar y adaptar nuestros procesos y sus resultados a las realidades del sistema, esto debe incluir la factibilidad y el enfoque del sistema. No necesariamente tu sistema debe ser muy grande o muy pequeño para ser útil, pero si es necesario que resuelva un problema con los recursos disponibles para ser factible.
Los tipos de factibilidad que manejamos con frecuencia son técnica, operativa y económica.
Factibilidad técnica
Este estudio debe responder a si existe la tecnología requerida o si se está en capacidad de adquirirla, sin poner el riesgo la ejecución del proyecto. Es probable que quién te contrate ya cuenta con los equipos necesarios, y si no son de última tecnología y se encuentran en buenas condiciones para alargar su vida útil, te recomiendo usar como sistema operativo GNU/Linux con una interfaz liviana o configurar los equipos como servidor web para trabajar en la nube. Estas son solo algunas opciones, hay muchas que puedes evaluar y proponer para aportar soluciones de hardware y software.
[Tweet “¡Aprende sobre la marcha y busca un mentor o asesor que te guíe en el desarrollo del proyecto!”]Factibilidad operativa
Analizar desde el inicio del proyecto si esta propuesta de sistema resolverá un problema en particular te ayudará a definir la factibilidad operativa. El enfoque de sistemas nos permite evaluar quiénes interactuarán con el sistema, de dónde se alimenta o si alimentará otro sistema, y cuáles son los procesos relevantes que lo conforman.
De nuevo hablamos de la usabilidad en sistemas web, ya que debe cumplir con ciertas dimensiones éticas y de adaptabilidad hacia los dispositivos y los usuarios, quienes serán los usuarios finales. La resistencia del usuario frente a la implementación de nuevas tecnologías es otro punto a tener presente para mantener operativo el sistema, por lo que quizás sea necesario adelantar un plan para fortalecer las competencias digitales previo a la inducción en el uso del nuevo software.
Factibilidad económica
La inversión económica es tan importante como el retorno de inversión, por lo tanto somos corresponsables dentro de cada proyecto en el que participamos. Como futuros ingenieros de sistemas e informática, o ya en ejercicio debemos entender que se debe evaluar y demostrar la inversión económica para cumplir con los objetivos planteados en el proyecto de sistemas web.
Incorporo en este punto la posibilidad de implementar software libre en algunos requerimientos, como el sistema operativo, servidor web, servicios de comunicaciones, paquetes de ofimática, sistemas de gestión de base de datos, editor web, editor gráfico y muchos otros disponibles desde los repositorios oficiales con licencia GPL. Todos ellos ayudan a ser más viable los proyectos desde el punto de vista económico.
Escalabilidad
Un error que puede cometerse en el desarrollo de sistemas tradicionales u orientados a la web es no tener presente la posibilidad hacerlo escalable. No podemos seguir diseñando sistemas que resuelvan un problema por un tiempo determinado ni hacer que nuestros clientes dependan exclusivamente de nuestra visión para crecer.
Ya antes te mencioné que el proyecto y sus soluciones deben darse en el marco de una sustanciosa comunicación entre el cliente y el analista programador, o ingeniero responsable del proyecto. Por otro lado, la acciones dentro de la escalabilidad no se dan solo en el momento de plantearse el proyecto o implementar el sistema, debe ser parte de un monitoreo continuo y basado en un plan que permita identificar el momento en que se requiere optimizar el sistema, y qué aspecto.
En sistemas web podemos identificar 5 aspectos que nos darán alerta de escalabilidad
- Código: Optimizar y minificar el código para acelerar la descarga de las páginas que conforman el sitio, su análisis y tiempo de ejecución. Esto se realiza sobre código HTML, JavaScript y CSS. Otras formas: Indentar el código, reutilizar variables, reordenar el código, eliminar el código innecesaria, emplear AMP de Google, etc.
- Diseño: Accesibilidad y usabilidad en la interfaz
- Hardware: Necesidad de mayores recursos para almacenamiento y rapidez
- Producto/servicio: Evoluci´ón, mejoras o inserción de nuevos productos/servicios
- Audiencia: El sistema debe satisfacer las necesidades del usuario
Conclusión
¡Aprender es la clave! Este artículo es una breve recopilación de consejos dirigidos a quiénes se inician en el desarrollo de sistemas web, estudian ingeniería de sistemas o informática y para quiénes llevan el medio digital en el corazón. El objetivo es despertar un apetito por el enfoque sistémico y ayudarles a internalizar las dimensión éticas que debemos conservar frente a cualquier proyecto de sistemas, dentro y fuera de la web.
Aún a este punto, me sigo considerando una aprendiz de este mar digital cada día más profundo, interesante y fascinante que son los sistemas. Resalto la corresponsabilidad que tenemos al participar en cada proyecto, donde no solo está en juego la confianza y ética del especialista frente a los resultados, sino la inversión de nuestros clientes.
Es necesario entonces, comprender e implementar desde el principio las 3 dimensiones éticas: Usabilidad, Factibilidad y Escalabilidad desde el enfoque de sistemas en la web.