Professionalism and Test-Driven Development
Estaba leyendo la revista Software de la IEEE (siempre tiene algo interesante) y encontré en el articulo "Profesionalism and Test-Driven Development". Está bien escrito, aunque de un modo un poco pedante para mi gusto.
Una cosa que me resultó llamativa, fue el paralelismo que hace entre la resistencia que tenemos como industria a aceptar algunos métodos que funcionan (en este caso TDD) y la técnica de los médicos para lavarse las manos antes de los exámenes a las embarazadas, para evitar muertes de los niños recién nacidos.
Según el autor, parte de la resistencia para aceptar estas técnicas de diseño no son tanto por el trabajo que da el implementarlas, sino por lo dificil que es aceptar todos los errores cometidos con anterioridad, que en nuestro caso de informáticos serían todos los bugs que metimos en nuestros sistemas.
CounterintuitionVoy a probar lavarme las manos antes de programar algo, para ver si no cometo tantos errores :)
In my frequent lectures and courses, I’ve found that many developers consider TDD to be counterintuitive. The extremely short cycles between writing a test and making it pass go against their practice of writing whole modules and testing them manually afterward. They also argue that all that test writing would be too much work. However, intuition isn’t always the best guide to professional behavior. Take, for example, the case of Ignaz Semmelweis, who in 1847 achieved a six-fold drop in his maternity ward’s mortality rate by simply having doctors wash their hands before examining pregnant women:
His observations went against the current scientific opinion of the time, which blamed diseases (among other quite odd causes) on an imbalance of the basic “four humours” in the body, a theory known as dyscrasia. It was also “argued” that even if his findings were correct, washing one’s hands each time before treating a pregnant woman, as Semmelweis advised, would be too much work.
Nor were doctors eager to admit that they had caused so many deaths. Certainly the implications of TDD aren’t as significant to software professionalism as sterile procedure is to medical professionalism. Nonetheless, parallels exist. TDD changes the way programmers work minute by minute, and it profoundly affects the work’s results.
Otra posibilidad es que, cuando alguien te reclame por algún error, ahí te laves las manos. :)
ResponderBorrarJosé:
ResponderBorrarReconozco que es otra posibilidad, pero mi profesionalismo me lo impide.
Es un lástima que no se use más en nuestro país. Hasta la fecha no conozco ninguna empresa que implemente TDD y menos aún metodologías ágiles en Uruguay.
ResponderBorrarCreo que nos estamos quedando técnicamente atrazados. No desde el punto de vista de bajo nivel, o sea aprender lo último de C# o Java etc, sino en lo más grave, aprender lo último en los métodos de desarrollo de software y buenas prácticas de diseño.
Tenemos que ser más competitivos en esa área para poder dar servicios a empresas del exterior que son las que dejan plata. En en cantidad de expertos en informática no podemos competir, solo en calidad. Y nos creemos mejores ténicos de lo que somos.