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:
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.
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