Conoce en este curioso artículo todo sobre la METODOLOGÍA XP, y comienza a crear proyectos con eficacia y flexibilidad, que puedan venderse a todo público.
índice de Contenido
Metodología XP: conoce la programación y código
La metodología XP o la Programación Extrema o eXtreme Programming se trata de aquella metodología ágil y ligera para desarrollo de software.
La programación extrema se distingue de las metodologías tradicionales básicamente en que pone más énfasis en la adaptabilidad que en la previsibilidad. De esta manera los programadores de la XP estiman que los cambios de requisitos sobre la marcha son un aspecto muy básico, necesario e incluso esperado para el desarrollo del proyecto.
Consideran que al ser muy competente para adaptarse a los cambios de requisitos en cualquier nivel de la vida del proyecto, se trata de una aproximación más exacta que busca definir todos los requerimientos del proyecto.
Entonces es considerable la programación extrema como la adopción de las metodologías más funcionales de desarrollo, útiles para llevar a cabo un proyecto, y aplicarlo de manera dinámica durante el ciclo de vida del software.
Así de interesante como este artículo sobre la metodología XP, también es este otro sobre: Marketing emocional ¿Cómo sugestionar su cliente? ingresa en el enlace antes expuesto y descubre como utilizar este tipo de marketing y sacarle el mayor provecho posible.
Historia
Kent Beck logró desarrollar la programación extrema mientras ejecutaba su trabajo en el proyecto de nóminal para el Sistema de Compensación Integral de Chrysler.
Beck se consolidó como el líder de dicho proyecto C3 en marzo de 1996. Donde además de ser el pionero comenzó a mejorar la metodología de desarrollo utilizada en el proyecto. Además escribió un libro sobre la metodología “Extreme Programming Explained”, el cual fue publicado en octubre de 1999.
La mayoría de las experiencias de la programación extrema están desde hace tiempo; la metodología conduce las «mejores prácticas» a estados extremos. Por ejemplo, la «práctica del desarrollo de la prueba primero, la planificación y la escritura de pruebas antes de cada microincremento» se manipuló en el Proyecto Mercury de la NASA, a principios de la década de 1960.
Orígenes
Dos corrientes de suma importancia le aportaron forma al desarrollo de software en la década de 1990:
Internamente, la programación ubicada a objetos reemplazó a la programación de procedimientos como el paradigma de programación preferido por algunos desarrolladores.
Externamente, los avances tecnológicos del Internet y el auge de las puntocom destacaron la velocidad del mercadeo y el crecimiento de la empresa como factores comerciales competitivos.
Los fluctuantes requerimientos exigen de manera rápida ciclos de vida pequeños de los productos y, a menudo, se toparon con los métodos tradicionales de desarrollo de software.
El Sistema de Compensación Integral de Chrysler se desarrolló con la finalidad de establecer una mejor manera de aprovechar las tecnologías de objetos, manejando los sistemas de nóminas de Chrysler como centro de examen, con Smalltalk como expresión y GemStone como capa de camino a datos.
Chrysler decidió contratar a Kent Beck, un reconocido practicante de Smalltalk, para configurar el rendimiento del sistema, pero su misión se extendió cuando notó varios problemas con el proceso de desarrollo.
Aprovecho esta ocasión para exponer e realizar algunas modificaciones en las prácticas de desarrollo, apoyándose en su trabajo con su cómplice habitual, Ward Cunningham. Beck describe el pensamiento anticipado de los métodos:
“La primera vez que me pidieron que liderará un equipo, les pedí que hicieran algunas de las cosas que pensaba que eran sensatas, como pruebas y revisiones. La segunda vez había mucho más en juego. Pensé: Al diablo con los torpedos, al menos esto será un buen artículo, y le pedí al equipo que subiera todas las perillas a 10 en las cosas que pensaba que eran esenciales y omitiera todo lo demás”.
La investigación acerca los principios y las prácticas detrás de XP se difundieron al resto del mundo a mediante las discusiones en la wiki original, la WikiWikiWeb de Cunningham. Varios colaboradores se enfrentaron y ampliaron las ideas, lo cual resultó algunas metodologías derivadas.
Valores que debe contener la metodología XP
Los principales valores únicos de la programación extrema son: simplicidad, comunicación, retroalimentación (feedback) y coraje. Un quinto valor, respeto, el cual fue incorporado en la segunda edición de Extreme Programming Explained. Los cinco valores principales se detallan a continuación:
Simplicidad
La simplicidad es el principio básico de la programación extrema, se debe simplificar el diseño para acelerar el desarrollo y suministrar el mantenimiento. Un diseño complicado del código acompañado de siguientes modificaciones bien sea realizadas por desarrolladores o programadores logran que la complejidad incremente considerablemente.
Para conservar la simplicidad continuamente es necesaria la refactorización del código, esto quiere decir la forma de mantener el código simple a medida que crece. También se emplea la simplicidad en la documentación, de esta forma el código debe interpretarse en su necesario orden, pretendiendo eso sí que el código esté autodocumentado.
Para esto es necesario escoger correctamente los nombres de las variables, métodos y clases. Los nombres extensos no incrementan la eficacia del código ni el tiempo de desarrollo gracias a los instrumentos de autocompletado y refactorización que actualmente son utilizados.
Aplicando la simplicidad en conjunto a la autoría colectiva del código y la programación por parejas se afirma que mientras más grande se haga el proyecto, el equipo conocerá de manera más profunda el sistema en su totalidad.
Comunicación
El proceso de comunicación se efectúa de distintas maneras, para los programadores el código expresa mejor en la medida que es más simple; si el código es complejo requiere mayor esfuerzo para hacerlo inteligible. El código autodocumentado es más confiable que los comentarios ya que en corto tiempo quedan desfasados con el código a medida que es modificado.
Las pruebas unitarias son consideradas como otra manera de comunicación ya que expresan el diseño de las clases y los métodos al mostrar ejemplos concretos de cómo emplear su funcionalidad. Los programadores se comunican continuamente gracias a la programación por parejas.
La comunicación con el cliente es fluida ya que el cliente forma parte del equipo de desarrollo. El cliente decide qué características tienen prioridad y siempre debe estar disponible para solucionar dudas.
En el siguiente video profundiza toda la información aquí plasmada y observa todo lo relacionado a esta ágil metodología XP :
Retroalimentación (feedback)
Al estar el cliente involucrado constantemente en el proyecto, su opinión sobre el desenvolvimiento del proyecto es reconocido en tiempo real. Al ejecutarse ciclos muy cortos donde se muestran resultados, disminuye el tener que rehacer partes que no cumplen con los requerimientos y estimula a los programadores a solo concentrarse en lo que es más importante.
Teniendo en cuenta los problemas que conllevan los ciclos muy largos. Entre los que se pueden mencionar meses de trabajo que pueden tirarse por la borda gracias a los cambios en los criterios del cliente o mal información por parte del equipo de los desarrolladores.
El código además es una fuente de retroalimentación gracias a los instrumentos de desarrollo. Por ejemplo, las pruebas unitarias avisan sobre el curso de la salud del código. Ejecutar las pruebas unitarias constantemente ayuda a descubrir fallas causadas a los cambios recientes en el código.
Coraje o valentía
Muchas de las habilidades involucran valentía. Una de ellas es la necesidad de diseñar y programar para con urgencia. Esto es un arranque para evitar enfrascarse en el diseño y necesitar más tiempo y trabajo para realizar el resto del proyecto.
La valentía le consiente a los desarrolladores que se sientan cómodos con reconstruir su código cuando sea necesario. Esto significa estudiar el sistema existente y cambiarlo si con ello los cambios futuros se implementarán más fácilmente.
Además, valentía consiste el persistir: un programador logra permanecer sin avanzar en un problema complejo hasta un día entero, y luego lo resolverá rápidamente al día siguiente, sólo si es persistente.
Respeto
El respeto se considera de diversas maneras. 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. El equipo respeta el trabajo porque siempre está en la lucha para obtener alta calidad en el producto y buscando el diseño recomendable o más eficiente para la solución a través de la refactorización del código.
Así el equipo respeta el trabajo del resto no haciendo menos a otros, una mejor autoestima en el equipo eleva su ritmo de producción.
Conoce las características de la metodología XP
Para darte a conocer mejor esta metodología XP, te presentamos a continuación las características fundamentales del método son:
- Desarrollo iterativo e incremental: el cual consiste en pequeñas mejoras, unas tras otras.
Pruebas unitarias continuas, realizadas con mucha frecuencia de manera automatizada, incluyendo pruebas de regresión. Se aconseja escribir el código de la prueba antes de la codificación. - Programación en parejas: siempre es recomendado que las prácticas de desarrollo se ejecuten por dos personas en un mismo puesto. 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. Es muy necesario que un representante del cliente está altamente relacionado con el equipo de desarrollo.
- Corrección de todos los errores antes de añadir nueva funcionalidad. Hacer entregas frecuentes.
- Refactorización del código, se trata cuando se reescribe algunas partes del código para incrementar la legibilidad y mantenibilidad pero sin alterar el comportamiento. Así de esta manera las pruebas van a garantizar que en la refactorización va sin errores.
- Propiedad del código compartida: en vez de fraccionar la responsabilidad en el desarrollo de cada modelo en grupos de trabajo distintos, este procedimiento causa el que todo el personal pueda realizar correcciones y ampliar cualquier parte del proyecto. Las frecuentes pruebas de regresión sirven de garantía que detectar de manera inmediata errores.
- Simplicidad en el código: aplicando este principio se logra la mejor forma de que las cosas avancen y funcionen correctamente. Al funcionara de esta manera se podrá incorporar funcionalidad si es necesario. La programación extrema se concentra en lo más sencillo es decir en hacer algo simple y tener un poco de trabajo extra para cambiarlo si se requiere, que realizar algo complicado y quizás nunca utilizarlo.
Roles de la metodología XP
A continuación te detallaremos los roles o usuarios involucrados en el todo proyecto, solo con todas las personas involucradas es posible llevar a cabo el proceso del mismo:
- Programador: Origina el código del sistema. Es la esencia del equipo.
- Test developer : Produce el código de los test unitarios del sistema. Es uno de los roles más importantes.
- Cliente: realiza las historias de usuario y las pruebas de las funciones para corroborar la implementación. Establece la prioridad de las historias de usuario y es quien escoge cuáles se implementan en cada iteración centrándose en aportar el mayor valor de negocio.
- Tester: Interpreta el pedido del cliente y ayuda al equipo de desarrollo a escribir las pruebas funcionales. Realiza pruebas frecuentemente, expresa los resultados en el equipo y además es el encargado de las herramientas de soporte.
- Tracker: Es el encomendado de realizar el seguimiento. Debe facilitar la realimentación al equipo. Debe comprobar el grado de acierto entre las apreciaciones realizadas y el tiempo real dedicado, participando los resultados para mejorar futuras estimaciones.
- Entrenador (coach): Garante del proceso global. Dirige a los miembros del equipo para seguir el proceso de manera correcta.
- Consultor: Es un miembro externo del equipo con un conocimiento específico en algún tema necesario para el proyecto. Ayuda al equipo a resolver un problema específico. Además este tiene que investigar según los requerimientos.
- Gestor (Big boss): Es el dueño de la tienda y el vínculo entre clientes y programadores. Su labor esencial es la coordinación.
Te interesara tambien leer este post sobre: Como empezar con wordpress: una guía práctica, ingresa en el enlace antes expuesto y descubre cómo usar esta plataforma paso a paso todas sus aplicaciones y también te mostramos las mejores recomendaciones que te serán de mucha utilidad .