Reversibilidad

Cuando hagas el código con una idea en la cabeza, no lo hagas de forma que luego no puedas cambiar de idea. Hazlo siempre de forma que si cambias luego de idea, el cambio sea fácil de realizar también en el código.

Si decides usar una arquitectura cliente/servidor, no hagas el código de forma que si luego decides usar un único ejecutable no puedas hacerlo. Diseña y realiza el código de forma que puedas con poco esfuerzo cambiar de un tipo de arquitectura a otra.

Si decides usar una base de datos de marca A, haz el código de forma que luego puedas cambiarte fácilmente a una base de datos de marca B, y que luego puedas cambiarte fácilmente a usar ficheros normales en vez de una base de datos.


El Gato de Schrödinger

Supongamos que tienes un gato en una caja cerrada, junto a una partícula radioactiva. La partícula tiene exactamente una probabilidad de 50% de fisionarse en dos. Si la partícula fisiona, el gato se muere. Si no lo hace, el gato estará bien. Así que, ¿el gato esta vivo o muerto?

De acuerdo a Schrödinger, la respuesta correcta es ambos. Cada vez que una reacción sub-atómica ocurre y pueden existir dos alternativas, el universo se clona. En uno, el evento ocurrió y en el otro no. El gato está vivo en un universo, muerto en otro. Sólo cuando abres la caja te das cuenta en qué universo te encuentras.

No es de extrañar que la codificación a futuro sea muy difícil.

Sin embargo, piensa en la evolución del código en el mismo sentido que una caja llena de gatos de Schrödinger: cada decisión resulta en una nueva versión del futuro. ¿Cuántos posibles futuros puede soportar tu código? ¿Cuáles son más probables? ¿Qué tan difícil será soportar esos cambios cuando se den?

¿Te atreves a abrir la caja?

Comentarios