La Programación Extrema XP

5
7/18/2019 La Programación Extrema XP http://slidepdf.com/reader/full/la-programacion-extrema-xp 1/5 La Programación Extrema XP se basa en el supuesto de que todo en la vida varía, y que este es un proceso natural, para el que hay que estar preparado, y que para un proyecto de desarrollo de software es muy comn los cambios en los requisitos, y de allí su punto de vista distinto, En lugar de crear grandes planificaciones, los proyectos de !XP! no lo hacen tan extenso, si no que  postulan que es me"or simplemente afrontar el cambio, que tener una gran estructura predefinida, y estar tratando de controlarlo# Las principales características de la !XP! son$ Desarrollo Iterativo incremental: Esto significa que reali%an variaciones no grandes entre cada etapa# Frecuente Interacción con el Cliente:  Esto para ir verificando el cumplimiento de los bloques, y reconocimiento de cambio en los requisitos# Pruebas Unitarias Continuas: &eali%ar pruebas especificas sobre el código escrito en cada iteración, y recomienda la escrita en papel antes de código de las ideas a reali%ar . Corrección de Todos los Errores: 'onsiste en no avan%ar a la siguiente funcionalidad si no est( ideal la anterior# Programación en parejas: &ecomienda traba"ar cierta parte del proyecto en pare"as, haciendo el mismo traba"o, y "untos, para la revisión instant(nea y maximi%ación de ideas# Simplicidad En este paradigma se dice, hay que hacer código sencillo, de esta forma si necesitamos modificar algo, ser( m(s f(cil, incluso agregar funcionalidades# e!actori"ar el Código:  Esta relacionado con reescribir el código escrito, con el ob"etivo de obtener mayor )implicidad# #bjetivos de $P: Los ob"etivos de XP son muy simples$ la satis!acció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 final de ciclo de la  programación# El segundo ob"etivo es potenciar al m%&imo el trabajo en grupo # +anto los "efes de proyecto, los clientes y desarrolladores, son parte del equipo y est(n involucrados en el desarrollo del software# 'ases de $P La programación extrema se basa en la simplicidad, la comunicación y el reciclado continuo de código, para algunos no es m(s que aplicar una pura lógica# Lo que buscan en definitiva es la reducción de costes#

description

Calidad de Software

Transcript of La Programación Extrema XP

Page 1: La Programación Extrema XP

7/18/2019 La Programación Extrema XP

http://slidepdf.com/reader/full/la-programacion-extrema-xp 1/5

La Programación Extrema XP se basa en el supuesto de que todo en la vida varía, y que este esun proceso natural, para el que hay que estar preparado, y que para un proyecto de desarrollo desoftware es muy comn los cambios en los requisitos, y de allí su punto de vista distinto, Enlugar de crear grandes planificaciones, los proyectos de !XP! no lo hacen tan extenso, si no que postulan que es me"or simplemente afrontar el cambio, que tener una gran estructura predefinida,

y estar tratando de controlarlo#

Las principales características de la !XP! son$

Desarrollo Iterativo incremental: Esto significa que reali%an variaciones no grandes entre cadaetapa#

Frecuente Interacción con el Cliente: Esto para ir verificando el cumplimiento de los bloques,y reconocimiento de cambio en los requisitos#

Pruebas Unitarias Continuas:  &eali%ar pruebas especificas sobre el código escrito en cada

iteración, y recomienda la escrita en papel antes de código de las ideas a reali%ar .

Corrección de Todos los Errores: 'onsiste en no avan%ar a la siguiente funcionalidad si no est(ideal la anterior#

