Blogia

PROGRAMACIONEXTREMA

Programación.

Programación.

La programación es un proceso por el cual se escribe en un lenguaje de programación , se prueba, se depura y se mantiene el código fuente de un programa informático. Dentro de la informática, los programas son los elementos que forman el software, que es el conjunto de las instrucciones que ejecuta el hardware de una computadora para realizar una tarea determinada. Por lo tanto, la programación es una de las principales áreas dentro de la informática.

Programador.

Programador.

Programador es un individuo que ejerce la programación, es decir, que escribe programas de computadora u ordenador. Los programadores también reciben el nombre de desarrolladores de software. En la mayoría de los países, programador es también una categoría profesional reconocida.

Historia Programación Extrema.

Historia Programación Extrema.

XP (extreme Programing) 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.

Chrysler Corporation hace estaba desarrollando una aplicación de nóminas, pero sin demasiado éxito por parte de la gente que tenía en el proyecto. El verano de 1996, Beck entró en nómina en la compañía y se le pidió de hacer esta aplicación como trabajo. Es en esta aplicación cuando nace la Programación Extrema como tal.

Beck reconoció que el proceso (o metodología) de creación de software o la carencia de este era la causa de todos los problemas y llegó a la conclusión que para proporcionar un proceso que fuera flexible era necesario realizar ciertos cambios en la estructura o manera de hacer de los programadores, los cuales se tenían que acomodar al cambio a realizar.

Kent Beck con sus teorías ha conseguido el respaldo de gran parte de la industria del software y el rechazo de otra parte.

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.

Definición Programación Extrema.

Definición Programación Extrema.

La programación extrema es una metodología de desarrollo ligera (o ágil) basada en una serie de valores y de prácticas de buenas maneras que persigue el objetivo de aumentar la productividad a la hora de desarrollar programas.

Este modelo de programación se basa en una serie de metodologías de desarrollo de software en la que se da prioridad a los trabajos que dan un resultado directo y que reducen la burocracia que hay alrededor de la programación.

Una de las características principales de este método de programación, es que sus ingredientes son conocidos desde el principio de la informática. Los autores de XP han seleccionado aquellos que han considerado mejores y han profundizado en sus relaciones y en como se refuerzan los unos con los otros. El resultado de esta selección ha sido esta metodología única y compacta. Por esto, aunque no está basada en principios nuevos, sí que el resultado es una nueva manera de ver el desarrollo de software.

El objetivo que se perseguía en el momento de crear esta metodología era la búsqueda de un método que hiciera que los desarrollos fueran más sencillos. Aplicando el sentido común.

¿Que es XP?

¿Que es XP?

Metodología Ágil:

Las metodologías ágiles (como por ejemplo XP, SCRUM, DSDM, Crystal, etc..) forman parte del movimiento de desarrollo ágil de software, que se basan en la adaptabilidad de cualquier cambio como medio para aumentar las posibilidades de éxito de un proyecto.
De forma que una metodología ágil es la que tiene como principios que:

·Los individuos y sus interacciones son más importantes que los procesos y las herramientas.

·El software que funciona es más importante que la documentación exhaustiva.

·La colaboración con el cliente en lugar de la negociación de contratos.

·La respuesta delante del cambio en lugar de seguir un plan cerrado.

Se puede decir que, este movimiento empezó a existir a partir de febrero de 2001, cuando se  reunieron los representantes de cada una de estas metodologías y terminaron poniendo en común sus ideas en una declaración conjunta.

El proceso de Desarrollo Extremo.

El proceso de Desarrollo Extremo.

La programación extrema parte del caso habitual de una compañía que desarrolla software,
generalmente software a medida, en la que hay diferentes roles: un equipo de gestión, un equipo de
desarrolladores y los clientes. La relación con el cliente es totalmente diferente a lo que se ha
venido haciendo en las metodologías tradicionales que se basan fundamentalmente en una fase de
captura de requisitos previa al desarrollo y una fase de validación posterior al mismo.

Interacción con el cliente.

Interacción con el cliente.

En la programación extrema al cliente no sólo se le pide que apoye al equipo de desarrollo, sino que
forme parte de él. Su importancia toma lugar a la hora de abordar las historias de los usuarios y las
reuniones de planificación. Además, será tarea suya realimentar al equipo de desarrolladores
después de cada iteración con los problemas con los que se ha encontrado, mostrando sus
prioridades, expresando sus sensaciones, etc. En resumen, el cliente se encuentra mucho más cercano al proceso de desarrollo.

Planificación del Proyecto.

Planificación del Proyecto.

En este punto es donde se debe enfrentar la planificación de entregas donde se planifican las distintas iteraciones.

Para ello existen una serie de reglas que hay que seguir para que las tres partes implicadas en este proceso (equipo de gestión, equipo de desarrollo y cliente) tengan voz y se sientan parte de la decisión tomada, que al fin y al cabo debe contentar a todos.

Diseño, Desarrollo y Pruebas.

Diseño, Desarrollo y Pruebas.

El desarrollo es la parte más importante en el proceso de la programación extrema. Todos los trabajos tienen como objetivo que se programen lo más rápidamente posible, sin interrupciones y en dirección correcta.

También es muy importante el diseño, y se establecen los mecanismos, para que éste sea revisado y mejorado de manera continuada a lo largo del proyecto, según se van añadiendo funcionalidades al mismo. La clave del proceso de desarrollar XP es la comunicación. La mayoría de los problemas en los proyectos son por falta de comunicación en el equipo.

Antes de empezar a codificar se tienen que hacer pruebas unitarias, es decir:

Cada vez que se quiere implementar una parte de código, en XP, se tiene que escribir una prueba sencilla, y después escribir el código para que la pase. Una vez pasada se amplía y se continúa. En XP hay una máxima que dice "Todo el código que puede fallar tiene que tener una prueba". Con estas normas se obtiene un código simple y funcional de manera bastante rápida. Por esto es importante pasar las pruebas al 100%.

Otra peculiaridad de XP es que cada programador puede trabajar en cualquier parte del programa.
De esta manera se evita que haya partes "propietarias de cada programador". Por esto es tan importante la integración diaria.

Para terminar, otra peculiaridad que tiene la XP. La de fomentar la programación en parejas, es decir, hacer que los programadores no trabajen en solitario, sino que siempre estarán con otra persona. Una pareja de programadores ha de compartir el teclado, el monitor y el ratón. El principio fundamental de este hecho es realizar de manera continua y sin parar el desarrollo de código. Las parejas tienen que ir cambiando de manera periódica, para hacer que el conocimiento se difunda en el grupo. Está demostrado que de esta manera el trabajo es más eficaz y también se consigue más y mejor código.

Conclusión.

La programación extrema es una forma ligera, eficiente, flexible, predecible, científica y divertida de generar software.

Esta metodología ha surgido desde la experiencia, como una forma de resolver los problemas encontrados en los procesos de desarrollo software en los que se han visto involucrados sus autores.

Este tipo de desarrollos eran en general de creación de software a la medida del cliente y hay numerosas opiniones que relatan el éxito de esta metodología en este ámbito. Queda por ver si es posible aplicar sus ideas también en procesos de desarrollo muy diferentes, como el seguido por la comunidad del software libre.