Ingeniería de Software
description
Transcript of Ingeniería de Software
Ingeniería de Software
Ciclos de vida ágiles
Es una metodología ágil que plantea:◦ Iteraciones cortas◦ Entregables periódicos◦ Colaboración con el cliente full time◦ Herramientas y buenas prácticas para mejorar la
calidad y la eficiencia
eXtreme Programming
Los Valores originales de XP son: ◦ simplicidad◦ comunicación◦ retroalimentación (feedback)◦ coraje◦ respeto, fue añadido en la segunda edición de XP
Explained.
XP - Valores
XP - Iteraciones
Planning incremental Releases cortas Diseño simple TestDrivenDevelopment + Full test coverage Refactoring Pair Programming Building continuo Collective ownership Retrospectives Stand-up meetings Demos Documentación tardía Risk Management
XP - Buenas prácticas
Los requerimientos se plantean en forma de User Stories, o escenarios, los desarrolladores parten estos escenarios en múltiples tareas para ser estimadas.
Deben ser priorizados por el cliente. Tienen la descripción de alto nivel de una necesidad
del sistema, no una descripción detallada. Cuando se desarrolle la historia, en paralelo se hace:
◦ Análisis: el cliente provee la información necesaria◦ Diseño: se busca diseño simple◦ Programación: se busca código fácil
de refactorizar◦ Testing: el desarrollador escribe
tests unitarios automatizados◦ Producción: una vez “buildeado” el
código debe ser funcional
XP – User stories (US)
Las US deben por sí mismas contener las condiciones de aceptación de las mismas
Las US no son sólo requerimientos funcionales, también incluyen:◦ Tareas de documentación que le
agregan valor al cliente◦ Requerimientos no funcionales◦ Bugs◦ Tareas que agregan valor de manera
indirecta: reuniones, cursos, investig.
XP – User stories (US)
XP – Architectural Spike / ExplorationPhase / Release Planning No es una iteración, se trata de explorar
elementos de la solución que parecen relevantes para el aún limitado conocimiento que se tiene del problema.
Se puede hacer un prototipo para atacar los riesgos mas importantes.
Intenta identificar las áreas de máximo riesgo, para estimarlas correctamente
XP – Testing Para que XP funcione correctamente se
necesita, no sólo testers, sino los mismos desarrolladores deben asegurar el buen funcionamiento luego de cambios:◦ Testing automatizado◦ TDD◦ Full Test coverage
El cliente debe ayudar a definir las condiciones de aceptación, esto se debe hacer cuando se está por empezar a desarrollar la historia no antes ni después.
XP – Pair programming En XP, los programadores deberían trabajar
de a pares. Si bien a primera instancia esto parece reducir la performance, permite:◦ Mejorar la calidad del código (mejor
entendibilidad, menos cantidad de defectos, mejor diseño)
◦ Mejora el collective ownership◦ Todo el código es revisado◦ Sirve para que los desarrolladores más expertos
trabajen en pares con los menos expertos
XP – Ventajas / Desventajas
Ventajas◦ Se genera un buen ambiente de trabajo◦ El modelo está pensado para reaccionar ante cambios, se
disminuye la burocracia y el overhead◦ Se genera una buena calidad de código◦ Se entienden mejor los requerimientos al tener un cliente
en el equipo◦ Se puede incorporar de a poco en el proceso
Desventajas◦ Al poner énfasis en la gente vs proceso, se necesita buscar
personas con buen skill◦ Es difícil establecer contratos rígidos y el cliente debe
proveer un experto para proveer los requerimientos◦ Requiere cambios culturales importantes
Scrum El foco en Scrum es establecer condiciones
para administrar correctamente las iteraciones Se definen 3 etapas en Scrum:
◦ Etapa inicial: donde se especifica las tareas a realizar y la arquitectura
◦ Ciclos de sprint: cada sprint realiza un incremento al sistema
◦ Fin de proyecto: se termina la documentación y se hace un review de cómo salió el proyecto
Sprint cycle Un sprint es una iteración de entre 2 y 4 semanas Se define un backlog (un conjunto de todos los
issues a realizar) Al principio de la iteracion se seleccionan del
backlog todos los stories a realizar Los desarrolladores dividen y organizan las tareas a
realizar sin intervención de clientes Se define un Scrum Master que se relaciona con el
cliente, el resto del equipo no se relaciona Al final se revisa la iteración y los clientes tienen
acceso al software
Daily meetings Se realizan reuniones de 15 minutos donde
están todos los desarrolladores hablan sobre qué estuvieron haciendo, mejorando las relaciones en el equipo y permitiendo ayudar a resolver problemas
Diferencias entre Scrum y XP
Scrum provee niveles de planificación y especifica roles y responsabilidades, en XP el foco esta en las herramientas de desarrollo
Scrum requiere user stories detalladas dado que el cliente no interactúa una vez iniciado el Sprint, en XP es requerido que el cliente sea accesible siempre
Comparación
Comparación
Preguntas
Sugerencias
Aplausos