Programación en parejas: &ecomienda traba"ar cierta parte del proyecto en pare"as, haciendo elmismo traba"o, y "untos, para la revisión instant(nea y maximi%ación de ideas#

Simplicidad En este paradigma se dice, hay que hacer código sencillo, de esta forma sinecesitamos modificar algo, ser( m(s f(cil, incluso agregar funcionalidades#

e!actori"ar el Código: Esta relacionado con reescribir el código escrito, con el ob"etivo deobtener mayor )implicidad#

#bjetivos de $P:

Los ob"etivos de XP son muy simples$ la satis!acción del cliente# Esta metodología trata de dar al cliente el software que *l necesita y cuando lo necesita# Por tanto, debemos responder muyr(pido a las necesidades del cliente, incluso cuando los cambios sean al final de ciclo de la programación#

El segundo ob"etivo es potenciar al m%&imo el trabajo en grupo# +anto los "efes de proyecto,los clientes y desarrolladores, son parte del equipo y est(n involucrados en el desarrollo delsoftware#

'ases de $P

La programación extrema se basa en la simplicidad, la comunicación y el reciclado continuode código, para algunos no es m(s que aplicar una puralógica# Lo que buscan en definitiva es lareducción de costes#

Page 2: La Programación Extrema XP

7/18/2019 La Programación Extrema XP

http://slidepdf.com/reader/full/la-programacion-extrema-xp 2/5

(alores $P

na de las cosas que a los programadores nos tiene que quedar muy claro es que en el  ciclo devida del desarrollo de un proyecto software los cambios van a aparecer, cambiar(n los requisitos,las reglas de negocio, el  personal, la tecnología, todo va a cambiar# Por tanto el problema no esel cambio en si, ya que este va a suceder sino la incapacidad de enfrentarnos a estos cambios#

'omo en otra cualquier actividad humana necesitamos valores para desarrollar nuestro traba"o yconseguir los planteamientos iniciales#

Estos cuatro valores son$

• 'omunicación

• )encille%

• &etroalimentación

• -alentía

(ariables $P

XP define cuatro variables  para proyectos de software$

• 'oste

• +iempo

• 'alidad

• .mbito#

)ctividades b%sicas $P

Codi!icar

Es la nica actividad de la que no podremos prescindir# )in código fuente no hay  programa,aunque hay gente que cuenta que existe software en producción del que se perdió el códigofuente# Por tanto necesitamos codificar y plasmar nuestras ideas a trav*s del código# En una programación en XP en pare"a el código expresa tu interpretación del problema, así podemosutili%ar el código para comunicar, para hacer mías tus ideas, y por tanto para aprender y me"orar#

*acer pruebas

Las características del software que no pueden ser demostradas mediante pruebas simplementeno existen# Las pruebas me dan la oportunidad de saber si lo que implement* es lo que enrealidad yo pensaba que había implementado# Las pruebas nos indican que nuestro traba"ofunciona, cuando no podemos pensar en ninguna prueba que pudiese originar un fallo en nuestrosistema entonces has acabado por completo#

Page 3: La Programación Extrema XP

7/18/2019 La Programación Extrema XP

http://slidepdf.com/reader/full/la-programacion-extrema-xp 3/5

 /o debemos de escribir tan solo una prueba ver que funciona y salir corriendo, debemos de pensar en todas las posibles pruebas para nuestro código, con el tiempo llegar(s a conclusionessobre las pruebas y podr(s pensar que si dos de tus pruebas ya funcionan la tercera prueba noser( necesaria escribirla, sin caer en demasiada confian%a#

Programar y probar es m(s r(pido que sólo programar# Puedes ganar media hora de

 productividad sin hacer pruebas, pero perder(s mucho tiempo en la depuración# +endr(s menoserrores, tendr(s que volver menos veces sobre el código, te costar( menos locali%ar los errores, perder(s menos tiempo escuchado como tus clientes te dicen que no funciona#

Las pruebas deben de ser sensatas y valientes# /o podemos hacer pruebecillas que no testen afondo el sistema, esos agu"eros que vamos de"ando nos esperan para cuando pasemos de nuevo por allí y volveremos a caer dentro#

Escuc+ar

)i vamos a hacer pruebas tenemos que preguntar si lo obtenido es lo deseado, y tenemos que preguntar a quien necesita la información# +enemos que escuchar a nuestros clientes cuales son

los problemas de su negocio, debemos de tener una escucha activa explicando lo que es f(cil ydifícil de obtener, y la realimentación entre ambos nos ayudan a todos a entender los problemas#

Dise,ar

El dise0o crea una estructura que organi%a la lógica del sistema, un buen dise0o permite que elsistema cre%ca con cambios en un solo lugar# Los dise0os deben de ser sencillos, si alguna partedel sistema es de desarrollo comple"o, divídela en varias# )i hay fallos en el dise0o o malosdise0os, estos deben de ser corregidos cuanto antes#

+enemos que codificar porque sin código no hay programas, tenemos que hacer pruebas por quesin pruebas no sabemos si hemos acabado de codificar, tenemos que escuchar, porque si noescuchamos no sabemos que codificar ni probar, y tenemos que dise0ar para  poder  codificar,

 probar y escuchar indefinidamente#Pr%cticas '%sicas de $P

El  juego de la plani!icación.

1ay una comunicación frecuente el cliente y los programadores# El equipo t*cnico reali%a unaestimación del esfuer%o requerido para la implementación de las historias de usuario y losclientes deciden sobre el (mbito y tiempo de las entregas y de cada iteración#

Pe-ue,as versiones.

'ada versión debe de ser tan peque0a como fuera posible, conteniendo los requisitos de negociosm(s importantes, las versiones tiene que tener sentido como un todo, me explico no puedesimplementar media característica y lan%ar la versión#

Es mucho me"or planificar para 2 mes o 3 que para seis meses y un a0o, las compa0ías queentregan software muy voluminoso no son capaces de hacerlo con mucha frecuencia#

et%!ora.

na met(fora es una historia que todo el mundo puede contar a cerca de cómo funciona elsistema# 4lgunas veces podremos encontrar met(foras sencillas !Programa de gestión

Page 4: La Programación Extrema XP

7/18/2019 La Programación Extrema XP

http://slidepdf.com/reader/full/la-programacion-extrema-xp 4/5

de compras, ventas, con gestión de cartera y almac*n!# Las met(foras ayudan acualquier persona a entender el ob"eto del programa#

Dise,o sencillo.

El dise0o adecuado par el software es aquel que$

2# 5unciona con todas las pruebas#3# /o tiene lógica duplicada#

6# 7anifiesta cada intención importante para los programadores

8# +iene el menor nmero de clases y m*todos#

1a% el dise0o lo m(s simple posible borra todo lo que puedas sin violar las reglas 2,3 y 6#'ontrariamente a lo que se pensaba el !9mplementa para hoy, dise0a para ma0ana!, no es deltodo correcto si piensas que el futuro es incierto#

*acer pruebas.

 /o debe existir ninguna característica en el programa que no haya sido probada, los programadores escriben pruebas para chequear el correcto funcionamiento del programa, losclientes reali%an pruebas funcionales# El resultado un programa mas seguro que conforme pasa eltiempo es capa% de aceptar nuevos cambios#

ecodi!icación.

'uando implementamos nuevas características en nuestros programas nos planteamos la manerade hacerlo lo mas simple posible, despu*s de implementar esta característica, nos preguntamoscomo hacer el programa mas simple sin perder funcionalidad, este proceso se le denominarecodificar o refactori%ar :refactoring;# Esto a veces nos puede llevar a hacer mas traba"o delnecesario, pero a la ve% estaremos preparando nuestro sistema para que en un futuro acepte

nuevos cambios y pueda albergar nuevas características# /o debemos de recodificar anteespeculaciones si no solo cu(ndo el sistema te lo pida#

Programación por parejas.

+odo el código de producción lo escriben dos personas frente al ordenador, con un sólo ratón yun sólo teclado# 'ada miembro de la pare"a "uega su papel$ uno codifica en el ordenador y piensala me"or manera de hacerlo, el otro piensa m(s estrat*gicamente, <-a a funcionar=, <Puede haber  pruebas donde no funcione=, <1ay forma de simplificar el sistema global para que el problemadesapare%ca=

El empare"amiento es din(mico, puedo estar empare"ado por la ma0ana con una persona y por latarde con otra, si tienes un traba"o sobre un (rea que no conoces muy bien puedes empare"artecon otra persona que si cono%ca ese (rea# 'ualquier miembro del equipo se puede empare"ar concualquiera#

Propiedad colectiva.

'ualquiera que crea que puede aportar valor   al código en cualquier parcela puede hacerlo,ningn miembro del equipo es propietario del código# )i alguien quiere hacer cambios en elcódigo puede hacerlo# )i hacemos el código propietario, y necesitamos de su autor para que locambie entonces estaremos ale"(ndonos cada ve% mas de la comprensión del problema, si

Page 5: La Programación Extrema XP

7/18/2019 La Programación Extrema XP

http://slidepdf.com/reader/full/la-programacion-extrema-xp 5/5

necesitamos un cambio sobre una parte del código lo hacemos y punto# XP proponeun propiedad colectiva sobre el código nadie conoce cada parte igual de bien pero todos conocealgo sobre cada parte, esto nos preparar( para la sustitución no traum(tica de cada miembro delequipo#

Integración contin/a.

El código se debe integrar como mínimo una ve% al día, y reali%ar las pruebas sobre la totalidaddel sistema# na pare"a de programadores se encargara de integrar todo el código en unamaquina y reali%ar todas las pruebas hasta que estas funcionen al 2>>?#