leanmind logo leanmind text logo

Blog

BDD

Behaviour-driven Development es una técnica para tomar mejores requisitos de producto.

Calidad en los proyectos de software

Por Carlos Blé Jurado

¿Qué entendemos por calidad en un proyecto software? ¿Es posible que el exceso de calidad esté perjudicando al proyecto? ¿Somos demasiado extremistas con la calidad? Este es un tema recurrente que, de tanto en tanto, sale a discusión entre agilistas y no agilistas, a veces con críticas poco constructivas al movimiento de la artesanía del software.

Lo cierto es que en toda mi carrera profesional, jamás vi un proyecto que sufriera retrasos o pérdidas económicas por haber invertido en lo que yo considero calidad. Por ejemplo:

Todos estos elementos y muchos más, son para mí componentes de la calidad. Son característicos de nuestra forma de trabajar y forman parte del proyecto desde su inicio. Como decía William Edward Deming, la calidad no puede añadirse a posteriori, sino que debe formar parte del proceso desde el inicio. No solo es que la calidad no va a penalizarnos, sino que será la que aumente nuestra productividad. Nos permite conseguir resultados homogéneos, predecibles, acorde a estándares de la industria y a los nuestros propios. La calidad es parte de lo que nos define como profesionales y nos permite sentirnos orgullosos del trabajo bien hecho, pero, además, es la única forma que hemos encontrado de que el software que construimos sea sostenible en el tiempo.

Seguro que muchas personas se sienten cómodas con esta visión de la calidad, entonces ¿por qué surge la discusión en torno a la calidad? En mi experiencia, es porque llamamos calidad a cosas que no lo son, como, por ejemplo, el dogmatismo y la falta de conocimiento técnico y de pragmatismo. A continuación, se nombrarán algunos ejemplos concretos de decisiones que sí impiden el desarrollo de un proyecto y que supuestamente son en nombre de la calidad:

A menudo, lo que hay detrás de estas decisiones son buenas intenciones, ganas de aportar y de hacer un buen trabajo. Se hacen en nombre de la calidad, pero luego se convierten en decisiones que dañan al proyecto, por varios factores. Uno es la falta de alineamiento en la visión de negocio; si el equipo técnico no entiende bien el plan de negocio, las fases, dónde está el valor, qué es lo importante, entonces no podrá tomar decisiones técnicas adecuadas. Por desgracia, es muy habitual que el equipo técnico esté lejos de los stakeholders, con varias personas en medio que se comportan como actores del teléfono escacharrado.

Otro factor es la falta de conocimiento técnico en los equipos, por ejemplo, cuando todo el equipo está compuesto por juniors que no tienen el apoyo/guía de otra persona técnica con experiencia creando soluciones pragmáticas adaptadas al negocio. Un clásico es cuando quieren escribir test automáticos, pero nunca lo han hecho antes y en lugar de contratar ayuda externa especializada, deciden aprender a golpes, gastando tiempo y dinero del proyecto.

Los egos nos la juegan con frecuencia, todo el mundo quiere demostrar que es profesional y que tiene mucho que aportar a los proyectos, pero a veces el ímpetu nos lleva a introducir problemas, en vez de ayudar. Los egos nos engañan cuando llamamos calidad al dogmatismo o al heroísmo y también cuando criticamos de forma destructiva metiendo en el mismo saco a todo el mundo.

El movimiento de la artesanía de software (software craftsmanship), tal como yo lo entiendo, reivindica que hagamos el software con calidad, con profesionalidad y, por supuesto, con pragmatismo, no con dogmatismo. El dogmatismo se puede detectar cuando la persona que propone una práctica o proceso no sabe explicar de forma clara la ventaja de dicha práctica o proceso, sino que se limita a decir que es una buena práctica de calidad, porque lo dice Bob Martin o cualquier otro autor. Sabernos explicar con claridad es fundamental para reducir esa brecha que hay entre negocio y developers, objetivo que perseguía el manifiesto ágil y que nos vuelve a recordar el manifiesto de la artesanía del software.

Aprovecho para dar las gracias a Javier Martín de Agar, Juan Banda y Ana Carmona, por recordarme que quería escribir sobre este tema desde hace tiempo. Probablemente, este tema sea también motivo para hacer un episodio de podcast.

Publicado el 30/06/2020 por

¿Quieres más? te invitamos a suscribirte a nuestro boletín para avisarte cada vez que recopilemos contenido de calidad que compartir.

Si disfrutas leyendo nuestro blog, ¿imaginas lo divertido que sería trabajar con nosotros? ¿te gustaría?

Impulsamos el crecimiento profesional de tu equipo de developers