El arte de los ciclos de vida, los ciclos de la vida en el arte.

Escribir es un proceso lineal. Todas las frases salen de tu mente como un flujo sin parar, las ideas son perfectamente orquestadas y alineadas con las anteriores.

O al menos eso cree la mayoría de la gente.

Pero la realidad es que no es así. El fruto de la escritura viene de pequeñas notas mentales, conceptos importantes que atacar, errores en la escritura, correcciones, ideas infértiles que suelen borrarse. En el proceso de escribir, suele ser más importante el ejercicio de borrar, tachar, cortar.

Todo producto final ( y no me refiero solamente a la escritura o al arte, sino a todo objeto que se genere a partir de la imaginación del hombre) conlleva intrínsecamente un proceso creativo. Este proceso creativo lo llamaremos ciclo de vida.

Continuando con la analogía artística, podemos observar que según el producto, es el ciclo de vida que la obra lleva tatuada en su creación. La escultura, debido al proceso irreversible de la eliminación del material sobrante de la piedra, requiere por fuerza que sea un proceso lineal. Este ciclo de vida se le conoce como desarrollo en cascada. El escultor desde el principio tiene la idea general de la figura final y poco a poco va acercándose al producto deseado, sin hacer cambios en el diseño.

¿Cómo puedo hacer una escultura? Simplemente retirando del bloque de mármol todo lo que no es necesario.

Miguel Angel

El nivel de detalle aplicado a la obra depende de la calidad del autor, su tiempo empleado en el producto y la magnitud de la obra.

Por otro lado, si nos orientamos en la pintura, el artista, va aplicando varias capas a la obra. Comienza por generar una imagen mental de la obra final, hace un primer sketch, quizá con lapices y suavemente marcado en el oleo, pasa a los trazos mas gruesos y finalmente ataca los detalles de la obra.
La obra va siendo construida de forma incremental, los primeros trazos podrían por si mismos ser ya una representación de la imagen final o incluso, podrían ser una obra de arte por si mismos.

En software, el ciclo de vida iterativo cumple con estas características. Se especifica un conjunto de requerimientos, se implementan para luego ser validados. Conforme las iteraciones aumentan, el producto posee más y más componentes, satisface más requerimientos y por ende, el producto se vuelve más grande.

El cine, en contraste, al ser un proyecto tan grande ( y costoso ) es segmentado en pequeños subprocesos, conocidos como escenas, las cuales son producidas en función de una lista de documentos ( conocidos como guiones) los cuales, se hallan muy bien descritos, al grado que cubren exactamente las necesidades de dicho subproceso.

En software, todo proyecto posee documentación, es decir, un conjunto de documentos y comentarios que justifican, acorde a los requerimientos del cliente), cada componente del código.

Todo proyecto necesita una buena descripción, para futuras referencias. En software tenemos la documentación, en el cine tenemos el guion.

Volviendo al cine, la forma de creación de dichas escenas se vuelve un proceso repetitivo, de constante mejora, hasta que, cada escena es aprobada para el proyecto.
Las escenas entre sí, aún conlleven una relación cronológica, muchas veces son independientes entre sí, o no son del todo indispensables.

En el desarrollo de software, existen ciclos de vida como el ciclo espiral, las técnicas AGILE o el desarrollo de software por componentes, que son útiles para proyectos más grandes, separables en componentes independientes y que cuentan con una mayor complejidad.

Debemos tomar en cuenta, que la obra de arte en si misma, es infértil en cuanto al impacto ante el consumidor final, si no posee un canal de distribución y un modelo de negocio que haga viable la producción de la obra. En el software es sumamente necesario que el ciclo de vida considere la llegada del producto al usuario final.
El ciclo de vida no acaba aquí. Constantemente se realizan restauraciones de obras, algunas otras son reconstruidas, se publican copias o impresiones, se hacen remakes de películas o finalmente las obras llegan a destruirse. En el software, se realiza mantenimiento, actualizaciones o nuevas versiones del producto.

Podríamos ahondar en la analogía, pero detengámonos un momento. Observe que si bien, al final tenemos como resultado una obra de arte, el proceso para idearla, producirla, distribuirla y mantenerla es distinto en cada caso.

Así también con el software.

Software Development Life CicleEl ciclo de vida del desarrollo de software

Existen una infinidad de ciclos de vida diseñados específicamente para crear productos de software. Ningún ciclo de vida es mejor que el otro, cada uno se ajusta mejor a ciertos proyectos.

La gran diferencia en nuestra analogía artística, el objetivo de la creación de software, es generar un producto que solucione la problemática de nuestro cliente.

  • Phase 1: Requirement collection and analysis
  • Phase 2: Feasibility study:
  • Phase 3: Design:
  • Phase 4: Coding:
  • Phase 5: Testing:
  • Phase 6: Installation/Deployment:
  • Phase 7: Maintenance:

A pesar de que existen una infinidad de ciclos de vida distintos, todos siguen más o menos este esquema general. Es responsabilidad del ingeniero en software seleccionar y apegarse al ciclo de vida que más se le ajuste a un proyecto.

El objetivo de este pequeño post es explicar con peritas y manzanitas conceptos de software, pero si quieres explicaciones para niños grandes, te recomiendo este post: https://raygun.com/blog/software-development-life-cycle/

Si bueno, ahora que?

La moraleja de esta historia, mi querido lector, se encuentra oculta en las analogías. El desarrollar software puede llegar a ser un proceso intuitivo por naturaleza, en el cual, los fundamentos para generar software de calidad, los hallamos en las actividades cotidianas.

Si gustas aprender más sobre los ciclos de vida del software, te invito no solamente a leer las típicas paginas que te hallas en internet ( Wikipedia cof cof), sino que, día a día, busca en los objetos comunes su ciclo de vida. Busca su forma de fabricación y trata de conectarlo con los distintos modelos de ciclos de vida de software.

La mejor manera de aprender algo nuevo, es conectarlo con lo que ya conoces.

Anuncios

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

Crea tu página web en WordPress.com
Empieza ahora
A %d blogueros les gusta esto: