Aproximación Darwiniana al Desarrollo de Software
13/06/08 18:16
He estado interesado en la Ingeniería de Software
durante muchos años y durante ese período he visto
avances muy importantes que indudablemente han tenido
un impacto. Sin embargo no deja de llamarme la
atención que muchos de los problemas permanecen:
- proyectos que demoran mucho más que lo estimado
- usuarios insatisfechos
- mala calidad de los productos
En algunas ocasiones un proyecto concluye con un software que tiene muchos problemas y tampoco satisface a los usuarios pero después de un doloroso proceso de ajustes, cambios, modificaciones, entrenamientos de personas, etc. finalmente comienza a verse de otro modo hasta transformarse incluso en una pieza fundamental de la organización que nadie quiere arriesgarse a cambiar. En realidad me atrevo a sugerir que en un porcentaje mayoritario de casos el producto solo es satisfactorio despues de un proceso de adaptación.
Lo anterior me ha hecho pensar que quizás el acercamiento al desarrollo de software debería ser concebido con una fllosofía evolutiva o darwiniana desde un principio. Preparar una "especie" básica con capacidades para autoreplicarse y mutar en versiones que estén mejor dotadas para enfrentar el ambiente en que están instaladas. Con el auge actual de aplicaciones basadas en la Web se podría incorporar mecanismos de participación colectiva en que los mismos usuarios participen e incluso voten sobre diversos aspectos de la aplicación los que deberían traducirse mas tarde en forma automatizada, semiautomatizada o manual en nuevas versiones del software.
Esto plantea interesantes preguntas relacionadas con los contratos. Por ejemplo un contrato de servicios tendría que incluir un período evolutivo incluido. Es posible que haya que especificar un número de mutaciones garantizadas, etc.
Personalmente soy de los que creen que las ideas de evolución darwinianas son extraordinarias y no aplican solo a los seres vivos.
- proyectos que demoran mucho más que lo estimado
- usuarios insatisfechos
- mala calidad de los productos
En algunas ocasiones un proyecto concluye con un software que tiene muchos problemas y tampoco satisface a los usuarios pero después de un doloroso proceso de ajustes, cambios, modificaciones, entrenamientos de personas, etc. finalmente comienza a verse de otro modo hasta transformarse incluso en una pieza fundamental de la organización que nadie quiere arriesgarse a cambiar. En realidad me atrevo a sugerir que en un porcentaje mayoritario de casos el producto solo es satisfactorio despues de un proceso de adaptación.
Lo anterior me ha hecho pensar que quizás el acercamiento al desarrollo de software debería ser concebido con una fllosofía evolutiva o darwiniana desde un principio. Preparar una "especie" básica con capacidades para autoreplicarse y mutar en versiones que estén mejor dotadas para enfrentar el ambiente en que están instaladas. Con el auge actual de aplicaciones basadas en la Web se podría incorporar mecanismos de participación colectiva en que los mismos usuarios participen e incluso voten sobre diversos aspectos de la aplicación los que deberían traducirse mas tarde en forma automatizada, semiautomatizada o manual en nuevas versiones del software.
Esto plantea interesantes preguntas relacionadas con los contratos. Por ejemplo un contrato de servicios tendría que incluir un período evolutivo incluido. Es posible que haya que especificar un número de mutaciones garantizadas, etc.
Personalmente soy de los que creen que las ideas de evolución darwinianas son extraordinarias y no aplican solo a los seres vivos.
|