La programación extrema (XP) es un enfoque ágil de desarrollo de software creado por Kent Beck hace unos 20 años. Se basa en principios como la simplicidad, comunicación continua con el cliente, y desarrollo iterativo e incremental. XP busca satisfacer rápidamente las necesidades del cliente mediante ciclos cortos de desarrollo, pruebas automatizadas, y trabajo en equipo integrado con el cliente.
DE LAS OLIMPIADAS GRIEGAS A LAS DEL MUNDO MODERNO.ppt
Programacion extrema
1.
2. Nace como nueva disciplina de desarrollo de software hace
aproximadamente unos seis años, y ha causado un gran
revuelo entre el colectivo de programadores del mundo.
Kent Beck, su autor, es un programador que ha trabajado en
múltiples empresas y que actualmente lo hace como
programador en la conocida empresa
automovilística DaimlerChrysler
3. Es un enfoque de la ingenieria de sofware formulado
por Kent Beck, autor del primer libro sobre la
materia, Extreme Programming Explained: Embrace
Change (1999). Es el más destacado de los procesos
ágiles de desarrollo de software.
4. La programación extrema se basa en la simplicidad, la
comunicación y el reciclado
continuo de código, para algunos no es mas que aplicar
una pura lógica.
5. ¿ En que consiste XP ? Sus objetivos.
Los objetivos de XP son muy simples:
la satisfacción del cliente. Esta metodología trata de dar al
cliente el software que él necesita y cuando lo necesita. Por
tanto, debemos responder muy rápido a las necesidades del
cliente, incluso cuando los cambios sean al finalde ciclo de la
programación.
6. El segundo objetivo es potenciar al máximo el trabajo en
grupo. Tanto los jefes de proyecto, los clientes y esarrolladores,
son parte del equipo y están involucrados en el desarrollo del
software.
7. Valores
Los Valores originales de la programación extrema son:
simplicidad, comunicación, retroalimentación (feedback) y
coraje.
Simplicidad:
La simplicidad es la base de la programación extrema. Se
simplifica el diseño para agilizar el desarrollo y facilitar el
mantenimiento.
8. Comunicación:
La comunicación se realiza de diferentes formas. Para los
programadores el código comunica mejor cuanto más simple
sea. Si el código es complejo hay que esforzarse para hacerlo
inteligible.
9. Retroalimentación (feedback):
Al estar el cliente integrado en el proyecto, su opinión sobre el
estado del proyecto se conoce en tiempo real. Al realizarse
ciclos muy cortos tras los cuales se muestran resultados, se
minimiza el tener que rehacer partes que no cumplen con los
requisitos y ayuda a los programadores a centrarse en lo que es
más importante.
10. Coraje o valentía:
Muchas de las prácticas implican valentía. Una de ellas es
siempre diseñar y programar para hoy y no para mañana. Esto
es un esfuerzo para evitar empantanarse en el diseño y
requerir demasiado tiempo y trabajo para implementar todo lo
demás del proyecto.
ADEMAS ENCONTRAMOS TAMBIEN …
11. Respeto:
El respeto se manifiesta de varias formas. Los miembros del
equipo se respetan los unos a otros, porque los programadores
no pueden realizar cambios que hacen que las pruebas
existentes fallen o que demore el trabajo de sus compañeros.
Los miembros respetan su trabajo porque siempre están
luchando por la alta calidad en el producto y buscando el
diseño óptimo o más eficiente para la solución a través de la
refactorización del código.
13. Pruevas 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. Véase, por
ejemplo, las herramientas de prueba orientada a Java, DUnit
orientada a Delphi, NUnit para la plataforma.NET o PHPUnit
para PHP. Estas tres últimas inspiradas en JUnit, la cual, a su
vez, se insipiró en SUnit, el primer framework orientado a
realizar tests, realizado para el lenguaje de programación
Smalltalk.
14. 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.
15. 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.
16. Corrección de todos los errores antes de añadir nueva
funcionalidad. Hacer entregas frecuentes.
Refactorizacion del código, es decir, reescribir 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.
17. 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.
18. 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.