Anteriormente, en los años 80's y principios de los 90's se tenía a opinión general un mejor software era con ayuda de una planificación cuidadosa, sin embargo, cuando se quiso implementar este enfoque a proyectos pequeños o a los negocios medianos, se invertía mucho tiempo y esfuerzo en cómo se desarrollaría el software y las pruebas del mismo más que en el desarrollo en sí ... Ésto provocó descontento en los desarrolladores de software.
No obstante, no se quedaron con los brazos cruzados, por lo que pensaron en una nueva metodología que pudiera agilizar el proceso de desarrollo de software. Se propuso un método en el cual el desarrollo del software fuera iterativo, es decir, construir proyectos pequeños y funcionales para así mostrárselo al cliente y de esta forma el cliente vería un avance funcional y no solamente de documentación, pero para lograrlo debería de considerar lo siguiente:
Según Jacobson, un equipo ágil es un equipo rápido que responde de manera apropiada a los cambios.
El Manifiesto para desarrollar:
- A los individuos y sus interacciones con procesos y herramientas.
- Al software en funcionamiento sobre la documentación externa.
- A la colaboración del cliente sobre la negociación de contrato
- A la respuesta al cambio sobre el seguimiento de un plan
El manifiesto resalta la entrega del software rápido y le resta importancia a los productos de trabajo, además adopta al cliente como parte del equipo desarrollador.
No solamente se tiene un manifiesto para esta manera de programar, sino que también estás definidos 12 principios de la agilidad, los cuales se resumen a continuación:
- Nuestra mayor prioridad es satisfacer al cliente mediante la entrega temprana
- Bienvenidos todos los cambios
- Entregar (...) software funcionando (...) con una escala de tiempo más corto.
- La gente de negocios y desarrolladores deben de trabajar juntos a diario (...)
- Construir el ambiente alrededor de individuos motivados, Darles el ambiente, soporte, (...) y confiar en ellos
- El método más eficiente de transmitir la información (...) es la conversación cara a cara.
- El software funcionando es la medida primaria del progreso.
- Los procesos ágiles promueven el desarrollo sustentable (...)
- La atención continua, la excelencia técnica y al buen diseño mejora la agilidad
- La simplicidad (...) es esencial
- Los mejores arquitectos (...) emergen de equipos auto-organizados
- A intervalos regulares, el equipo refleja la forma en que se puede volver más efectivo, entonces su comportamiento se ajusta y adecua en conocimientos.
Conclusión:
Los métodos tradicionales de desarrollo de software no fueron factibles para el desarrollo de sistemas pequeños, haciéndolo más tardado ya que existe el principio de que sin la documentación completa (documento de requerimientos, casos de uso, diagrama entidad-relacion, etc) no es posible desarrollar el sistema.
Considero que el cliente en ocasiones no sabe ni lo que quiere, y que los requerimientos son algo que puede cambiar parcial o totalmente la funcionalidad del sistema y si estamos esperanzados a que se terminen de hacer el análisis de requerimientos, simplemente el desarrollo será muy tardado. Ésto puede llegar a fastidiar al cliente y por consiguiente a hacerlo rechazar el proyecto.
En cambio, los métodos ágiles de programación hacen que el desarrollo de software sea, valga la redundancia, de manera rápida, el desarrollo pasa a ser iterativo e incremental, el software adquierie poco a poco la funcionalidad que desea el cliente, y no sólo eso, hace que el cliente se integre al equipo, lo cual beneficia tanto al cliente como al equipo desarrollador.
Por tanto, si se va a desarrollar un proyecto pequeño, o si se tiene una mediana empresa, el método ágil de desarrollo es algo esencial para una mayor satisfacción del cliente; de lo contrario, es mucho mejor utilizar métodos de desarrollo tradicional.
Referencias:
Referencias:
- Sommerville, I. and Alfonso Galipienso, M. (2005). Ingeniería del software. Madrid: Pearson Addison-Wesley.
No hay comentarios.:
Publicar un comentario