La Agencia Espacial en días anteriores ha
perdido un satélite de comunicación
debido al fallo del software del mismo. La investigación indicó que la falla
fue porque no se cubrieron los
requisitos de programación del sistema
especificados por la propia Agencia.
La Agencia Espacial tiene que
remplazarlo lo más pronto posible, ya que las comunicaciones con las naves
espaciales dependen del mismo. Afortunadamente para la Agencia, existe un nuevo
satélite ya construido que estaba
programado para ser lanzado en un año, el inconveniente es que si se carga el
mismo software el satélite se volverá a perder.
Nuestra empresa "El Pato Volador" ha sido contratada para desarrollar el software del satélite en un proyecto de 3 meses como máximo, ya que es el tiempo en que
retornará la próxima nave espacial que necesita los servicios del satélite para
poder retornar a la tierra.
A continuación daré información acerca de las metodologías ágiles de programación que existen (características, ventajas y desventajas, tipos de metodologías ágiles) para poder dar propuestas a nuestro cliente acerca de la metodología a utilizar.
¿Qué son las metodologías ágiles de desarrollo de software?
Son aquellas que surgen como una alternativa, una reacción a las metodologías tradicionales tales como el plumbing (pesadez en inglés refiriendose al exceso de documentación y lentitud de reacción), y el incomplimiento de las expectativas de las metodologías existentes para poder desarrollar sofware de manera rápida no renunciando a las prácticas escenciales para asegurar la calidad del producto.
¿Cuáles son las características en las que se basan las metodologías ágiles?
-desarrollo iterativo
- reducción de artefactos intermedios
- alto grado de comunicación entre el equipo
- se colabora con el cliente
- se adapta a cambios
¿Cuáles son las ventajas y desventajas del empleo de las metodologías ágiles respecto a las tradicionales?
Ventajas
Están prearadas para cambios drante el proyecto
Usa Grupos pequeños, de menos de 10 integrantes
Es muy flexible (no hay contrato)
Se es más sencillo la identificación de presuntos problemas con el sistema ya que el cliente está siempre trabajando al lado del desarrollador
Desventajas
No es aplicable cuando se trata de proyectos grandes
Se hace menos enfasis en la arquitectura del software
En consecuencia de lo anterior hay una deficiencia en el análisis
¿Cuándo es recomendable utilizar metodologías ágiles en el desarrollo de software?
Cuando el entorno del sistema es muy cambiante y donde se exige reducir drásticamente los tiempos de desarrollo pero manteniendo una alta calidad o cuando los proyectos son pequeños
¿Cuáles son algunos tipos de metodologías ágiles?
* Scrum
Está especialmente indicada para proyectos con un rápido cambio de requisitos. Sus principales características se pueden resumir en dos. El desarrollo de software se realiza mediante iteraciones, denominadas sprints, con una duración de 30 días. El resultado de cada sprint es un incremento ejecutable que se muestra al cliente. La segunda característica importante son las reuniones a lo largo proyecto, entre ellas destaca la reunión diaria de 15 minutos del equipo de desarrollo para coordinación e integración.
* Extreme programming
es una metodología ágil centrada en potenciar las relaciones interpersonales como clave para el éxito en desarrollo de software, promoviendo el trabajo en equipo, preocupándose por el aprendizaje de los desarrolladores, y propiciando un buen clima de trabajo
* Test Driven development
Basado en pruebas de desarrollo (TDD) es una técnica avanzada de la utilización de pruebas unitarias automatizadas para impulsar el diseño de software y la fuerza de desacoplamiento de las dependencias. El resultado del uso de esta práctica es un conjunto completo de pruebas de unidad que se pueden ejecutar en cualquier momento para proporcionar información que el software todavía está trabajando. Esta técnica está fuertemente enfatizada por los que utilizan metodologías ágiles de desarrollo.
* Crystal methodologies
Se trata de un conjunto de metodologías para el desarrollo de software caracterizadas por estar centradas en las personas que componen el equipo y la reducción al máximo del número de artefactos producidos
* Agile Project Management
reduce la complejidad al descomponer los muchos meses de duración del ciclo de los requisitos de construcción de todo el proyecto, la construcción de todo el producto y luego las pruebas para encontrar cientos de defectos del producto
¿Cuáles son algunos tipos de metodologías ágiles?
* Scrum
Está especialmente indicada para proyectos con un rápido cambio de requisitos. Sus principales características se pueden resumir en dos. El desarrollo de software se realiza mediante iteraciones, denominadas sprints, con una duración de 30 días. El resultado de cada sprint es un incremento ejecutable que se muestra al cliente. La segunda característica importante son las reuniones a lo largo proyecto, entre ellas destaca la reunión diaria de 15 minutos del equipo de desarrollo para coordinación e integración.
* Extreme programming
es una metodología ágil centrada en potenciar las relaciones interpersonales como clave para el éxito en desarrollo de software, promoviendo el trabajo en equipo, preocupándose por el aprendizaje de los desarrolladores, y propiciando un buen clima de trabajo
* Test Driven development
Basado en pruebas de desarrollo (TDD) es una técnica avanzada de la utilización de pruebas unitarias automatizadas para impulsar el diseño de software y la fuerza de desacoplamiento de las dependencias. El resultado del uso de esta práctica es un conjunto completo de pruebas de unidad que se pueden ejecutar en cualquier momento para proporcionar información que el software todavía está trabajando. Esta técnica está fuertemente enfatizada por los que utilizan metodologías ágiles de desarrollo.
* Crystal methodologies
Se trata de un conjunto de metodologías para el desarrollo de software caracterizadas por estar centradas en las personas que componen el equipo y la reducción al máximo del número de artefactos producidos
* Agile Project Management
reduce la complejidad al descomponer los muchos meses de duración del ciclo de los requisitos de construcción de todo el proyecto, la construcción de todo el producto y luego las pruebas para encontrar cientos de defectos del producto
MAPA CONCEPTUAL
Presentación
Fuentes consultadas
- Canós, J. H.. (2003). Metodologías Ágiles en el Desarrollo de Software. Recuperado en Febrero 25, 2016, de Grupo ISSI Sitio web: http://issi.dsic.upv.es/archives/f-1069167248521/actas.pdf
- Riola, J. (2008). Metodologías Ágiles: HERRAMIENTAS Y MODELO DE DESARROLLO PARA APLICACIONES JAVA EE COMO METODOLOGÍA EMPRESARIAL. Recuperado en Febrero 25, 2016, de Up Commons Sitio web: http://upcommons.upc.edu/bitstream/handle/2099.1/5608/50015.pdf?sequence=1
- Version One. (2012). Agile Project Management. Recuperado en Febrero 25, 2016, de VersionOne Sitio web: https://www.versionone.com/agile-project-management/ (En inglés)
- Palermo J. (2006). Guidelines for Test-Driven Development. Recuperado en Febrero 25, 2016, de Microsoft Developer Network Sitio web: https://msdn.microsoft.com/en-us/library/aa730844(v=vs.80).aspx (En inglés)
Este proyecto es meramente ficticio y el post no tiene otro objetivo mas que el de dar una visión general acerca de las metodologías ágiles de programación. Cualquier parecido con la realidad es únicamente coincidencia
No hay comentarios.:
Publicar un comentario