Durante muchos años, el desarrollo de software ha sido igualado a otras tareas de ingeniería como las ingenierías civil o mecánica. Se ha intentado establecer un paralelismo entre las tareas y procesos de las ingenierías tradicionales y la Ingeniería del Software.
Individuos e interacciones sobre procesos y herramientas
Busca la entrega de software funcional al cliente. El cliente tiene necesidades que no se van a suplir con documentación o presentaciones. El software ha de ser la herramienta que permita al cliente el desarrollo de su actividad.
Trabajo en equipo con el cliente, ayudándole en la definición de su proyecto. Para ello, la realización de pequeñas entregas de software real es la forma más sencilla que permite ser flexible al cambio y lo asume como algo normal en el proceso de desarrollo.
Eso sí, el seguimiento del desarrollo ágil de software no quiere decir que se olviden las prácticas de Ingeniería válidas. El análisis, diseño, implementación y pruebas de software son fundamentales en el desarrollo ágil. En este marco de trabajo no son fases, sino que están presentes en cada una de las tareas de desarrollo del proyecto.
Estos principios ágiles son los que nos mueven a la hora de desarrollar el software en intelligenia, poniendo las necesidades del cliente por delante de la creación de un proceso ortodoxo, rígido y, en definitiva, poco útil.
El problema es que la Ingeniería del Software es una disciplina en la que la que no se trabaja con productos materiales, sino con ideas y las ideas son mucho más maleables que el mundo tangible. Eso nos lleva a pensar que los procesos de creación de un proyecto software no serán los mismos que los de una carretera, por ejemplo.
La Ingeniería del Software tradicional ha caído en este error y durante mucho tiempo se establecieron metodologías de desarrollo pesadas y que buscaban definir completamente el problema a resolver y luego desarrollarlo, tal y como se hace en las ingenierías tradicionales.
Pero, como decimos, el código fuente es modificable y puede adaptarse a las necesidades constantes del mercado. El no hacerlo supone un perjuicio que no se puede aceptar.
Además, el mundo de las ideas es desconocido. Lo normal es que nuestro cliente no sepa al 100% qué es lo que quiere al inicio del proceso de desarrollo: lo irá descubriendo poco a poco conforme transcurra el proyecto y el software funcionando.
Unos cuantos desarrolladores de software con amplia experiencia se reunieron en Utah (EE. UU.) para crear un marco común de trabajo de todas las prácticas que ya estaban poniendo en práctica para resolver estos problemas. Así, nació el manifiesto ágil:
Estamos descubriendo formas mejores de desarrollar software tanto por nuestra propia experiencia como ayudando a terceros. A través de este trabajo hemos aprendido a valorar:
Individuos e interacciones sobre procesos y herramientas
Software funcionando sobre documentación extensiva
Colaboración con el cliente sobre negociación contractual
Respuesta ante el cambio sobre seguir un plan
Esto es, aunque valoramos los elementos de la derecha, valoramos más los de la izquierda.
"El desarrollo ágil de software pone en valor la auto-organización de los equipos a la hora de trabajar, acabando con las estructuras jerárquicas tradicionales que limitaban la comunicación"
Busca la entrega de software funcional al cliente. El cliente tiene necesidades que no se van a suplir con documentación o presentaciones. El software ha de ser la herramienta que permita al cliente el desarrollo de su actividad.
Trabajo en equipo con el cliente, ayudándole en la definición de su proyecto. Para ello, la realización de pequeñas entregas de software real es la forma más sencilla que permite ser flexible al cambio y lo asume como algo normal en el proceso de desarrollo.
Eso sí, el seguimiento del desarrollo ágil de software no quiere decir que se olviden las prácticas de Ingeniería válidas. El análisis, diseño, implementación y pruebas de software son fundamentales en el desarrollo ágil. En este marco de trabajo no son fases, sino que están presentes en cada una de las tareas de desarrollo del proyecto.
Estos principios ágiles son los que nos mueven a la hora de desarrollar el software en intelligenia, poniendo las necesidades del cliente por delante de la creación de un proceso ortodoxo, rígido y, en definitiva, poco útil.
¿Sigues desarrollando como en los años 70 o eres ágil? ;-)
No hay comentarios:
Publicar un comentario