domingo, 6 de diciembre de 2015

METODOLOGÍAS XP

Metodologías xp
1.-contenido:

v Definición:

 XP se puede definir como un conjunto de pasos de diversas metodologías, acopladas de manera que sean pasos flexibles a seguir utilizadas con el uso común, para realizar un desarrollo más agradable y sencillo.
Esta metodología tiene como base la simplicidad y como objetivo principal la satisfacción del cliente; para lograrlo se deben tomar en cuenta cuatro valores fundamentales:
-       Comunicación
-       Simplicidad
-       Retroalimentación
-       Coraje

v Características:





         ü  Desarrollo iterativo e incrementar: pequeñas mejoras, unas tras otras.
ü  Pruebas unitarias continuas: frecuentemente repetidas y automatizadas, incluyendo pruebas de regresión. Se aconseja escribir el código de la prueba antes de la codificación.
ü  Programación en parejas: se recomienda que las tareas de desarrollo se lleven a cabo por dos personas en un mismo puesto. Se supone que la mayor calidad del código escrito de esta manera -el código es revisado y discutido mientras se escribe es más importante que la posible pérdida de productividad inmediata.
ü  Frecuente integración del equipo de programación con el cliente o usuario: Se recomienda que un representante del cliente trabaje junto al equipo de desarrollo.
ü  Corrección de todos los errores: Antes de añadir nueva funcionalidad. Hacer entregas frecuentes.
ü  Refactorización del código, es decir, rescribir ciertas partes del código para aumentar su legibilidad y mantenibilidad pero sin modificar su comportamiento. Las pruebas han de garantizar que en la refactorización no se ha introducido ningún fallo.
ü  Propiedad del código compartida: en vez de dividir la responsabilidad en el desarrollo de cada módulo en grupos de trabajo distintos, este método promueve el que todo el personal pueda corregir y extender cualquier parte del proyecto. Las frecuentes pruebas de regresión garantizan que los posibles errores serán detectados.
ü  Simplicidad en el código: es la mejor manera de que las cosas funcionen. Cuando todo funcione se podrá añadir funcionalidad si es necesario. La programación extrema apuesta que es más sencillo hacer algo simple y tener un poco de trabajo extra para cambiarlo si se requiere, que realizar algo complicado y quizás nunca utilizarlo.

 v Ciclo de Desarrollo:

Un proyecto XP tiene éxito cuando el cliente selecciona el valor de negocio a implementar basado en la habilidad del equipo para medir la funcionalidad que puede entregar a través del tiempo. El ciclo de desarrollo consiste (a grandes rasgos) en los siguientes pasos:

1.-El cliente define el valor de negocio a implementar.
2.-El programador estima el esfuerzo necesario para su implementación.
3.-El cliente selecciona qué construir, de acuerdo con sus prioridades y las restricciones de tiempo.
4.-El programador construye ese valor de negocio.
5.-Vuelve al paso 1.

En todas las interaciones de este ciclo tanto el cliente como el programador aprenden. No se debe presionar al programador a realizar más trabajo que el estimado, ya que se perderá calidad en el software o no se cumplirán los plazos. De la misma forma el cliente tiene la obligación de manejar el ámbito de entrega del producto, para asegurarse que el sistema tenga el mayor valor de negocio posible con cada iteración.
El ciclo de vida ideal de XP consiste de seis fases: Exploración, Planificación de la Entrega (Release), Iteraciones, Producción, Mantenimiento y Muerte del Proyecto.






v Ejemplos:

1. Para desarrollo de sistemas complejos: porque permite una mejor organización del material y optimización del tiempo. 
2.Implementación de planes ahorro de recursos: con una planificación más óptima se impide el desperdicio de materiales que utilizaremos en el proyecto.

3. Proyectos de desarrollo de software flexible para poder realizar cambios: es cuando el cliente pide que se hagan cambio s de última hora y el modelo xp permiten que realizarlos sea más sencillo.

4. Proyectos cortos con cambios tecnológicos variables en el tiempo: permite realizar proyectos grandes relacionados con las tecnologías ya que se adapta a los cambios con rapidez y permite implementarlos a gran escala.

5. Para pequeños y medianos equipos: en cada entrega los programadores reciben retroalimentación del cliente durante el resto del proceso de desarrollo para lograr que el proyecto se realice de una manera eficiente. 





