El documento presenta una introducción a la metodología ágil para el desarrollo de software. Explica que las metodologías ágiles se basan en un proceso incremental e iterativo donde los cambios son bienvenidos. Resalta los principios del Manifiesto Ágil como individuos e interacciones, software funcionando, colaboración con el cliente y respuesta al cambio. Describe brevemente métodos como Scrum, XP y principios como entregas frecuentes y trabajo conjunto entre desarrolladores y cliente.
5. Qué es Agile
#PHPBsAs
meetupphpbsas.github.io
Las metodologías ágiles son una alternativa al manejo tradicional de proyectos. En los
proyectos ágiles el resultado se obtiene por medio de un proceso incremental e iterativo
en donde los cambios son bienvenidos y cada iteración tiene como finalidad agregar valor
verdadero al producto. La mejora continua es un punto fundamental.
La palabra ágil deriva del manifiesto ágil (http://agilemanifesto.org)
6. Agile Manifesto
#PHPBsAs
meetupphpbsas.github.io
Estamos descubriendo formas mejores de desarrollar
software tanto por nuestra propia experiencia como
ayudando a terceros. A través de este trabajo hemos
aprendido a valorar:
Individuos e interacciones sobre Procesos y herramientas
Software funcionando sobre Documentación extensiva
Colaboración con el cliente sobre Negociación contractual
Respuesta ante el cambio sobre Seguir un plan
Esto es, aunque valoramos los elementos de la derecha,
valoramos más los de la izquierda.
7. Principios ágiles
#PHPBsAs
meetupphpbsas.github.io
Nuestra mayor prioridad es
satisfacer al cliente mediante
la entrega temprana y
continua de software
con valor.
Aceptamos que los requisitos
cambien, incluso en etapas
tardías del desarrollo. Los
procesos Ágiles aprovechan
el cambio para proporcionar
ventaja competitiva al
cliente.
Entregamos software funcional
frecuentemente, entre dos
semanas y dos meses, con
preferencia al periodo de
tiempo más corto posible.
Los responsables de negocio
y los desarrolladores
trabajamos juntos de forma
cotidiana durante todo
el proyecto.
Los proyectos se desarrollan
en torno a individuos
motivados. Hay que darles el
entorno y el apoyo que
necesitan, y confiarles la
ejecución del trabajo.
El método más eficiente y
efectivo de comunicar
información al equipo de
desarrollo y entre sus
miembros es la conversación
cara a cara.
8. Principios ágiles (cont)
#PHPBsAs
meetupphpbsas.github.io
El software funcionando
es la medida principal de
progreso.
Los procesos Ágiles
promueven el desarrollo
sostenible. Los promotores,
desarrolladores y usuarios
debemos ser capaces de
mantener un ritmo constante
de forma indefinida.
La atención continua a la
excelencia técnica y al
buen diseño mejora la
Agilidad.
La simplicidad, o el arte de
maximizar la cantidad de
trabajo no realizado, es
esencial.
Las mejores arquitecturas,
requisitos y diseños
emergen de equipos auto-
organizados.
A intervalos regulares el equipo
reflexiona sobre
cómo ser más efectivo para a
continuación ajustar y
perfeccionar su comportamiento
en consecuencia.
12. Metodologías tradicionales (no ágiles)
Las metodologías no ágiles son aquellas que están guiadas por una fuerte planificación durante todo el proceso
de desarrollo; llamadas también metodologías tradicionales o clásicas, donde se realiza una intensa etapa de
análisis y diseño antes de la construcción del sistema.
Metodologías ágiles
Un proceso es ágil cuando el desarrollo de software es incremental (entregas pequeñas de software, con
ciclos rápidos), cooperativo (cliente y desarrolladores trabajan juntos constantemente con una cercana
comunicación), sencillo (el método en sí mismo es fácil de aprender y modificar, bien documentado), y
adaptable (permite realizar cambios de último momento)
#PHPBsAs
meetupphpbsas.github.io
Definiciones
16. Agile Software Development
#PHPBsAs
meetupphpbsas.github.io
“Agile Development” is an umbrella term for several iterative and incremental software
development methodologies. The most popular agile methodologies include Extreme
Programming (XP), Scrum, Crystal, Dynamic Systems Development Method (DSDM), Lean
Development, and Feature-Driven Development (FDD).
While each of the agile methodologies is unique in its specific approach, they all share a common
vision and core values (see the Agile Manifesto). They all fundamentally incorporate iteration and
the continuous feedback that it provides to successively refine and deliver a software system.
They all involve continuous planning, continuous testing, continuous integration, and other forms
of continuous evolution of both the project and the software. They are all lightweight, especially
compared to traditional waterfall-style processes, and inherently adaptable. What is more
important about agile methods is that they all focus on empowering people to collaborate and
make decisions together quickly and effectively.
Fuente: https://www.versionone.com/agile-101/
18. Ventajas de Agile
#PHPBsAs
meetupphpbsas.github.io
Rápida respuesta a cambios de requisitos a lo largo del desarrollo.
Entrega continua y en plazos cortos de software funcional.
Trabajo conjunto entre el cliente y el equipo de desarrollo.
Minimiza los costos frente a cambios.
Importancia de la simplicidad, al eliminar el trabajo innecesario.
Atención continua a la excelencia técnica y al buen diseño.
Mejora continua de los procesos y el equipo de desarrollo.
Evita malentendidos de requerimientos entre el cliente y el equipo.
El equipo de desarrollo no malgasta el tiempo y dinero del cliente desarrollando soluciones
innecesariamente generales y complejas que en realidad no son un requisito del cliente.
Cada componente del producto final ha sido probado y satisface los requerimientos.
19. Desventajas de Agile
#PHPBsAs
meetupphpbsas.github.io
Falta de documentación del diseño. El código no puede tomarse como una documentación.
Problemas derivados de la comunicación oral.
Falta de calidad. Probar el código de forma constante no genera productos de calidad, sólo revela falta de
análisis y diseño.
Fuerte dependencia de las personas.
Falta de procesos de revisión del código.
Falta de reusabilidad. La falta de documentación hacen difícil que pueda reutilizarse el código ágil.
Sobre-costos y retrasos derivados de la refactorización continua.
Rigidez. Algunos métodos ágiles son muy rígidos.
Cambios. Los modelos de datos son “pesados” y no pueden cambiarse así como así solo porque el cliente
que irá incorporar más funciones al sistema.
Problemas derivados del fracaso de los proyectos ágiles. Si un proyecto ágil fracasa no hay documentación o
hay muy poca; lo mismo ocurre con el diseño. La comprensión del sistema se queda en las mentes de los
desarrolladores.
23. Agile - No Agile
Qué no es Agile
Qué es Agile
#PHPBsAs
meetupphpbsas.github.io
24. Qué no es Agile
#PHPBsAs
meetupphpbsas.github.io
Agile no es un Framework
Agile no es Scrum o Kanban o XP o (whatever). Estos recomiendan un conjunto
estandarizado de conceptos, prácticas y criterios para resolver un problema en particular
que adhieren a la filosofía Agile.
Agile no es una Metodología
Agile no define una secuencia de pasos y tareas para lograr los objetivos buscados.
Agile no es goal/objetivo
No existe el “Ahora soy Agile”. Agile es un camino, no un objetivo.
33. La ingeniería de software ágil combina una filosofía y un
conjunto de directrices de desarrollo. La filosofía busca la
satisfacción del cliente y la entrega temprana de software
incremental; equipos de proyecto pequeños y con alta
motivación; métodos informales y una simplicidad general del
desarrollo. Las directrices del desarrollo resaltan la entrega
sobre el análisis y el diseño (aunque estas actividades no se
descartan), y la comunicación activa y continua entre los
desarrolladores y los clientes.
#PHPBsAs
meetupphpbsas.github.io