Podcast: Play in new window | Download
Suscribirse: Apple Podcasts | Spotify | Email | RSS
Esta es una pregunta que me han hecho varias veces: inge, ¿cuál es el mejor método para hacer software?
Mi respuesta, desde hace algunos años, ha sido esta: todos y ninguno.
Aunque escuches y leas de los casos de éxito que ha tenido Scrum, de lo fantásticas que son los métodos de Netflix y Spotify, de lo terrible que es Waterfall (cascada) y de que solo Ágil puede funcionar, es una mala idea intentar copiar la forma de trabajo definida por otros y aplicarla así en nuestro equipo.
Verás. Cada método y marco de trabajo está definido para funcionar bajo ciertas circunstancias; si tu organización y proyectos las cumplen, el método funcionará de maravilla; si las circunstancias son diferentes, el marco no funcionará y pasarás mucho tiempo en frustración tratando de que dé buenos resultados. Así es como todos son los mejores métodos, y ninguno lo es a la vez.
Lo mejor es que cada equipo y organización defina una forma de trabajo adecuada para sus circunstancias, la mejore y adapte conforme el entorno cambia.
Las organizaciones y equipos, que han obtenido buenos resultados con sus métodos, lo han logrado porque desarrollaron una serie de características que facilita la agilidad y el alto desempeño. Estas no son parte del equipo per-se, sino que se esfuerzan en crearlas y mantenerlas. Te las describo a continuación.
Todo el nivel directivo de la organización está involucrado permanentemente con los equipos de software. No me refiero a que se ponen a escribir código, sino que realizan estas actividades continuamente:
- Establecer objetivos ambiciosos para la organización
- Definir las responsabilidades (que no los puestos) de sus integrantes
- Asignar los recursos necesarios y hacer el esfuerzo por tenerlos disponibles
- Establecer los criterios de éxito
- Respaldar el trabajo bajo un enfoque de procesos
- Mantener una supervisión continua
La gerencia será la primera en implementar la disciplina y la responsabilidad. Si este primer eslabón falla, ¿qué nos espera a los demás?
Equipos autodirigidos
Lo primero que deben apoyar los directivos y gerentes es la autonomía de los equipos y las personas y permitirles elegir, ellos mismos, su forma de trabajo. Los equipos autodirigidos son dueños de sus procesos; no hay un grupo externo o una persona que les indique los procesos y las actividades que deben realizar día con día.
En este aspecto, muchos gerentes de área y directores de empresa me han manifestado su temor de esta manera: “es que van a hacer lo que ellos quieren, no lo mejor para la empresa”. Yo les he dicho que es al contrario; permitirles elegir su forma de trabajo les permitirá alcanzar consistentemente los objetivos de la organización.
Gestión con datos y hechos
Las organizaciones con buenos resultados trabajan para tomar decisiones basándose en la objetividad. Procuran mantener los criterios subjetivos y las percepciones personales en lo mínimo. Responden cuestiones como el estatus de un trabajo con datos numéricos objetivos en lugar de criterios ambiguos como “creemos que vamos bien”.
Definen, alimentan y analizan un conjunto de métricas, las cuales son un reflejo de su forma de trabajo y utilizan esta información para tomar decisiones, mejorar y desechar una práctica.
Cuando una métrica ha dejado de ser útil, no tienen temor en eliminarla. También, crean mediciones nuevas conforme quieren conocer más sobre sí mismos o quieren cambiar su comportamiento.
Organización orientada al aprendizaje
Esta característica la puedo resumir con la siguiente oración: son organizaciones sin temor a los fallos. Las personas realizan experimentos continuamente en su forma de trabajo: implementan nuevas prácticas, prueban herramientas, hacen algo diferente con frecuencia y evalúan si eso les da mejores resultados que lo anterior. Nadie les impide hacerlo ni los fuerza a seguir el proceso al pie de la letra. Al contrario, alientan este comportamiento.
Los individuos se reúnen para evaluar su forma de trabajo con regularidad. Cuestionan lo que deben estar haciendo, lo que deben dejar de hacer y lo que deben mantener porque funciona.
Todos los aprendizajes son compartidos. Nadie se queda con información que sea útil para el resto y definen medios de difusión para hacerlo.
Cultura de la calidad
En este aspecto, las organizaciones trabajan para que todos sus integrantes se responsabilicen de la calidad del resultado final. Es decir, que la calidad es responsabilidad de todos, en lugar de asignarla solo al equipo de QA o a la fase de Testing. Los individuos son conscientes de que su trabajo incide en el resultado de sus compañeros, por lo tanto, aplican prácticas y procedimientos para el aseguramiento constante de la calidad.
Arquitectura de una empresa de software
La organización adopta una estructura en la que todas sus áreas tiene responsabilidades en el desarrollo de software. Aunque el giro principal de la empresa no sea desarrollo de software, estas responsabilidades son compartidas por todos. Así, existen personas involucradas en las tareas de requerimientos, análisis, validación de soluciones, identificación de necesidades e implementación en todos los niveles y departamentos.
Su objetivo es que el software se desarrolle lo más rápido posible, pues es el medio con el que alcanzarán sus objetivos. Cuando la organización completa entiende y habla el mismo idioma, es más fácil.
Conclusión
Entonces, ¿hay un método que es el mejor? La respuesta sigue siendo sí y no. Lo que existe es un conjunto de circunstancias, que facilitan la definición de una forma de trabajo efectiva.
Si la organización quiere obtener buenos resultados en el desarrollo de software, la alta dirección debe establecerlo como objetivo y apoyar en todo momento, promover los equipos autodirigidos, la cultura de la calidad y la arquitectura de la empresa. Los equipos deben perder el temor al fallo al implementar prácticas y gestionarse con datos y hechos. Revisar todo esto continuamente para reforzar las áreas que lo requieran.
No hay bala de plata, como dijo Fred Brooks, lo que hay es un conjunto de personas hábiles y disciplinadas tomando decisiones en equipo continuamente y adaptándose a las nuevas circunstancias.
¡Nos vemos en la siguiente entrega!