domingo, 12 de febrero de 2017

Métodos Ágiles De Programación

Métodos Ágiles De Programación


Introducción 

En este ensayo se hablará sobre las nuevas metodologías agiles de programación, las cuales debido al entorno moderno que existe hoy día son las más apropiadas, se mencionara cómo funcionan y como por medio de sus 12 manifiestos permite crear software de calidad. También se hablará sobre los distintos tipos de metodologías que existen y las características que estas tienen, enfatizando en la metodología XP, la cual es la más reconocida, se indicara el proceso y las practicas que esta lleva acabo además de los distintos roles que se desempeñan en dicha metodología.


Desarrollo 

Los métodos agiles de programación se basan en la filosofía de que el cliente debe involucrarse en el desarrollo del sistema además de llevarse a cabo un desarrollo incremental con iteraciones cortas. Este tipo de metodología es apropiada para proyectos pequeños en los que se requiera de calidad llevando procesos de manera simple, todo esto es un periodo de tiempo corto. A diferencia de los métodos tradicionales, los cuales son empleados en proyectos más grandes los cuales necesiten tener un alto grado de precisión en el desarrollo de este.
Existen 12 manifiestos en los que se mencionan las características de la metodología ágil.
1.- Lo más importante es satisfacer al cliente por medio de entregas continuas para que así este pueda ver los avances.
2.-Esta metodología acepta cambios en la planificación en cualquier punto del proyecto.
3.- Se dan constantes entregas de software al cliente en un intervalo mínimo de tiempo, en donde este sea funcional.
4.- Tanto el cliente al quien se le esta desarrollando el software como el equipo deben de trabajar juntos durante todo el desarrollo.
5.-El proyecto se tiene que llevar acabo en un entorno agradable para todo el equipo y se les tiene que brindar todo el apoyo durante el proceso.
6.-La comunicación es cara a cara entre todos los miembros con el fin de compartir información.
7.-La forma de medir el progreso que hay en el desarrollo del proyecto es el software funcional.
8.- El proyecto se debe basar en un desarrollo sostenible, capaz de mantener un ritmo constante.
9.- Se debe poner especial atención en la técnica que se lleva acabo y mantener un buen diseño.
10.- Mantener un alto grado de simplicidad en todo el proceso.
11.- Debe de existir una auto organización entre todo el equipo.
12.-Durante el proceso de desarrollo el equipo debe de analizar si pueden optimizar sus técnicas con el fin ser más eficientes.

Existen varios tipos de metodologías simples una de las más importantes es la programación extrema la cual se enfoca principalmente en la capacidad para aceptar cambios y mantener un vínculo entre los integrantes con el fin de que el trabajo en equipo proporcione los mejores resultados  y en caso de que se requiera poder dar una retroalimentación entre miembros del equipo incluyendo al cliente el cual forma parte fundamental de este, además de lograr un buen ambiente de trabajo todo esto para poder ofrecer rápidas soluciones.
En la metodología XP se desempeñan distintos roles:
Programador: Es la persona que lleva a cabo la codificación y pruebas unitarias del sistema.
Cliente: Crea las historias de usuario para poder establecer los requerimientos de software y también las pruebas que se aplicaran al mismo.
Encargado de Pruebas: Escribe, ejecuta y publica los resultados que se arrojan al realizar las pruebas.
Encargado de seguimiento: Con el fin de mejorar la eficiencia del equipo esta persona proporciona la retro alimentación necesaria para que puedan desempeñarse mejor.
Entrenador: Se encarga de dirigir al equipo para que este realice los procesos correctos según la metodología XP.
Consultor: Persona externa al equipo a la cual se le consulta sobre temas en específico.
Gestor: Es el enlace entre el cliente y el equipo además de que se encarga de coordinar el trabajo que se desempeña en este.

El proceso que se debe de seguir en esta metodología es:
·    El cliente fija el valor de negocio a implementar.
·    El programador calcula el trabajo necesario para poder desarrollar el proyecto.
·    El cliente decide que se va a elaborar según sus intereses y el tiempo en el que lo desea.
·    El programador desarrolla lo que el cliente pido.
·    Se repite el proceso.

