Documentos de Académico
Documentos de Profesional
Documentos de Cultura
http://www.agilemanifesto.org
El desarrollo de software es
◦ Incremental
liberaciones pequeñas y ciclos rápidos.
◦ Cooperativo
clientes y desarrolladores trabajando juntos.
◦ Simple y Directo
el método es fácil de aprender y modificar.
◦ Adaptativo
es posible realizar cambios de último momento.
La mayor prioridad es satisfacer al cliente a través de la entrega
temprana y continua de software con valor.
Requisitos cambiantes, incluso en etapas avanzadas.
Entrega de software frecuentemente.
Los responsables de negocio y los desarrolladores deben trabajar
juntos diariamente a lo largo del proyecto.
Se construyen proyectos con profesionales motivados.
Conversación cara a cara.
Software que funciona es la principal medida de progreso.
Los procesos ágiles promueven el desarrollo sostenible.
La atención continua a la excelencia técnica y los buenos diseños
mejoran la agilidad.
Simplicidad es esencial.
Las mejores arquitecturas, requisitos y diseños surgen de equipos que se
auto-organizan.
A intervalos regulares el equipo reflexiona sobre cómo ser más
efectivo.
http://www.agilemanifesto.org/principles.html
Existe una amplia gama de metodologías y prácticas ágiles
de desarrollo de software que pueden ser utilizadas desde la
construcción de pequeños aplicativos y componentes de un
sistema, hasta una solución completa de software
empresarial. Algunas de las más prominentes son:
La Programación Extrema es una
metodología ligera de desarrollo de
software que se basa en la simplicidad, la
comunicación y la realimentación o
reutilización del código desarrollado.
Desarrollada por Kent Beck.
«Todo en el software cambia. Los requisitos cambian. El diseño
cambia. El negocio cambia. La tecnología cambia. El equipo
cambia. Los miembros del equipo cambian. El problema no es el
cambio en sí mismo, puesto que sabemos que el cambio va a
suceder; el problema es la incapacidad de adaptarnos a dicho
cambio cuando éste tiene lugar.» Kent Beck.
Centrada en potenciar las relaciones
interpersonales
Promueve el trabajo en equipo,
Se preocupa por el aprendizaje de los
desarrolladores, y propiciar un buen clima
de trabajo.
Comunicación fluida entre todos los
participantes.
Adecuada para proyectos con requisitos
imprecisos y muy cambiantes.
Programador. - Encargado de
Codigo - Pruebas seguimiento
Cliente. Historia de (Tracker).
Usuarios - Entrenador
Encargado de (Coach).
pruebas (Tester). - Consultor.
- Gestor (Big boss).
Es el vínculo entre clientes y
programadores
Scrum define un proceso empírico, iterativo
e incremental de desarrollo que intenta
obtener ventajas respecto a los procesos
definidos (cascada, espiral, prototipos, etc.)
mediante la aceptación de la naturaleza
caótica del desarrollo de software, y la
utilización de prácticas tendientes a
manejar lo impredecible y el riesgo a niveles
aceptables.
• Está especialmente indicada para proyectos con un
rápido cambio de requisitos.
• El desarrollo de software se realiza mediante
iteraciones, denominadas sprints, con una duración
de 30 días. El resultado de cada sprint es un
incremento ejecutable que se muestra al cliente.
• Se realizan reuniones a lo largo proyecto, entre
ellas destaca la reunión diaria de 15 minutos del
equipo de desarrollo para coordinación e
integración.
SCRUM Estructura
• Esqueleto de SCRUM •Corazón de SCRUM
• Proceso iterativo e •Iteraciones
incremental
• Equipos auto-organizados
• El producto progresa en una serie de “sprints” que
duran un mes
• Los requerimientos se encuentran en el “product
backlog” reunidos en una lista
• No contiene practicas de ingeniería pre-descriptas
• Utiliza reglas generales para crear un ambiente ágil
para la liberación de los proyectos
• Usado para proyectos complejos con requerimientos
cambiantes
• Basado en un control de proceso empírico
SCRUM Roles
• Product owner (dueño del producto)
• Team (equipo)
• ScrumMaster
El desarrollo adaptativo de software (DAS) lo
propuso Jim Highsmith 1998 como una
técnica para construir software y sistemas
complejos. Los apoyos filosóficos del DAS se
enfocan en la colaboración humana y la
organización propia del equipo.
Sus principales Especulación: ciclo
características son: adaptativo.
Iterativo, orientado
Colaboración: gente
motivada.
a los componentes Aprendizaje: progreso
software más que a de un ciclo.
las tareas y a) Grupos enfocados.
tolerante a los b) Revisiones técnicas
cambios. formales.
c) Post mortem.
El ciclo de vida que propone tiene tres fases
esenciales: especulación, colaboración y
aprendizaje. En la primera de ellas se inicia el
proyecto y se planifican las características del
software; en la segunda desarrollan las
características y finalmente en la tercera se
revisa su calidad, y se entrega al cliente. La
revisión de los componentes sirve para
aprender de los errores y volver a iniciar el
ciclo de desarrollo
El involucramiento del usuario es imperativo.
Los equipos de DSDM deben tener el poder de tomar
decisiones.
El foco está puesto en la entrega frecuente de productos.
La conformidad con los propósitos del negocio es el criterio
esencial para la aceptación de los entregables.
El desarrollo iterativo e incremental es necesario para
converger hacia una correcta solución del negocio.
Todos los cambios durante el desarrollo son reversibles.
Los requerimientos están especificados a un alto nivel.
El testing es integrado a través del ciclo de vida.
Un enfoque colaborativo y cooperativo entre todos los
interesados es esencial.
Estudio de factibilidad.
Estudio de negocios.
Iteración de modelo funcional.
Iteración de construcción y diseño.
Implementación.
Se trata de un conjunto de metodologías para
el desarrollo de software caracterizadas por
estar centradas en las personas que
componen el equipo y la reducción al máximo
del número de artefactos producidos.
Los siete valores o propiedades de Crystal Clear son:
Entrega frecuente. Consiste en entregar software a los
cuarto.
Mejora reflexiva. Tomarse un pequeño tiempo para
tranquilidad y el tiempo
para hacerlo.