Los ingenieros de software solemos cometer el error de esperar que los usuarios nos den sus requerimientos; ellos nunca lo podrán hacer, porque no están entrenados en desarrollo de software, pero insistimos en hacer preguntas como "¿Qué es lo que quieres?", "¿Usamos tal herramienta o tal otra?", "¿Será en plataforma móvil, web o de escritorio?", "¿Lo quieres responsivo?".
Ya que estamos en eso, también debemos dejar de enojarnos cuando nos dicen cosas como "quiero que sea bonito y rápido".
La brecha que existe entre el vocabulario y entendimiento entre usuarios y desarrolladores debe achicarse, en vez de agrandarse. Los usuarios nos hablarán con su vocabulario habitual, en el contexto que conocen; nuestra labor es entender eso para transformarlo en los requerimientos que guiarán la construcción de un gran software. El primer paso es recolectar la información.
Identificar el problema
Descubrir las necesidades de los involucrados en el software es un reto. Es un proceso analítico y colaborativo con actividades para encontrar y definir las necesidades.
Los usuarios no pueden definir con precisión técnica cuál es el software que necesitan, por lo tanto, es labor de los ingenieros conseguir lo siguiente:
Tener un ambiente adecuado para facilitar la exploración y comunicación
Entender las actividades de los usuarios.
¿Qué actividades quiere completar el usuario y cómo podemos ayudar?
¿Cuáles son las aspiraciones del usuario y cómo podemos ayudar a que las alcance?
¿Qué relación esperan que establezcamos con ellos?
¿Cuál es el valor que realmente esperan recibir?
Entender cómo toman decisiones
Entender lo que consideran innecesario, obsoleto o ineficiente.
Para esto, debemos trabajar primero en recolectar la información y resistir la tentación de diseñar el software hasta que has entendido el problema. En este proceso, seleccionamos de entre un conjunto de técnicas las que mejor se adapten a nuestro proyecto y a nuestros usuarios.
Técnicas para recolectar información
Antes de comenzar con cualquier intento de proponer una solución de software, debemos reunir la información suficiente para conocer, cuando menos, el contexto y las características principales de nuestros usuarios y su entorno. Este proceso puede durar unas pocas semanas, y en ellas recolectamos información.
Existen múltiples técnicas para descubrir las necesidades de usuarios de software
Colaborativas: Interacción con los usuarios
Independientes: Descubres información por tu cuenta
Algunas de las técnicas son:
Entrevistas
Talleres
Focus groups
Observación estructurada del entorno
Encuestas
Análisis de documentos
Evaluación heurística
No uses solamente una, diferentes usuarios preferirán alternativas distintas
Detallemos cada una
Entrevistas
Las entrevistas son actividades colaborativas. El propósito es reunirte directamente con los usuarios, ya sea individualmente o en grupos pequeños, para preguntarles directamente y conocer su información.
Las entrevistas tienen un objetivo y propósito definidos, que se plasma en un cuestionario o una guía, y una duración, establecida en una agenda.
En el proceso de la entrevista debes presentarte, revisar la agenda con los asistentes, presentar los objetivos y resolver las preguntas iniciales. Tu objetivo es escuchar, así que hazlo activamente. Haz la pregunta y deja que los asistentes sean quienes hablen; solamente debes intervenir para aclarar algo o mantener el enfoque de la entrevista.
Esta técnica es útil cuando has identificado a los usuarios más representativos de un grupo y estos tienen poco tiempo para reunirse. Así que aprovecha todo el tiempo con ellos y prepara una buena lista de preguntas.
Talleres
Son reuniones formales y estructuradas, en las que un grupo de personas y expertos trabajan juntos. En esta colaboración, se usan diferentes herramientas para crear un modelo de la situación actual e identificar las nece...