La herejía de Kent Beck
Hace unos días sucedió algo que escandalizó al pequeño mundo del desarrollo de software con metodología XP.
Si usted conoce de metodologías ágiles, el nombre de Kent Beck seguro le dice mucho. Kent fue el creador de lo que conocemos ahora como Extreme Programming o XP, una metodología de desarrollo de software inscrita en el contexto ágil y una de las más agresivas en cuanto a velocidad se refiere. La metodología XP, como cualquier conjunto de lineamentos de cómo se hacen las cosas, tiene muchas recetas que “deben” seguirse a pies juntillas, por ejemplo: programar en parejas, refactoring continuo, y desarrollo dirigido por pruebas (Test Driven Development TDD). (más…)
Las metodologías ágiles como una aplicación del constructivismo
Visto de manera general, el desarrollo de cualquier producto bajo especificaciones de diseño, es decir, diseñado y construido para cumplir una serie de requerimientos, parecería una aplicación práctica de las ideas del constructivismo.
Los requerimientos son expresados generalmente en forma de observaciones: “El sistema ofrece al usuario una lista con las opciones que el usuario tiene permitido utilizar” o “Cuando el usuario solicita al usuario imprimir un informe, el sistema solicita una confirmación antes de proceder”.
Estas observaciones determinan lo que el sistema puede y lo que no puede hacer, es decir, definen lo que la implementación, la realidad del sistema, debe ser y será una vez terminado el desarrollo. Los requerimientos construyen la realidad del sistema. Pero la afirmación de que la construcción de un producto o sistema es una aplicación del constructivismo no tiene nada de sorprendente, pues se trata finalmente de “construcciones” de cosas, en este caso, de software.
El constructivismo toma su nombre precisamente de la construcción de cosas, edificio, máquinas, etc. Decir ahora que la construcción de una casa es una aplicación de las ideas constructivistas es una necia obviedad. Sería como sorprendernos de que las naranjas sean precisamente de color naranja, siendo que este color se llama así por las frutas.
Pero en el caso de las metodologías ágiles las cosas ya no son tan triviales, pues el enfoque constructivista puede verse mucho más allá de la simple construcción de una cosa. Sobre todo si pensamos en las metodologías que tienen como eje la orientación a pruebas (TDD) como es el caso de la XP.
Comenzando a hacer desarrollo
Hace varios días nuestro servidor de integración tuvo algunos problemas. Sin hacer el cuento largo, cambiamos un disco y reinstalamos la máquina. Más allá de las complicaciones inherentes a la configuración final de operativos y herramientas, comencé a pensar en cómo habíamos ido adquiriendo todas esas herramientas de las que ahora dependemos. (más…)
El cuarto de trebejos y la documentación
En la casa tengo un cuarto de servicio que mi hermano y yo usábamos como taller cuando hacíamos alebrijes, pinturas en óleo y cosas así. Lo llamábamos cariñosamente “el cuartito” y el nombre llegó a ser conocido en un par de exposiciones. Mi hermano se fue a vivir a Pachuca y yo comencé a hacer software y los dos dejamos de hacer “manualidades”, dejando aquel cuarto un poco en el olvido, con el tiempo, fue acumulando polvo y basura que ambos llevábamos usándolo como cuarto de trebejos. (más…)
Cajas negras, sistemas y pruebas
Nuestro tema es la programación, más estrictamente, las pruebas unitarias. Acotemos un poco más y digamos que nuestro contexto es la OO (Orientación a Objetos o Object Orientation).
En cierto sentido, las pruebas unitarias son meta-código, es decir, son código que habla del código. Esto ya lo había mencionado ensalzando a la metodología XP [Entre la XP y el RUP]. En aquella ocasión explicaba que las pruebas unitarias son documentación en código y es que, precisamente, eso son. Ser documentación quiere decir que hablan acerca de nuestra aplicación, más estrictamente, hablan del código. Lo elegante del asunto es que ellas mismas son código. (más…)


