Eq11 Desarrollo Agil
Eq11 Desarrollo Agil
Eq11 Desarrollo Agil
Integrantes:
La ingeniería de software ágil combina una filosofía con un conjunto de lineamientos de desarrollo.
La filosofía pone el énfasis en: la satisfacción del cliente y en la entrega rápida de software
incremental, los equipos pequeños y muy motivados para efectuar el proyecto, los métodos
informales, los productos del trabajo con mínima ingeniería de software y la sencillez general en el
desarrollo.
Los lineamientos de desarrollo enfatizan la entrega sobre el análisis y el diseño (aunque estas
actividades no
se desalientan) y la comunicación activa y continua entre desarrolladores y clientes.
¿Quién lo hace?
El ambiente moderno de negocios que genera sistemas basados en computadora y productos de software evoluciona
rápida y constantemente.
La ingeniería de software ágil representa una alternativa razonable a la ingeniería de software convencional para ciertas
clases de software y en algunos tipos de proyectos. Asimismo, se ha demostrado que concluye con rapidez sistemas
exitosos
¿Cuáles son los pasos a
seguir?
Un nombre más apropiado para el desarrollo ágil sería
“ingeniería de software ligero”.
Comunicación Construcción
Ingeniera de
Planeación Despliegue
software ligero
Modelado
Pero se transforman en un conjunto mínimo de tareas que lleva al equipo del proyecto hacia la
construcción y entrega (algunas personas dirían que esto se hace a costa del análisis del problema y
del diseño de la solución).
¿Cuál es el producto Final?
La agilidad se ha convertido en la palabra mágica de hoy para describir un proceso del software moderno. Todos
son ágiles. Un equipo ágil es diestro y capaz de responder de manera apropiada a los cambios.
El cambio es de lo que trata el software en gran medida. Hay cambios en el software que se construye, en los
miembros del equipo, debidos a las nuevas tecnologías, de todas clases y que tienen un efecto en el producto que
se elabora o en el proyecto que lo crea.
Deben introducirse apoyos para el cambio en todo lo que se haga en el software; en ocasiones se hace porque es el
alma y corazón de éste.
Un equipo ágil reconoce que el software es desarrollado por individuos que trabajan en equipo, y que su
capacidad, su habilidad para colaborar, es el fundamento para el éxito del proyecto.
La Agilidad y el costo del
cambio
La sabiduría convencional del desarrollo de software (apoyada por décadas
de experiencia) señala que el costo se incrementa en forma no lineal a medida
que el proyecto avanza. Es relativamente fácil efectuar un cambio cuando el
equipo
de software reúne los requerimientos (al principio de un proyecto). El
escenario de uso tal vez tenga que modificarse, la lista de funciones puede
aumentar, o editarse una especificación escrita.
Los costos de hacer que esto funcione son mínimos, y el tiempo requerido no
perjudicará el resultado del proyecto. Pero ¿qué pasa una vez transcurridos
algunos meses? El equipo está a la mitad de las pruebas de validación (algo
que ocurre cuando el proyecto está relativamente avanzado) y un participante
de importancia solicita que se haga un cambio funcional grande.
El cambio requiere modificar el diseño de la
arquitectura del software, el diseño y construcción de
tres componentes nuevos, hacer cambios en otros cinco
componentes, diseñar nuevas pruebas, etc. Los costos
aumentan con rapidez, y no son pocos el tiempo y el
dinero requeridos para asegurar que se haga el cambio
sin efectos colaterales no intencionados.
¿Qué es un Proceso Ágil?
Cualquier proceso del software ágil se caracteriza por la forma en la que aborda cierto número de
suposiciones clave acerca de la mayoría de los proyectos de software:
1. Es difícil predecir qué requerimientos de software persistirán y cuáles cambiarán. También es difícil
pronosticar cómo cambiarán las prioridades del cliente a medida que avanza el proyecto.
2. Para muchos tipos de software, el diseño y la construcción están imbricados. Es decir, ambas
actividades deben ejecutarse en forma simultánea, de modo que los modelos de diseño se prueben a
medida que se crean. Es difícil predecir cuánto diseño se necesita antes de que se use la construcción
para probar el diseño.
3. El análisis, el diseño, la construcción y las pruebas no son tan predecibles como nos
gustaría (desde un punto de vista de planeación).
Dadas estas tres suposiciones, surge una pregunta importante: ¿Cómo crear
un proceso que pueda manejar lo impredecible? La respuesta, como ya se
dijo, está en la adaptabilidad del proceso (al cambio rápido del proyecto y a
las condiciones técnicas). Por tanto, un proceso ágil debe ser adaptable.
1. La prioridad más alta es satisfacer al cliente a través de la entrega pronta y continua de software valioso.
2. Son bienvenidos los requerimientos cambiantes, aun en una etapa avanzada del desarrollo. Los procesos ágiles
dominan el cambio para provecho de la ventaja competitiva del cliente.
3. Entregar con frecuencia software que funcione, de dos semanas a un par de meses, de preferencia lo más
pronto que se pueda.
4. Las personas de negocios y los desarrolladores deben trabajar juntos, a diario y durante
todo el proyecto.
5. Hay que desarrollar los proyectos con individuos motivados. Debe darse a éstos el ambiente y el apoyo que
necesiten, y confiar en que harán el trabajo.
11. Las mejores arquitecturas, requerimientos y diseños surgen de los equipos con organización
propia.
12. El equipo reflexiona a intervalos regulares sobre cómo ser más eficaz, para después afinar y
ajustar su comportamiento en consecuencia.
Factores Humanos
En un contexto de desarrollo ágil Aunque los miembros del equipo La ingeniería de software (sin Cualquier equipo bueno de software (incluso los
(así como en la ingeniería de ágil realicen diferentes tareas y importar el proceso) trata de equipos ágiles) debe tener libertad para controlar
software), aporten habilidades distintas al evaluar, analizar y usar la su destino.
la “competencia” incluye el talento proyecto, todos deben centrarse en información que se comunica al
innato, las habilidades específicas una meta: entregar al cliente en la equipo de software; crear Esto implica que se dé autonomía al equipo:
relacionadas con el software y el fecha prometida un incremento de información que ayudará a todos autoridad para tomar decisiones sobre asuntos
conocimiento general del proceso software que funcione. Para los participantes a entender el tanto técnicos como del proyecto.
que el equipo haya elegido aplicar. lograrlo, el equipo también se trabajo del equipo; y generar
La habilidad y el conocimiento del centrará en adaptaciones continuas información (software de cómputo y
proceso pueden y deben (pequeñas y grandes) que hagan que bases de datos relevantes) que
considerarse para todas las el aporten al cliente valor del negocio.
personas que sean miembros ágiles proceso se ajuste a las necesidades Para efectuar estas tareas, los
del equipo. del equipo. miembros del equipo deben
colaborar, entre sí y con todos
los participantes
Capacidad de resolver problemas Confianza y respeto mutuos Organización propia
difusos
Los gerentes de software deben reconocer que el Un equipo pegado tiene la confianza y respeto que En el contexto del desarrollo ágil, la organización
equipo ágil tendrá que tratar en forma continua son necesarios para hacer “su tejido tan fuerte que el propia implica tres cosas:
con la ambigüedad y que será sacudido de manera todo es más que la suma de sus partes” .
permanente por el cambio. 1) El equipo ágil se organiza a sí mismo para hacer
el trabajo.
En ciertos casos, el equipo debe aceptar el hecho de 2) el equipo organiza el proceso que se adapte mejor
que el problema que resuelven ahora tal vez no sea a su ambiente local.
el que se necesite resolver mañana. 3) El equipo organiza la programación del trabajo a
Sin embargo, las lecciones aprendidas de cualquier fin de que se logre del mejor modo posible la
actividad relacionada con la solución de problemas entrega del incremento de software.
(incluso aquellas que resuelven el problema
equivocado) serán benéficas para el equipo en una
etapa posterior del proyecto.
El Proceso XP
La programación extrema usa un enfoque orientado a objetos como paradigma preferido de desarrollo, y
engloba un conjunto de reglas y prácticas que ocurren en el contexto de cuatro actividades estructurales:
planeación, diseño, codificación y pruebas.
Planeación Codificación
Proceso XP
Diseño Pruebas
Modelos Agiles del Proceso
El más usado de todos los modelos ágiles de proceso es la programación extrema (XP). Pero
se han propuesto muchos otros y están en uso en toda la industria. Entre ellos se encuentran
los siguientes: