Las metodologías pasan, las prácticas quedan
29 de Agosto de 2019Escribe Fernando Waisman, co-fundador de Nahual IT
¿Las metodologías ágiles son sinónimo de calidad? ¿Podemos afirmar que una metodología de trabajo tiene mayor calidad que otra? Varias veces me han hecho estas preguntas…
De ninguna manera podemos afirmar que una metodología posee un mayor grado de calidad que otra a la hora de desarrollar software o que nos asegura el éxito de dicho desarrollo.
¿Por qué? Porque ninguna metodología nos asegurará que se apliquen las mejores prácticas de ingeniería de software como pueden ser el testing unitario, la gestión de la configuración, revisiones técnicas formales, etc.
Trabajo en el área de calidad de software desde hace más de 15 años y también soy docente titular de dicha materia en el Instituto de Tecnología ORT Argentina.
En el transcurso de mi carrera he participado de varios proyectos con distintas metodologías de trabajo y les puedo asegurar que en ningún caso el éxito logrado dependió de cuál se utilizó, sino más bien de cuán maduro era el equipo a la hora de desarrollar el software, esto es, qué tanto se aplicaron las buenas prácticas arriba mencionadas.
Pero si sabemos que haciendo las cosas bien seguramente tendremos éxito, ¿por qué no lo hacemos en todos los casos? o peor aún, ¿por qué solemos priorizar la metodología por sobre la práctica?
Hoy en día todos queremos ser ágiles porque supuestamente se entregan productos de mayor calidad y en tiempos más cortos. ¿Esto es así en la realidad?
Me gustaría que reflexionemos sobre esto y nos preguntemos si nuestro proyecto ágil hace testing unitario o gestiona la configuración del software; si hace testing y revisiones.
Todos los cuatrimestres en la materia que dicto sobre Calidad de Software hago estas preguntas a mis alumnos que trabajan en Sistemas. Sólo el 10% de la clase dice que aplica alguna de estas prácticas, y que, por lo general, el testing funcional muchas veces es realizado por la misma persona que hizo el desarrollo.
¡Qué dilema entonces! Queremos desarrollar con calidad, asumiendo que una metodología nos la brindará ¡Qué equivocados estamos entonces!
Otro gran enigma que siempre me planteo: todos queremos trabajar en empresas como Google, Facebook, Linkedin, etc. ¿Por qué directamente no nos proponemos trabajar como trabajan ellos? Testing unitario, revisión de código o modificación de artefactos que ya tienen línea de base.
Pensar que empresas como Google o Facebook tienen más de 100 deploy por dia y jamás vemos sus páginas caídas ¿Y esto por qué? La respuesta es muy fácil: esas empresas aplican TODAS las buenas prácticas de ingeniería de software, indistintamente de la metodología que utilicen.
Varias de las personas mas influyentes en el mundo del software (como por ejemplo Ivar Jacobson o Jeff Sutherland, fundador de Scrum), se unieron y se cuestionaron si realmente era importante la metodología de trabajo ¿Cuál fue el resultado? Crearon SEMAT (Software Engineering Method and Theory), que impulsa la refundación de la ingeniería de software basándose en una teoría sólida, principios probados y mejores prácticas.
A modo de cierre, me gustaría que pensemos juntos porqué pareciera ser más importante una metodología que una práctica.
Como bien dice uno de los padres de la ingeniería de software, Frederick Brooks, “no existen balas de plata” y, por más que nos quieran o queramos convencer de que debemos que aplicar “la” metodología de moda, nunca nos olvidemos que sin las buenas prácticas vamos a ser, finalmente, dependientes de la suerte.
(*) Fernando Waisman: co-fundador de Nahual IT