Cuando comencé a estudiar la Unidad 1 Mentalidad ágil del programa de estudios para certificarme en PMI ACP, me topé con el término «eficiente» y claro está que tuve que buscar la diferencia conceptual entre eficiencia y eficacia ya que entiendo que es clave tanto en la gestión de proyectos como en otras áreas de trabajo:
Eficiencia:
- Definición: La eficiencia se refiere a la capacidad de lograr un objetivo utilizando la menor cantidad de recursos posible (tiempo, dinero, esfuerzo, materiales, etc.).
Momento para reflexionar: Me vino a la mente aquí algo que alguna vez me dijo un gerente: «Hacer + con – o por lo menos, hacerlo con lo que se tiene». Después entendí por dónde va el tema y lo que cuesta a veces.
- Enfoque: Se centra en los recursos y el proceso. Un proceso eficiente minimiza desperdicios y maximiza el rendimiento.
Momento para reflexionar: Para lograr tener un enfoque claro y ser eficientes primero deberemos conocer muy bien tanto el proceso que está bajo nuestro gobierno como así también los recursos involucrados (tanto humanos como técnicos), de lo contrario no podremos cumplir con este punto. De esta manera podremos identificar todo lo que represente desperdicio y comunicarlo para que no lo sea en los siguientes sprints y así aumentar nuestro rendimiento alcanzando mayor productividad de mejor calidad.
Eficacia:
- Definición: La eficacia se refiere a la capacidad de lograr el objetivo deseado o cumplir con los requisitos y expectativas.
Momento para reflexionar: A mi modo de ver, seremos eficaces si logramos ser eficientes.
- Enfoque: Se enfoca en el resultado. Un proceso eficaz cumple con el objetivo, sin importar si los recursos fueron bien utilizados o no.
Momento para reflexionar: Al leer el término «resultado» me vino a la mente automáticamente el concepto de OKRs como metodología de planificación ya que justamente los KRs tienen que ver con este punto, y las Iniciativas tienen más que ver con el concepto de «eficientes«.
Diferencia clave:
- Ser eficiente implica hacer las cosas de la mejor manera posible, optimizando los recursos.
- Ser eficaz implica hacer las cosas correctas para lograr el objetivo deseado.
Ejemplo en el contexto ágil:
Supongamos que integramos un equipo ágil como tester ágil en un proyecto en el que se utiliza el marco de trabajo scrum y es altamente crítico ya que en cada sprint hay que desarrollar entregas para disponibilizarlas rápidamente en ambiente productivo con la conformidad no sólo del Product Owner sino además de Stakeholders clave. Las entregas en cada Review deben demostrar no sólo haber alcanzado los criterios de aceptación de las historias de usuario planificadas sino además deben responder a las normas de OWASP y de Usabilidad ya que se incorporarán a un módulo dentro de un sistema de venta de paquetes turísticos integrado con varias agencias de turismo de todo el mundo.
¿Cómo podríamos lograr la Eficiencia?
- Automatizando las pruebas funcionales, de seguridad (basadas en las normas OWASP) y de usabilidad, usando herramientas de automatización (como Selenium para pruebas de interfaz de usuario y OWASP ZAP para seguridad).
- Configurando una integración continua (CI) para que las pruebas se ejecuten automáticamente al final de cada sprint, reduciendo el tiempo necesario para validar si las historias de usuario cumplen con los criterios de aceptación.
- De esta manera se podria reducir el tiempo de testing, detectando problemas con antelación, sin incrementar los costos ni recursos.
Resultado: Estaríamos siendo eficientes porque hemos optimizado el proceso de testing, usando menos tiempo y recursos al automatizar las pruebas. Sin embargo, esto no necesariamente significa que los resultados del testing cumplan con las expectativas o normas requeridas.
¿Cómo podríamos lograr Eficacia?
- Asegurando que todas las historias de usuario que forman parte del Sprint cumplen estrictamente con los criterios de aceptación, incluidas las normas de seguridad OWASP y de usabilidad.
- Ejecutando lo más que se puedan, pruebas especialmente de usabilidad y validaciones manuales de integración entre sistemas que consumen más tiempo del esperado posiblemente y que no han sido completamente automatizadas, pero que a pesar de ello, podríamos conseguir que el incremento entregado en la Sprint Review sea totalmente funcional y seguro para su despliegue en producción.
- Comunicándonos constantemente con los stakeholders clave y el Product Owner para que nos confirmen que las historias de usuario satisfacen sus expectativas, el sistema es seguro y que cumple con los estándares de usabilidad requeridos para el sistema de venta de paquetes turísticos.
Resultado: Estaríamos siendo eficaces porque hemos cumplido con los objetivos y hemos entregado valor, asegurando de que el producto final está alineado con las necesidades y expectativas del cliente, además de cumplir con las normas críticas (OWASP y usabilidad).
En pocas palabras y para concluir:
- Eficiencia: El equipo logra reducir el tiempo y esfuerzo en las pruebas a través de automatización, lo que optimiza los recursos, pero no garantiza por sí solo que el producto sea efectivo o cumpla completamente con las normas de seguridad y usabilidad.
- Eficacia: El equipo asegura que el producto entregado cumpla con los criterios de aceptación, normas OWASP, y estándares de usabilidad, logrando el objetivo de un producto seguro y usable, aunque esto implique mayor tiempo o esfuerzo en algunas áreas del testing.
En este proyecto crítico, lo ideal es lograr un equilibrio entre ambas: entregar un producto eficaz (que cumpla con los estándares) de manera eficiente (optimizando los recursos y tiempo).
Comentario final
Si te ha servido este contenido, me alegro y mucho. También te cuento que me puedes seguir en LinkedIn e interactuar con otros colegas testers ágiles que me siguen y que están interesados en contenidos relacionados con agile testing, inteligencia artificial y OKRs aplicado a testing. Muchas gracias