v Ventajas:

Una ventaja es que la programación extrema es fácil de adaptarse tanto al desarrollo de sistemas pequeños como grandes, optimiza el tiempo en desarrollo, permite realizar el desarrollo en parejas para complementar el conocimiento, el código es sencillo y entendible, además de la poca documentación que se necesita para elaborar el desarrollo del sistema.

v Desventajas:

        Una desventaja es que no se tiene un costo o tiempo definido, pues el sistema va creciendo con cada entrega que se le realiza al cliente, se necesitaría de la presencia constante del cliente lo cual resulta difícil de lograr.
Otra desventaja suele ser la programación en parejas, debido a que algunos desarrolladores no comparten la idea de modificar su código y menos si es por alguien más.
 
2.- Resumen:

El desarrollo de software no es una tarea fácil. Prueba de ello es que existen numerosas propuestas metodológicas que inciden en distintas dimensiones del proceso de desarrollo. Por una parte tenemos aquellas propuestas más tradicionales que se centran especialmente en el control del proceso, estableciendo rigurosamente las actividades involucradas, los artefactos que se deben producir, y las herramientas y notaciones que se usarán. Estas propuestas han demostrado ser efectivas y necesarias en un gran número de proyectos, pero también han presentado problemas en otros muchos. Una posible mejora es incluir en los procesos de desarrollo más actividades, más artefactos y más restricciones, basándose en los puntos débiles detectados. Sin embargo, el resultado final sería un proceso de desarrollo más complejo que puede incluso limitar la propia habilidad del equipo para llevar a cabo el proyecto. Otra aproximación es centrarse en otras dimensiones, como por ejemplo el factor humano o el producto software.

 3.- Summary:

Software development is not an easy task. Proof of this is that there are numerous methodological proposals that affect different dimensions of the development process. On the one hand we have those more traditional approaches that are especially focused on process control strictly the activities involved establishing, artifacts to be produced, and the tools and notations to be used. These proposals have proved effective and necessary in a number of projects, but have also presented problems in many others. A possible improvement is to include in the development process more activities, more devices and more restrictions, based on the weaknesses identified. However, the end result would be a more complex process of development which can even limit the own ability of the team to carry out the project. Another approach is to focus on other dimensions, such as human factor or the software product.

4.-Recomendaciones:

üü  No aplicar la metodología si existe la posibilidad de no cumplir con los plazos establecidos en la etapa de planeación, ya que además se incrementaría de gran manera los costos del proyecto.
ü  Es recomendable que se consulten diversas fuentes bibliográficas para lograr un mayor entendimiento del tema.
ü  Se recomienda que antes de elegir una metodología se analicen sus ventajas y desventajas a fin de que sea la más adecuada para el proyecto a realizar.
ü  Debe hacerse todo lo posible por no realizar modificaciones demasiado drásticas a la metodología XP ya que se corre el riesgo de alterar la esencia de la metodología. 
5.-Concluciones:

Es más una filosofía de trabajo que una metodología. Ninguna de las practicas defendidas por XP son invención de este método, XP lo que hace es agruparlas.
Esta diseñado para grupos de pequeños programadores.
Las metodologías tradicionales imponen un proceso disciplinado, están orientados a documentos y se vuelven demasiado burocráticas e ineficaces. XP es tiene la ventaja de estar más orientada a las personas que a los procesos.

 6.- Apreciación del Equipo:

 XP se basa en realimentación continua entre el cliente y el equipo de desarrollo, comunicación fluida entre todos los participantes, simplicidad en las soluciones implementadas y coraje para enfrentar los cambios. XP se define como especialmente adecuada para proyectos con requisitos imprecisos y muy cambiantes, y donde existe un alto riesgo técnico. Promoviendo el trabajo en equipo, preocupándose por el aprendizaje de los desarrolladores, y propiciando un buen clima de trabajo.

7.-Glosario de Términos:

üü  Exploración: Este verbo refiere a examinar, reconocer, averiguar o registrar con diligencia un lugar o una cosa
ü Release: Nueva versión de una aplicación informática.
ü Metodologías: Las metodologías son las teorías del aprendizaje  que orientan el método, entre ellas

8.- Bibliografía o Linkografia:


Link de Diapositiva

No hay comentarios:

Publicar un comentario