Al que no puede con la sopa… doble ración.

La herejía de Kent Beck

inquisicionEspanyolaHace 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…)

Los cooperativos y el desarrollo de software.

Publicado en Desarrollo de sofware, Juegos, Programming, Software Development, comunicación por wigahluk en Diciembre 8, 2008

¿Conoce usted el Battlefield? Si no lo conoce no importa, es un jueguito de computadoras donde usted es un soldadito y su tarea es matar enemigos. Simple el argumento. Pero si alguna vez ha jugado Go o Ajedrez sabe que argumentos tan simples son engañosos. ¿Dónde está el truco? Resulta que usted no está sólo, usted es parte de un equipo, y sus enemigos también, o sea que si se lanza como el borras a gritar “¡jerónimo!” y matar enemigos lo más probable es que lo maten antes de que siquiera haya visto algún contrincante.

(más…)

Diagnósticos vs Certificados II

Publicado en Desarrollo de sofware, Programming, Pruebas unitarias, Software Development por wigahluk en Noviembre 29, 2008

En un post anterior exponía mi rechazo general a esas cosas llamadas certificados. Ahora me gustaría regresar el tema al contexto del desarrollo de software, en particular, a las evaluaciones de métricas de código.

(más…)

Todo depende del cristal con que se programa

Ya lo han dicho muchos, la realidad, es decir, la descripción que de ella hacemos, depende del observador. Para Foerster la realidad es una cómoda muleta que usamos para hablar de la descripción de la observación (que llamamos simplemente observación).

En un post de Marco Dorantes leo una postulación de las metodologías ágiles como ejemplos excepcionales de la aplicación del pensamiento científico al desarrollo de software, post que encontré poco después de publicar yo mismo uno en el que sostengo que las metodologías ágiles, en particular la XP, pueden verse como aplicaciones prácticas del pensamiento constructivista (constructivismo epistemológico), posición filosófica enfrentada principalmente con el positivismo: el primero postor del método científico al que hace alusión Marco.

En primer lugar, quiero decir que me ha llenado de gusto ver que no soy el único discutiendo acerca de la epistemología aplicada al desarrollo de software. Igual que Marco, estoy convencido de que una posición filosófica puede aportar bastante a las metodologías y a las formas generales de hacer software.

(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.

(más…)