Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Resumen Capitulo 3
Resumen Capitulo 3
RESUMEN
CAPÍTULO
S3
Fundamentos de
Ingeniería de Software
Índice
Capítulo 3: Desarrollo ágil de software………………………..…………………………. 2
3.1 Métodos ágiles………………………..………………………..………………… 3
3.2 Desarrollo dirigido por un plan y desarrollo ágil……………………………… 4
3.3 Programación extrema………………………..………………………..……….. 5
3.3.1 Pruebas en XP………………………..………………………..
8
……….
3.3.2 Programación en pares………………………..
9
……………………….
3.4 Administración de un proyecto ágil………………………..…………………… 10
3.5 Escalamiento de métodos ágiles………………………..……………………... 12
2
Son aquellas que permiten adaptar la forma de trabajo a las condiciones del
proyecto, consiguiendo flexibilidad e inmediatez en la respuesta para amoldar el
proyecto y su desarrollo a las circunstancias específicas del entorno.
Tienen la intención de entregar con prontitud el software operativo a los clientes,
quienes entonces propondrán requerimientos nuevos y variados para incluir en
posteriores iteraciones del sistema.
Se dirigen a simplificar el proceso burocrático al evitar trabajo con valor dudoso a
largo plazo, y a eliminar documentación que quizá nunca se emplee. El otro
problema potencial tiene que ver con mantener la continuidad del equipo de
desarrollo.
Los métodos ágiles se apoyan en aquellos miembros del equipo que comprenden
los aspectos del sistema sin que deban consultar la documentación. Si se separa
un equipo de desarrollo ágil, entonces se pierde este conocimiento implícito y es
difícil que los nuevos miembros del equipo acumulen la misma percepción del
sistema y sus componentes.
La filosofía detrás de los métodos ágiles se refleja en el manifiesto ágil, que
acordaron muchos de los desarrolladores líderes de estos métodos. Este
manifiesto afirma:
Estamos descubriendo mejores formas para desarrollar software, al hacerlo y al
ayudar a otros a hacerlo. Gracias a este trabajo llegamos a valorar:
A los individuos y las interacciones sobre los procesos y las herramientas
Al software operativo sobre la documentación exhaustiva
La colaboración con el cliente sobre la negociación del contrato
La respuesta al cambio sobre el seguimiento de un plan
Esto es, aunque exista valor en los objetos a la derecha, valoraremos más
los de la izquierda.
4
Planeación incremental
Los requerimientos se registran en tarjetas de historia (story cards) y las
historias que se van a incluir en una liberación se determinan por el tiempo
disponible y la prioridad relativa. Los desarrolladores desglosan dichas
historias en “tareas” de desarrollo.
Liberaciones pequeñas
Al principio se desarrolla el conjunto mínimo de funcionalidad útil, que ofrece
valor para el negocio. Las liberaciones del sistema son frecuentes y agregan
incrementalmente funcionalidad a la primera liberación.
Diseño simple
Se realiza un diseño suficiente para cubrir sólo aquellos requerimientos
actuales.
Refactorización
Se espera que todos los desarrolladores re factoricen de manera continua el
código y, tan pronto como sea posible, se encuentren mejoras de éste.
Programación en pares
Los desarrolladores trabajan en pares, y cada uno comprueba el trabajo del
otro; además, ofrecen apoyo para que se realice siempre un buen trabajo.
Propiedad colectiva
Los desarrolladores en pares laboran en todas las áreas del sistema, de
manera que no se desarrollan islas de experiencia, ya que todos los
desarrolladores se responsabilizan por todo el código.
Integración continúa
Tan pronto como esté completa una tarea, se integra en todo el sistema.
Después de tal integración, deben aprobarse todas las pruebas de unidad en
el sistema.
Ritmo sustentable
Grandes cantidades de tiempo extra no se consideran aceptables, pues el
efecto neto de este tiempo libre con frecuencia es reducir la calidad del código
y la productividad de término medio.
Cliente en sitio
Un representante del usuario final del sistema (el cliente) tiene que disponer
de tiempo completo para formar parte del equipo XP.
8
3.3.1 Pruebas en XP
La fase de selección incluye a todo el equipo del proyecto que trabaja con el
cliente, con la finalidad de seleccionar las características y la funcionalidad a
desarrollar durante el sprint.
La necesidad de entrega más rápida del software, que es más adecuada para las
necesidades del cliente, se aplica también a sistemas más grandes. Por
consiguiente, hay un enorme interés en escalar los métodos ágiles para enfrentar
los sistemas de mayor dimensión, desarrollados por grandes organizaciones.
Existen dos perspectivas en el escalamiento de los métodos ágiles:
1. Una perspectiva de “expansión” (scaling up), que se interesa por el uso de
dichos métodos para el desarrollo de grandes sistemas de software que no
logran desarrollarse con equipos pequeños.
13
2. Una perspectiva de “ampliación” (scaling out), que se interesa por que los
métodos ágiles se introduzcan en una organización grande con muchos años
de experiencia en el desarrollo de software.