En esta metodología con el fin de alcanzar el mejor desempeño se llevan a cabo las siguientes prácticas:
El juego de planificación: entre el cliente y los desarrolladores proyectan los objetivos que se quieren alcanzar, con qué medios y en qué tiempo además se acuerdan las entregas en las que se van a estar proporcionando durante este proyecto.
Entregas pequeñas: Los programadores en no más de 3 meses deben de proporcionar entregas funcionales del sistema al cliente.
Metáfora: Por medio de una metáfora se explica cómo funcionara el sistema.
Diseño simple: El sistema se basará en un diseño simple que no comprometa la calidad.
Pruebas: Se realizan constantemente pruebas al sistema, previamente definidas por el cliente.
Refactorización: Con el fin de proporcionar un sistema de mayor calidad durante el desarrollo se modifica y mejora el código para depurarlo y simplificarlo.
Programación en parejas: La codificación se lleva a cabo entre dos personas para reducir los errores y ser más eficientes.
Propiedad colectiva del código: En cualquier momento pueden realizarse modificaciones al código por parte de cualquier programador.
Integración continua: Tan pronto se concluya una parte del código esta se deberá de integrar al sistema.
40 horas por semana: No se debe de trabajar más de 40 hora a la semana con el fin de no desmotivar al equipo.
Cliente in-situ: El cliente se deberá de encontrar disponible y presente durante todo el proceso.
Estándares de programación: Se debe de mantener el código legible entre los programadores siguiendo ciertos estándares.

También existen más tecnologías aparte de la XP aun que son menos reconocidas tales como:
SCRUM: se caracteriza principalmente por las iteraciones que lleva acabo llamadas Sprints las cuales tienes una duración de 30 días y el resultado de estas es mostrado cliente, y por las reuniones que realiza el equipo durante todo el proyecto con el fin de coordinarse.
Cristal Methologies: En esta metodología el trabajo en equipo es fundamental al igual que las personas que lo componen además de que se enfoca en reducir al máximo los artefactos que se producen.
Dynamic Systems Development Method: Se caracteriza por su proceso incremental y la coordinación entre el cliente y el equipo. Sugiere cinco fases: estudio vialidad, estudio del negocio, modelado funcional, diseño, construcción y finalmente la implementación.
Adaptive Software Development: Es iterativo se basa principalmente en los componentes de los cuales se conforma el software además de que acepta los cambios. Sugiere tres fases: especulación, colaboración y el aprendizaje.
Feature-Driven Development: Sus iteraciones son cortas y las fases que sugiere son el diseño y la implementación del sistema.
Lean Development: Se caracteriza por su mecanismo para implementar cambios de la manera más eficiente.


Conclusión 

Se concluye que las metodologías ágiles tales como la XP, SCRUM,Cristal Methologies, etc. empleando sus distintas practicas y desempeñando sus respectivos roles se vuelen la mejor opción para proyectos modernos y pequeños ejecutándose de una manera simple pero sin comprometer la calidad del sistema, por otra parte en esta metodología el cliente es una parte fundamental del desarrollo y además tiene la capacidad de ser más flexible es decir es tolerante a cambios en cualquier parte del proyecto a diferencia de los métodos tradicionales los cuales debido a su rígida estructura no permiten cambios, además de la extensa cantidad de documentación que se produce lo cual no pasa en las metodologías agiles, en estas la documentación es mínima al menos que en verdad sea necesaria será breve, todo esto llevándose a cabo en el menor tiempo posible, por lo tanto estas características vuelven a esta metodología una de las más eficientes en la actualidad.

Referencias 

HOSTING, O. (s.f.). okhosting.com. Obtenido de okhosting.com: http://okhosting.com/blog/metodologias-del-desarrollo-de-software/
José H. Canós, P. L. (s.f.). Métodologías Ágiles en el Desarrollo de Software.
spanishpmo.com. (28 de Octubre de 2011). Obtenido de spanishpmo.com: http://spanishpmo.com/index.php/los-12-principios-del-manifiesto-agil/






No hay comentarios.:

Publicar un comentario