Programacin Extrema (XP)
Programacion_extrema.JPEG
La programacin extrema (XP, extreme Programming) es un modelo de proceso de
software que fue acuado por Beck el cual toma los principios y practicas aceptadas y las
lleva a niveles extremos. Tiene como objetivo reducir el riesgo en el ciclo de vida del
software mediante grupos de desarrollo pequeos, considera que la mejor manera de
tratar la falta de requisitos estables en un sistemas, es mediante la agilidad de un grupo
pequeo de desarrollo 8 . Esta se basa en la simplicidad, la comunicacin y el reciclado
continuo de cdigo. El modelo considera varios aspectos problemticos del desarrollo de
software como lo son los retrasos , proyectos cancelados, cambios en el negocio y la
rotacin del personal. Sus actividades bsicas son : Codificar, hacer pruebas, escuchar y
disear.
Los objetivos de XP son muy simples:
1. La satisfaccin del cliente: trata de dar al cliente el software que l necesita y cuando lo
necesita.
2. Potenciar al mximo el trabajo en grupo: Tanto los jefes de proyecto, los clientes y
desarrolladores, son parte del equipo y estn involucrados en el desarrollo del software.
XP define cuatro variables para proyectos de software: coste, tiempo, calidad y mbito.
Adems de estas cuatro variables, Beck propone que slo tres puedan ser establecidas por
las fuerzas externas (jefes de proyecto y clientes), mientras que el valor de la cuarta
variable debe ser establecido por los programadores en funcin de las otras tres. 8
Los valores originales de la programacin extrema son:4
Simplicidad: XP propone el principio de hacer la cosa ms simple que pueda funcionar, en
relacin al proceso y la codificacin. Esta es la base de la programacin extrema.
Comunicacin: Los programadores se comunican constantemente gracias a la
programacin por parejas y adems la comunicacin con el cliente es fluida ya que el
cliente forma parte del equipo de desarrollo
Retroalimentacin: retroalimentacin concreta y frecuente del cliente, del equipo y de los
usuarios finales da una mayor oportunidad de dirigir el esfuerzo.
Coraje o valenta : La valenta le permite a los desarrolladores que se sientan cmodos con
reconstruir su cdigo cuando sea necesario. Esto significa revisar el sistema existente y
modificarlo si con ello los cambios futuros se implementaran mas fcilmente.
Principios bsicos en la Programacin extrema: 9
Planificacin Incremental: los requerimientos se registran en tarjetas de historias, estas
incluyen el tiempo y la prioridad relativa.
Entregas pequeas: estas entregas son frecuentes e incrementalmente aaden
funcionalidad al primera entrega
Diseo sencillo: solo se lleva a cabo el diseo necesario para cumplir los requerimientos
actuales
Desarrollo previamente probado; se utiliza un sistema de pruebas, para escribir pruebas
de las nuevas funcionalidades antes de que estas se implementen.
Refactorizacin: conserva el cdigo sencillo y mantenible.
Programacin en parejas: esta es la mas importante de todos los principios, los
desarrolladores trabajan en parejas, verificando cada uno el trabajo del otro,
proporcionando la ayuda para hacer siempre un buen trabajo
Propiedad colectiva: las parejas trabajan en todas las reas del sistema.
Integracin continua: cuanto acaba el trabajo en una tarea, se integra en el sistema
entero.
Ritmo sostenible: No se consideran aceptables grandes cantidades de horas extras, ya que
a menudo, reduce la calidad del codigo y la productividad a medio plazo.
Cliente presente: Debe estar disponible al equipo de XP, un represente de los usuarios
finales del sistema a tiempo completo. En un proceso XP el cliente es parte del equipo de
desarrollo
La programacin extrema es uno de los mtodo giles ms conocido y ampliamente
utilizados, donde el usuario o cliente forma parte del equipo de trabajo, engloba en una
serie de principios dentro de los ms importantes se encuentra la programacin en
parejas y el desarrollo de pruebas, as como tambin reulitizacin de los cdigos. Para el
uso de XP los requerimientos deben de estar bien definidos, mediante las historias de
usuario. Este modelo se basa en la retroalimentacin continua entre el cliente y el equipo
de desarrollo, especialmente muy utilizada para proyectos con requisitos imprecisos y
muy cambiantes, centrada en potenciar las relaciones interpersonales como clave para el
xito en el desarrollo de software, promoviendo el trabajo en equipo y preocupndose
por el aprendizaje de los desarrolladores y la satisfaccin del cliente