Publicado en
Autor
He estado leyendo un fascinante libro titulado “The Lords of Strategy” de Walter Kiechel, el cual se adentra en la historia de la consultoría y sus diferentes protagonistas, lo recomiendo ampliamente.
En el libro se hace una afirmación que llamó mucho mi atención y ha cambiado mi perspectiva: “El mundo de la consultoría es un mundo de ideas”. ¿Simple y tal vez obvio, no? Puede ser, pero a veces las cosas simples tienen implicaciones trascendentes.
Incluso en mayor medida que el mundo de la consultoría, el mundo del software también es un mundo de ideas. Todo lo que construimos en una computadora no son más que bits de información que realmente no existen en un mundo físico. Y si es un mundo de ideas, entonces ¿qué hace que una idea sea mejor que otra? Muchas de las discusiones que tenemos a diario como: ¿qué metodología utilizamos?, ¿somos ágiles o estructurados?, ¿es más importante la ingeniería de software o la administración de proyectos? pretenden manejar ideas como si fueran verdades absolutas, como si existieran en realidad en lugar de ser simples puntos de vista.
Cuando hacíamos programas en la escuela, el mundo era más sencillo. Había que conocer el lenguaje lo mejor posible y resolver en forma lógica un problema real de una forma matemática. Pero luego pasamos a resolver sistemas, y conocer el lenguaje ya no fue suficiente. Hay que manejar datos, modularidad, entender lo que el cliente requiere y comunicarlo adecuadamente. El sistema involucra a un número de actores con los que hay que interactuar: ¿cómo sé que entendí lo que el cliente me está pidiendo?, ¿cómo sé si él sabe lo que quiere? A esto se agrega un nivel adicional que involucra las negociaciones para el pago de nuestros servicios: ¿cómo definimos el esfuerzo que requiere el proyecto?, ¿qué pasa si surge un inesperado?, ¿cómo negociamos un cambio de alcance?, ¿manejar minutas en un proyecto es parte del proceso de desarrollo de software?, quien dice que no nunca ha perdido millones de dólares en una litigación porque el cliente no recuerda (o no respeta) un acuerdo verbal. En resumen, desarrollar software en la vida real no es simplemente sobre construir software sino que existen muchas capas adicionales que lo hacen complicado.
Regresando a nuestro punto, para cada fase, para cada decisión, existe un sinnúmero de ideas en la industria que tomamos como verdades absolutas. “Desarrollo iterativo es la mejor forma de llevar a cabo un plan”, depende, desarrollo iterativo es excelente cuando el usuario no tiene claro qué es lo que quiere lograr. Pero esto complica el cobro de los servicios ya que los clientes no necesariamente están dispuestos a pagar por una entrega parcial o el desarrollo puede irse al infinito ya que siempre habrá algo que mejorarle al sistema. Otra discusión común es la de la importancia que tiene la ingeniería de software sobre la administración de proyectos. Después de todo, la ingeniería de software es lo que utilizamos para asegurar que entregamos un producto bien hecho, de acuerdo a lo especificado. Pero este argumento asume que el desarrollo de software es únicamente la creación de un producto, olvidando la parte del servicio. Imaginemos que compramos una computadora, la mejor del mundo, pero no sabemos cuando la vamos a recibir, el vendedor no sabe decirnos qué puede hacer ni cómo usarla, tampoco tenemos soporte si falla o queremos modificarla. ¿Qué es más importante, la calidad de la computadora o que llegue a tiempo y la podamos usar?
¿A dónde voy con todo esto?, la realidad es que en un mundo de ideas ninguna es mejor que otra, unas pueden ser más completas, mas escalables, más entendibles o más fáciles de vender, pero ninguna es por definición la mejor. Lo único que diferencia una idea de otra es nuestra habilidad de implementación.
La mejor idea es la mejor implementada; la forma de trabajo, organización o estructura cuya ejecución hace que realmente sobresalgamos como organización. No podemos hablar del mejor modelo de calidad sino del que nos parece más práctico, más compatible a nuestra organización, a nuestra cultura. No podemos enfocarnos en el proceso de análisis e ignorar el de peer review; cada proceso tiene su razón de ser y hasta no entender el lugar de cada práctica en nuestro proyecto no podemos juzgar un proceso más importante que otro. Una idea no existe hasta que se ejecuta, una idea que tú puedes ejecutar excelentemente no necesariamente es una idea que toda la organización pueda ejecutar excelentemente. Cada concepto e idea tiene su lugar su tiempo y su posibilidad de existencia. Como agentes de cambio nuestra labor es encontrar las ideas, tiempos y posibilidades que unan el esfuerzo de cada individuo y lo hacen funcionar mejor que la suma de sus partes.
Luis R. Cuellar es director de calidad a nivel mundial de Softtek. Es reconocido por la ASQ como Certified Quality Manager, Certified Sofware Engineer y Six Sigma Black Belt. @lcuellar
- Log in to post comments