Superando los límites de la Orientación a Objetos (Parte 7)

Prosigo transcribiendo y comentando brevemente, la charla de Alejandro Reimondo de Smalltalking, dictada hace unas semanas en la Universidad Tecnológica Nacional, sede Buenos Aires.

Transcribo las palabras de Alejandro en cursiva:

Muchas veces se valora el cambio reiterado. Cuando trabajamos formalmente, hacemos un cambio en un sistema, y hacemos en otro sistema, no estan comprometidos uno con el otro. Hicimos un cambio, pero un sistema pudo ser correcto y el otro no. Cuando hay cambio, hay riesgo, entonces minimicemos los cambios.

En base a reconocer este problema, lo que se propone, es hacer iteraciones minúsculas, ciclos iterativos para produccion de software. Y quien tiene éxito trabajando de esta manera, son muchos los que tienen éxito, dicen, “yo trabajo de manera evolutiva”, y es entendido entonces que evolución es cambio reiterado de características. Se trata de usar el cambio iterativo, para cambiar para mejorar. Pero estamos siendo inocentes, cambio implica intención, hay una dirección cuando planeamos la iteración.

No veo que la gente diga que trabaja de manera evolutiva, sino iterativa. Como en otros puntos de la charla, no hay una referencia a porqué se afirma algo. Si pongo el contexto de las metodologías ágiles, en un desarrollo iterativo la dirección de cambio puede ir cambiando, porque cada vez tenemos (los que desarrollan, y quienes necesitan el desarrollo) más idea y contexto de lo que necesitamos. Alejandro apunta a otro tipo de cambio, cuando dice evolución, pero (perdón que insista) de nuevo no da ningún ejemplo concreto. Ese es un problema en las presentaciones de Alejandro. Cada uno puede formarse una idea distinta, de un concepto, porque no está completamente definido, y lo “fuzzy” no se despeja, porque no hay ejemplo. Como siempre, el lenguaje humano es limitado, pero gran parte de esta charla, es una adivinanza, una especie de “veo veo”, “¿qué ves?” “algo que llamo evolución”, y nada más.

Evolución es lo que uno observa sobre algo que ya paso, como pasó, no lo sé! Pero tenemos un sistema que es distinto del que era. Luego, escribimos que hubo evolución, pero no fue planificado.

Asimilándolo a ciencia, esta distinción es parecida a lo que habría entre evolución biológica y diseño inteligente. También podría asimilarlo a historia humana vs ingeniería social, donde en la primera, los sucesos pasan (revoluciones, reordenamientos) sin una intervención humana dirigida.

Eso tambien tiene implicancia en ecología, se hacen cambios iterativos sobre objetos reales, para tratar de hacer evoluciones favorables, pero no tiene que ver con evolución, evolución describe lo que ya pasó, no es la intención dirigida.

Las teorías, cuando las cambiamos, cambian, no evolucionan. Todo cambio usando un lenguaje implica una voluntad definida a priori.

Yo diria que hay evolución, uno cambia algunas partes de forma dirigida, pero hay un nivel donde el ecosistema del software tiene evolución. Un caso que se me ocurren es la emergencia de Ajax, que no fué planeada, fué un emergente ocurrido ante la combinación no esperada de tecnologías que fueron apareciendo, no para llegar a Ajax, sino para solucionar otros problemas inmediatos.

Cambio implica entender antes de hacer. Evolución no. Es algo que pasó.

Ir diciendo como va el mundo, es útil en algunos contextos. En evolución, miramos lo que pasó hacia atrás, y reflexionamos. El cambio es imperativo.

Acá no entendí si esta frase indicaba: “El cambio (dirigido), al contrario de la evolución, es imperativo”, o “El cambio (en evolución) es imperativo (siempre pasa)”. Así me pasa con varias frases.

Uno no sabe todo, porque esta basado en un metodo reductivo.

Yo veo que no es un tema de método. Es un tema de no saber todo, por incapacidad humana, no por culpa del método reductivo.

En evolución, partimos de qué cambió, y ahora observamos. Todo cambio tiene un valor, es innegable. Ahora decir que por ese cambio genero tal cosa, nos perdemos otras cosas que tal vez genero.

Uno planifica cambios, no planificamos evolucion.

Hay un montón de cosas, que conviene decir lo que otro quiere escuchar. No hay que referirle reuso a alguien que dice reuso de componentes. Ahora, ante alguien que busca espacio en algo alternativo, es importante plantear estas diferencias.

Hoy es muy usado evolución, y no se detienen a pensar. Y dicen que cambios iterativos es evolución. Y deforman la palabra, pero evolución es otra cosa.

Evolución te hace dar cuenta, que por mas cambio que uno planea, hay cosas que pasan.

Insisto, hubiera sido interesante haber planteado un ejemplo de evolución en software. Creo que evolución es un término abusado en varios ámbitos. Se lo plantea como similar a la evolución biológica, y ésta tiene características muy definidas. Y si hablamos, en vez de evolución biológica, de evolución, hay que definir más precisamente a qué se refiere entonces esa palabra en solitario.

Post relacionados

Superando los límites de la Orientación a Objetos (Parte 6)
Superando los límites de la Orientación a Objetos (Parte 5)
Superando los límites de la Orientación a Objetos (Parte 4)
Superando los límites de la Orientación a Objetos (Parte 3)
Superando los límites de la Orientación a Objetos (Parte 2)
Superando los límites de la Orientación a Objetos (Parte 1)
Mas allá de objetos

Nos leemos!

Angel “Java” Lopez
http://www.ajlopez.com/
http://twitter.com/ajlopez

This entry was posted in 3462, 3463. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>