Actualidad y noticias de Testing con un punto de vista de negocio


Soy un tipo con cierta aversión al riesgo, sobre todo cuando construyo algo. Me gusta diseñar bien y sobre todo me gusta tomarme mi tiempo antes de empezar a realizar la tarea que sea: vísteme despacio que tengo prisa, es para mí una especie de filosofía de vida.

Todavía recuerdo cuando en los primeros 2000 revisaba código (COBOL, siento la falta de glam, pero era COBOL) de personas que llegaban a mí con bugs que no entendían. Me encantaba aplicar una mayéutica muy personal a todo el proceso… el individuo muerto de los nervios porque tenía que entregar y el chalado socrático este (que era yo) haciendo preguntas:

–  A ver, ¿qué se supone que hace esto?, ok, bien, bien, ¿y para qué quieres este bucle?, ya, bueno, pues entonces lo quitamos, ¿no?, fuera el bucle.

El color de la cara de mi mentorizado pasaba de rojo encendido, por los nervios de tener un software chungo, a pared pálido por el destrozo que le hacía en el código: le comentaba cada rutina con el estándar que habíamos pactado, le renombraba variables, utilizaba “change all” para homogeneizar nombres de párrafos, ficheros, etc. limpiaba código muerto y le dejaba en un rato el código limpio como la patena, mientras yo mismo iba entendiendolo y analizando el problema. Y encontraba el error… casi siempre antes del tiempo límite. Luego, me tocaba hacer pedagogía:

  • ¿Qué hemos hecho? – le preguntaba a mis distintos “clientes”.
  • Limpiar el código básicamente – me respondían.
  • ¿Y qué más?, venga hombre, tú puedes.
  • Entender el código y…
  • Y sobre todo hacer que el código refleje sus intenciones – concluía yo.

No es que yo fuera especial, simplemente estaba “agilizando” en cierta forma la creación de código de calidad. Para mí hay algunos factores que fueron clave en esa época ganar productividad haciendo (y revisando) código:

  • Tienes que conocer de forma excelente tus herramientas de trabajo (el IDE, el entorno de desarrollo…), esa opción que no usas nunca tienes que entenderla, tienes que tener curiosidad. Cuando eres un crack con las herramientas ganas muchísima eficiencia  y te puedes dedicar a prestar atención a lo que de verdad es importante.
  • No tienes que tener prisa por empezar a producir código. Uno de los principales problemas de mis compañeros era el mal de “qué programa copio”, que era algo así como cogerse otro programa conocido y empezar a cambiar cosas… con la idea de que sirva para algo. Ojo, yo utilizaba esta técnica pero no con programas completos: sabía dónde tenía los “patrones” de programación, los copiaba, los entendía y los aplicaba.
  • Tu código ha de “hablar”, tiene que comunicar su intención sin demasiado trabajo. Uno de los problemas que tuve cuando aterricé en la POO fue precisamente este, que la herencia y la sobrecarga de operadores me ocultaba tanta información que para poder narrar una historia desde el código tenía que conocer los ancestros de Isildur y sinceramente creo que esto no ayuda demasiado a hacer código legible.
  • El código ha de ser eficiente. Sería por mi deformidad “lean” pero cualquier desperdicio me ponía los pelos de punta a la hora de crear software. Hay que estar dispuesto a cambiar, a refactorizar tu código para que, haciendo lo mismo, gane velocidad y eficiencia. ¡Cuánto daño ha hecho eso de “Si funciona no lo toques”! (que tendrás una castaña de código a medio plazo, se podría añadir).

Después de mi etapa cobolera empecé a trabajar en temas de testing. La verdad, para mí, como para cualquier tipo con experiencia en desarrollo era un dolor probar software tanto propio como ajeno. Pero al final, le tomas el gusto a la cosa cuando descubres la importancia que tiene y todo el valor que aportan las pruebas al proceso de construcción de software.

Una vez más, intenté hacer lo que dije antes: conocer muy bien las herramientas, evitar el desperdicio, hacer pruebas que se entiendan y que hablen por sí solas y estar dispuesto a cambiar, para mejorar, en cualquier momento.

Y sobre eso irá en el siguiente post.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

A %d blogueros les gusta esto: