domingo, 12 de febrero de 2017

Métodos Ágiles de Programación



Por lo general cuando se habla de método se habla de un conjunto de herramientas y tecnicas para llevar a cabo una tarea o un objetivo seleccionado.
El software no se salva de los métodos, y es por eso que hay un sin fin de ellos para desarrollar programas, a esta metodología de desarrollo en donde se sigue una serie de pasos se le conoce como ciclo de vida del Software.

Muchos desarrolladores de software han buscado la mejor metodología para el desarrollo de los mismos, sin embargo no se puede decir cual es el mejor depende de la situación y de un sin fin de factores externos al software.
A continuación tocaremos algunos de ellos, sin embargo nos enfocaremos en el método ágil que posteriormente tocaremos más a fondo a lo largo de el artículo.

Modelo Iterativo e incremental:  Este modelo Ambos rompen el ciclo de desarrollo y repiten el modelo waterfall en cada una de las partes en que lo divide.
Estos modelos buscan reducir el tiempo de desarrollo.
Modelo Secuencial:Este es uno de los métodos más conocidos, también se le llama modelo de cascada o Waterfall. Se inicia con un amplio análisis de los requerimientos del cliente.
Modelo Espiral:Comprende las mejores características de ciclo de vida clásico y el prototipado 


Vistos estos modelos entraremos de lleno en el método Ágil, usaremos el siguiente mapa conceptual para describir de donde surge, por que surge, y las características de este modelo




Como se puede ver empezó por la necesidad de otro enfoque en el desarrollo de software y fue por que en la crisis de software había una gran cantidad de documentación necesario para llevar a cabo los proyectos, a pesar de que si era necesario, los desarrolladores mostraron cierta incomodidad a este modelo, por lo que se busco un cambio.
Este nuevo modelo se inicio en Febrero de 2001 por "The Agile Allience" en Utah-Estados Unidos. En esta reunión se juntaron 17 expertos de la industria del software.
La filosofía del método ágil es buscar desarrollar el software de manera cambiante para complacer al cliente en la medida que se va desarrollando el mismo.
Por esta razón el cliente forma parte del equipo y el software puede cambiar constantemente con el fin de moldear las ideas del cliente. Este proceso se realiza con a mayor simplicidad posible.
Es importante decir que este metodo se usa normalmente en proyectos pequeños en donde el equipo es de maximo 20 programadores, y se busca que trabajen en pareja, es de vital importancia que el grupo este motivado.

Dicho esto pasamos a colocar los 12 puntos que The Agile Allience publico en su manifiesto ágil:
I. La prioridad es satisfacer al cliente mediante tempranas y continuas entregas de
software que le aporte un valor.
II. Dar la bienvenida a los cambios. Se capturan los cambios para que el cliente tenga una
ventaja competitiva.
III. Entregar frecuentemente software que funcione desde un par de semanas a un par de
meses, con el menor intervalo de tiempo posible entre entregas.
IV. La gente del negocio y los desarrolladores deben trabajar juntos a lo largo del proyecto.
V. Construir el proyecto en torno a individuos motivados. Darles el entorno y el apoyo que
necesitan y confiar en ellos para conseguir finalizar el trabajo.
VI. El diálogo cara a cara es el método más eficiente y efectivo para comunicar información
dentro de un equipo de desarrollo.
VII. El software que funciona es la medida principal de progreso.
VIII. Los procesos ágiles promueven un desarrollo sostenible. Los promotores,
desarrolladores y usuarios deberían ser capaces de mantener una paz constante.
IX. La atención continua a la calidad técnica y al buen diseño mejora la agilidad.
X. La simplicidad es esencial.
XI. Las mejores arquitecturas, requisitos y diseños surgen de los equipos organizados por sí
mismos.
XII. En intervalos regulares, el equipo reflexiona respecto a cómo llegar a ser más efectivo, y
según esto ajusta su comportamiento.

Estos puntos si se observan detalladamente es lo que se describió previamente
Como se puede observar en el mapa hay varios métodos ágiles, aqui solo los mencionaremos:
-XP
-Crystal
-Scrum

Evaluación

1.  Los métodos ágiles se utilizan en:
a)  Programación Orientada a Objetos
b)  Desarrollo de software
c)  Soporte de Software
d)  Programación estructurada
e)  Calidad de Software
2.  ¿Qué modelo de desarrollo de software utilizan los métodos ágiles?
a)  Cascada
b)  Lineal
c)  Iterativo
d)  Espiral
e)  Evolutivo

3.  ¿Cuáles son las principales características en las que se basa el método ágil?
a)  Trabajo en equipo, adaptable, avances funcionales
b)  Satisfacción del cliente, reduce tiempo, una sola entrega final.
c)  Comunicación, no se adapta a los cambios, no es interactivo.
d)  Orientado a resultados, no hay comunicación, no hay trabajo en equipo

4.  ¿Cuáles son las características que  diferencian al método ágil del convencional?
a)  El cliente participa en el equipo de desarrollo
b)  Trabajo en equipo
c)  Satisfacción del cliente
d)  Presenta avances incrementales del proyecto al cliente
e)  Adaptable en cualquier etapa del proyecto

5.  En los métodos ágiles el cliente:
a)  Desarrolla Software
b)  Se incorpora al equipo de trabajo
c)  Trabaja en otros proyectos de software
d)  Resuelve problemas de comunicación del equipo
e)  Proporciona los recursos materiales

Conclusión: 
Para llevar a cabo el cliclo de vida de desarrollo de software hay varios métodos sin embargo todo depende de la circunstancia,de la magnitud del proyecto, del tiempo, entre otros factores.
El método ágil busca cambiar muchas cosas del método clásico o tradicional, adaptandose a las necesidades que se van presentado, otro punto importantes es que en ocasiones el aplicar método ágil, nadie garantiza que será más rápido por lo que hay que tener mucho cuidado en esto
Bibliografía:
-Jose Carlos Carvajal Riola. (Septiembre 2008). METODOLOGÍAS ÁGILES: HERRAMIENTAS Y MODELO DE DESARROLLO PARA APLICACIONES JAVA EE COMO METODOLOGÍA EMPRESARIAL. España
José H. Canós, Patricio Letelier y Mª Carmen Penadés. (2000). Métodologías Ágiles en el Desarrollo de Software. 8.


No hay comentarios:

Publicar un comentario