Académique Documents
Professionnel Documents
Culture Documents
gil
Oscar Benito Pacheco
FCM-Computacin Cientfica
Agenda
Software Hoy en Da
Motivacin
Casas
Proyecto de PyMES
ARQUITECTURAS SIMPLES
Rentable $
Casas de Perros
Proyectos Escolares
SIN ARQUITECTURA
Poco $
Edificios
Grandes Corporativos
ARQUITECTURAS COMPLEJAS
Mucho $$$$
Motivacin
Las metodologas de desarrollo de software son un conjunto de
mejores prcticas que si no se llevan a la prctica no sirven
de nada.
Primera etapa
Segunda Etapa
Tercera Etapa
Cuarta Etapa
Motivacin
En qu consiste el proceso de desarrollo de software?
Si pensamos que el software de desarrollo de software es slo
programar (que evidentemente es la parte ms representativa)
estamos muy equivocados.
El desarrollo de software consiste en mltiples actividades.
Proceso de Desarrollo de Sw
Proceso de Desarrollo de Sw
Por qu este modelo de cascada no funciona para el
desarrollo del software?
Por que los requerimientos de software son sumamente
cambiantes al ser un producto abstracto.
El objetivo de la Ingeniera del Software es lograr la calidad del
software.
La calidad tiene muchas perspectivas.
Proceso de Desarrollo de Sw
Pressman clasifica las actividades del desarrollo de software en
las siguientes:
Comunicacin
Inicio del Proyecto
Recopilacin de Requerimientos
Planeacin
Estimacin
Itinerario
Seguimiento
Proceso de Desarrollo de Sw
Modelado
Anlisis
Diseo
Construccin
Cdigo
Prueba
Despliegue:
Entrega
Soporte
Retroalimentacin
Proceso de Desarrollo de Sw
La etapa de comunicacin es sumamente importante:
Metodologas de Software
Las metodologas de software ayudan a lograr la calidad del
software. Puedo lograr la calidad del software sin usar
metodologas?
Metodologas de Software
La solucin ms fcil es realizar outsorcing (que lo hagan
otros).
Sino se puede, se deber realizar en base a tres formas
bsicas de solucin de problemas:
Conocimiento
Experiencia
Sentido Comn
Metodologas de Software
La forma ms fcil es a travs de una metodologa para realizar
nudos de corbatas como la planteada en http://www.nudo-decorbata.com/
Tipos de Nudos
Simple
Doble
Tipos de Nudos
Windsor
Medio Windsor
Uso de Metodologas
Las metodologas nos orientan hacia mejores resultados.
Problema
Las metodologas son un conjunto de mejores prcticas que si
no se llevan a la prctica o se hacen a medias es muy difcil
que se tenga calidad.
Agenda
Introduccin (planteamiento del problema)
Conclusiones
Metodologas giles
Siguen desarrollando las mismas actividades del proceso de
desarrollo de software, slo difieren en la forma de hacerlo.
Las Metodologas giles se fundamentan en 4 principios
bsicos (manifiesto gil):
Al individuo y las interacciones en el equipo de desarrollo ms
que a las actividades y las herramientas.
Metodologas giles
Desarrollar software que funciona ms que conseguir una
buena documentacin Minimalismo respecto del modelado y
la documentacin del sistema.
Beneficios
Es ms adecuada para los cambios reduciendo los errores
(costos) y logrando la satisfaccin de los clientes
Tradicional
Costo
del
cambio
Suposicin MAs
tiempo
Metodologa Tradicional
Ms Roles, ms especficos
Metodologas giles
Crystal Methodologies, Alistarir Cockburn,
www.crystalmethodologies.org
SCRUM, Ken Schwaber & Jeff Sutherland,
www.controlchaos.com
DSDM (Dynamic Systems Development Method),
www.dsdm.org
Metodologas giles
FDD (Feature-Driven Development), Peter Coad & Jeff De
Luca, www.nebulon.com/fdd, www.coad.com/peter/#fdd
Extreme Programming, Kent Beck
www.extremeprogramming.org, www.xprogramming.com
Adaptative Software Development, Jim Highsmith
www.adaptivesd.com
Agenda
Introduccin (planteamiento del problema)
Metodologas giles (solucin)
Metodologas giles
Las dos principales metodologas giles son scrum y XP
(eXtreme Programming).
Cualquiera que fuera el mtodo gil debe de cumplir con el
manifiesto gil.
Scrum es certificable mientras que XP no lo es, pero muchos
equipos de desarrollo la manejan ampliamente.
XP
XP
Es una metodologa idnea para equipos de desarrollo
pequeos menores a 10 personas.
Se caracteriza por ser una metodologa ligera (excluye todo lo
que no sirve dejando la esencia o sabor de las cosas).
Se centra en la implementacin (codificacin) por lo que es
ideal para entornos dinmicos.
XP
La comunicacin se da de manera muy informal, generalmente
verbal.
Las metodologas giles se preocupan por inculcar valores y
XP no es la excepcin, sus principales valores son:
comunicacin, simplicidad, retroalimentacin y coraje.
XP
Los actores que participan en el desarrollo de software son:
Programador: responsable de decisiones tcnicas y de construir el
sistema. No hay distincin entre analistas, diseadores o codificadores.
Es decir, en XP los programadores modelan, codifican y prueban.
Clientes: son parte del sistema, determinar que construir y cuando,
realizan test para determinar cuando algo est completo.
XP
Entrenador (Coach): es el lder del equipo. Tiende a estar en un
segundo plano a medida que el equipo madura
Rastreador (Tracker): tambin llamado Metric Man, se encarga
de observar sin molestar, debe conservar datos histricos.
Probador (Tester): Ayuda al cliente con las pruebas funcionales.
XP
El proceso de desarrollo en XP se puede resumir como:
Mientras(sistema_es_til) {
Captar requisitos
User Stories
Methaphor
Planificar
Release planning
Iteration planning
XP
Desarrollar
Programming
Presentar la entrega
Releasing
}
Puntos clave: el juego de planificacin, entregas cortas,
diseos simples, refactorizacin. LA GRAN FOTO
XP
La gran foto
XP
XP es una metodologa muy utilizada pero como todo tiene
tambin sus puntos dbiles. Entre ellos que pocos son los que
utilizan la metodologa completa.
XP
XP
Las metodologas giles se caracterizan por fomentar valores como:
Comunicacin
Simplicidad
Retroalimentacin
Coraje
Para muchas empresas es ms importante las actitudes que las
aptitudes.
Artefactos en XP
Historias del Usuario
Tareas de Ingeniera
Pruebas de Aceptacin
Pruebas Unitarias y de Integracin
Plan de la Entrega
Cdigo
Historia de Usuario
Historia de Usuario
Nmero: 1
Usuario: Autor
Modificacin de Historia Nmero:
Iteracin Asignada: 2
Observaciones:
Spikes
Clima de Trabajo
Espacio abierto
Mesas centrales
Cubculos en el espacio exterior
Clima de Trabajo
Reunin diaria: Stand-up Meeting
Todo el equipo
Problemas
Soluciones
De pie en un crculo
Evitar discusiones largas
Sin conversaciones separadas
Scrum
Scrum
Es otra metodologa gil que entre sus principales
caractersticas estn:
Desarrollo de software por medio de iteraciones (Sprints).
Indicado para proyectos con un rpido cambio de
requerimientos.
Gran protagonismo de reuniones a lo largo del proyecto.
Scrum
Los actores que intervienen en esta metodologa son:
Propietarios del producto
Scrum
Scrum
Los sprints son la base del desarrollo en scrum, consisten en
una serie de actividades previamente definidas en un lapso de
30 das.
Scrum
Scrum
Sprint planning meeting: reunin que se realiza antes de cada
Sprint.
Se hace conjuntamente con el Propietario del producto el
Scrum Master y el equipo Scrum.
Enfocar la reunin hacia los requisitos ms prioritarios.
Scrum
Revisin del sprint: se realiza al final de cada Sprint.
Se deben reunir el propietario de la aplicacin los usuarios as
como el Scrum Master y su equipo , adems tambin es
recomendable que acudan ingenieros de otros proyectos para
dar su punto de vista.
Scrum
Product owner:
Definir la funcionalidad del producto
Scrum
Quines son products owner?
Analista
Tester
Usuario final
Cliente
Product Manager
Scrum
Un rol de suma importancia en esta metodologa es el
escuchar.
Muchos problemas de desarrollo se pueden solucionar
fcilmente si se escucha a los clientes, usuarios finales y
equipos de desarrollo.
Lean
Lean
En una era donde ser esbelto es lo in , podemos poner a
dieta nuestros procesos de desarrollo de software?
No existe una definicin formal de metodologas esbeltas
simplemente se usan los principios del pensamiento gil.
Cada autor vara los principios manejados. A continuacin
se muestran algunos principios bsicos.
Principios
Eliminar el desperdicio
Construir con calidad
Crear conocimiento
Postergar compromiso
Entregas rpidas
Repetar a las personas
Optimizar el todo
Eliminar el desperdicio
Tiempo entre pedido y entrega
Qu es desperdicio?
Qu es valor?
Ejemplos
Solucin
KISS
Refactoring
Crear conocimiento
No es posible
Conocer las necesidades al inicio
Disear sin implementar
Postergar compromiso
Tomar decisiones irreversibles
Buscar soluciones reversibles
Mito: Planificacin es compromiso
Entregas rpidas
Alta calidad
Bajo costo
Menos cambios
Optimizar el todo
Ejemplos:
El cliente quiere algo para ayer
Testing est sobrecargado
Agenda
Introduccin (planteamiento del problema)
Metodologas giles (solucin)
Ejemplos de Metodologas (XP, Scrum y Lean)
Conclusiones
Conclusiones
Las metodologas giles no son nada nuevo bajo el sol.
Se tienen que tropicalizar las metodologas para su buen
funcionamiento.
Existe una fuerte discusin en la academia sobre si enfocarse a
las metodologas giles o no (al final de cuentas se debe
entender el proceso).
Conclusiones
El proceso de desarrollo de software es un proceso
sociotecnolgico.
Para poder aprender la metodologa se necesita vivirla (se
necesitan horas de vuelo).
Las metodologas giles son muy buenas cuando se domina el
proceso en general.
Conclusiones
Si el usuario final y/o clientes no colaboran es sumamente difcil
aplicar la metodologa.
Se debe aplicar mtodos giles si se tienen procesos bien
definidos pero no funcionan de manera adecuada frente a los
campos o bien, el equipo de desarrollo no est a gusto.
Conclusiones
Se siguen realizando el mismo proceso de desarrollo de
software slo cambia la forma.
No importa que metodologa se utilice solo hay que llevarlo a la
prctica como toda una verdadera disciplina.
La agilidad no cuesta. Lo nico constante es el cambio.
Referencias
Roger S. Pressman, Ingeniera de software un enfoque
prctico.Ed. McGraw Hill.
Referencias
Gabardini, J. (2009) Scrum - Product Owner y Planificacin.
Facultad de Ingeniera UBA, Argentina
Cohn, Mike (2009) www.mountaingoatsoftware.com