metodologías

Extreme Programming

Extreme Programming (XP) es una disciplina de desarrollo de software basada en los valores de simplicidad, comunicación, retroalimentación y valor. En XP cada participante del proyecto es una parte integral del Equipo. El equipo se forma alrededor de un representante llamado el Cliente, que se sienta con el equipo y trabaja con ellos diariamente. Los equipos de XP usan una forma simple de planificación y seguimiento para decidir qué se debe hacer a continuación y para predecir cuando el proyecto será finalizado. Focalizado en el valor del negocio, el equipo produce software en una serie de pequeños entregables integrados, que aprueban todos los tests que ha definido el Cliente. Los programadores de XP trabajan juntos en pares y como un grupo, con un código testeado de forma obsesiva y de diseño simple, mejorando el diseño continuamente para mantenerlo siempre acorde a las necesidades actuales.


www.xprogramming.com

Rational Unified Process

Rational Unified Process (RUP) es un modelo de proceso iterativo de desarrollo de software, originalmente desarrollado por Rational Software, y ahora disponible desde IBM. RUP tiene un ciclo de vida que consiste de cuatro fases: Concepción, Elaboración, Construcción y Transición. Estás fases permiten que el proceso sea presentado a un alto nivel en una forma similar a como se presentaría un proyecto en cascada, aunque en esencia la clave para el proceso yace en las iteraciones de desarrollo que se encuentran dentro de cada fase. Además, cada fase tiene un objetivo clave y un hito al final que denota el objetivo a ser alcanzado. Dentro de cada iteración las tareas son categorizadas en nueve disciplinas, de las cuales seis son disciplinas de ingeniería y tres son disciplinas de soporte. Las disciplinas de ingeniería son: Modelado de Negocio, Requerimientos, Análisis y Diseño, Implementación, Pruebas y Deployment. Las disciplinas de soporte son: Gestión de cambios y configuraciones, Gestión de proyecto y Entorno.


www.ibm.com/software/awdtools/rup

Scrum

Scrum es un modelo iterativo, incremental, que define un conjunto de prácticas y roles. Los roles principales en Scrum son el “ScrumMaster”, que mantiene los procesos, el “ProductOwner”, que representa a los clientes externos o internos, y el “Team” que realiza el análisis, diseño, implementación, testing, etc. Durante cada sprint, el equipo crea un incremento de software potencialmente distribuible. El conjunto de características que forma parte de cada sprint viene del “Product Backlog”, que es un conjunto de requisitos de alto nivel priorizados que definen el trabajo a realizar. Los elementos del “Product Backlog” que forman parte del sprint se determinan durante la reunión de “Sprint Planning”. Durante esta reunión, el “Product Owner” identifica los elementos del “Product Backlog” que quiere ver completados y los da a conocer al equipo. Entonces, el equipo determina la cantidad de ese trabajo que puede comprometerse a completar durante el siguiente sprint. Durante el sprint, nadie puede cambiar el “Sprint Backlog”, lo que significa que los requisitos están congelados durante el sprint.


www.scrumalliance.org

Test-driven development

Test-driven development (TDD) es una práctica de programación que usa iteraciones de desarrollo cortas basadas en casos de prueba prescritos que definen la nueva funcionalidad o mejora deseada. Cada iteración produce el código necesario para pasar los test de esa iteración. Finalmente, el programador o el equipo refactoriza el código. El ciclo de TDD consta de 5 pasos: escribir una prueba nueva, correr todas las pruebas y verificar que la nueva falle, escribir el código, correr las prueba automatizadas y verificar que son exitosas, refactorizar el código.


www.testdriven.com