1. Ingeniería De Software
Densy De La Cruz Lucero
Yulina Arrieta Flores
Samanta Palomino Zamota
Aracely Chavesta Lluen
Metodologías Xp
Computación e Informática
Marco Aurelio Porro Chulli
V
Noche
2. DEFINICION:
En las dos últimas décadas las notaciones
de modelado y posteriormente las
herramientas pretendieron ser las "balas
de plata" para el éxito en el desarrollo de
software, sin embargo, las expectativas
no fueron satisfechas. Esto se debe en
gran parte a que otro importante
elemento, la metodología de desarrollo, había sido postergado. De nada sirven
buenas notaciones y herramientas si no se proveen directivas para su
aplicación. Así, esta década ha comenzado con un creciente interés en
metodologías de desarrollo. Hasta hace poco el proceso de desarrollo llevaba
asociada un marcado énfasis en el control del proceso mediante una rigurosa
definición de roles, actividades y artefactos, incluyendo modelado y
documentación detallada. Este esquema "tradicional" para abordar el
desarrollo de software ha demostrado ser efectivo y necesario en proyectos de
gran tamaño (respecto a tiempo y recursos), donde por lo general se exige un
alto grado de ceremonia en el proceso. Sin embargo, este enfoque no resulta ser
el más adecuado para muchos de los proyectos actuales donde el entorno del
sistema es muy cambiante, y en donde se exige reducir drásticamente los
tiempos de desarrollo pero manteniendo una alta calidad..
3. CARACTERISTICAS
Desarrollo iterativo e incremental:
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.
4. CICLOS 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 :
El cliente define el valor de negocio a implementar.
El programador estima el esfuerzo necesario para su implementación.
El cliente selecciona qué construir, de acuerdo con sus prioridades y las
restricciones de tiempo.
El programador construye ese valor de negocio.
Vuelve al paso 1.
En todas las iteraciones 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.
5. 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. Esta es la filosofía de las
metodologías ágiles, las cuales dan mayor valor al individuo, a la colaboración
con el cliente y al desarrollo incremental del software con iteraciones muy cortas.
Este enfoque está mostrando su efectividad en proyectos con requisitos muy
cambiantes y cuando se exige reducir drásticamente los tiempos de desarrollo
pero manteniendo una alta calidad. Las metodologías ágiles están
revolucionando la manera de producir software, y a la vez generando un amplio
debate entre sus seguidores y quienes por escepticismo o convencimiento no las
ven como alternativa para las metodologías tradicionales. En este trabajo se
presenta resumidamente el contexto en el que surgen las metodologías ágiles, sus
valores, principios y comparaciones con las metodologías tradicionales. Además
se describe con mayor detalle Programación Extrema (eXtreme Programming,
XP) la metodología ágil más popular en la actualidad.
6. 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. This is the
philosophy of agile methodologies, which give greater value to the individual, to
the collaboration with the client and the incremental development of software
with very short iterations. This approach is showing its effectiveness in projects
with changing requirements and when required to drastically reduce
development time while maintaining high quality. The agile methodologies are
revolutionizing the way to produce software, while generating a wider debate
between his followers and those by skepticism or conviction not see them as an
alternative to traditional methodologies. This paper briefly presents the context in
which the agile methodologies, values, principles and comparisons with
traditional methodologies arise. Also described in greater detail Extreme
Programming (eXtreme Programming, XP) the most popular agile methodology
at present.
7. RECOMENDACIÓN
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 mas 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.
CONCLUSION
En la practica es un poco complicado aplicar “al pie de la letra” los postulados de
la Metodología XP si los involucrados no cuentan con total disponibilidad de
tiempo.
La metodología XP es de uso común desde hace varios años de manera que
adquirir información acerca de ella resulto sencillo, ya que la mayoría de textos
técnicos y de proyectos realizados por otras personas hablan de esta metodología.
La principal ventaja de la metodología XP esta en su alto grado de adaptabilidad,
y su principal desventaja es su elevado costo en caso de no cumplir las metas.
Los pasos que se siguieron en el ejemplo práctico se acercaron mucho a los pasos
que recomienda seguir la metodología, pero no los cumplieron a cabalidad