domingo, 28 de febrero de 2016

Nuevo Proyecto**

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



MAPA CONCEPTUAL




Presentación




Fuentes consultadas


  1. 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
  2.  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
  3. 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)
  4. 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)


**IMPORTANTE
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