SlideShare ist ein Scribd-Unternehmen logo
1 von 78
Desarrollo de Software Ágil
M.C. Juan Carlos Olivares Rojas
Zitácuaro, Michoacán, Octubre 2009
Agenda
•Introducción (planteamiento del
problema)
• Metodologías Ágiles (solución)
• Ejemplos de Metodologías (XP, Scrum y Lean)
• Conclusiones
Software Hoy en Día
•Mito: los programadores
de ahora ya no
programan como los de
antes.
•Herramientas más fáciles
y productivas
•El software es cada día
más complejo
Caracterización del SoftwareCaracterización del Software
• El software es un producto intangible el cual se logra a
través de un proceso creativo ya que programar es un arte,
el cual no puede ser sistematizado del todo.
• ¿Por qué es importante el Desarrollo de Proyectos de
forma Metodológica?
• El software es cada vez más complejo y costoso que se
compara con construir un edificio.
Motivación
“Casas de Perros”
Proyectos Escolares
SIN ARQUITECTURA
Poco $
Casas
Proyecto de PyMES
ARQUITECTURAS SIMPLES
Rentable $
Edificios
Grandes Corporativos
ARQUITECTURAS COMPLEJAS
Mucho $$$$
Tipos de Desarrollo de Software
MotivaciónMotivación
• Las metodologías de desarrollo de software son un
conjunto de “mejores prácticas” que si no se llevan a la
práctica no sirven de nada.
• El factor humano es el recurso más importante de
cualquier proyecto de software.
• ¿Cómo se desarrolla un proyecto de Software?
Primera etapa
Segunda Etapa
Tercera Etapa
Cuarta Etapa
Motivación
• ¿En qué consiste el proceso de desarrollo de software?
• Si pensamos que el software de desarrollo de software es
sólo programar (que evidentemente es la parte más
representativa) estamos muy equivocados.
• El desarrollo de software consiste en múltiples 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 Ingeniería 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:
• Comunicación
– Inicio del Proyecto
– Recopilación de Requerimientos
• Planeación
– Estimación
– Itinerario
– Seguimiento
Proceso de Desarrollo de Sw
• Modelado
– Análisis
– Diseño
• Construcción
– Código
– Prueba
• Despliegue:
– Entrega
– Soporte
– Retroalimentación
Proceso de Desarrollo de Sw
• La etapa de comunicación es sumamente importante:
Metodologías de Software
• Las metodologías de software ayudan a lograr la calidad
del software. ¿Puedo lograr la calidad del software sin
usar metodologías?
• Ejemplo: necesito hacer un nudo de corbato y no tenga
idea de cómo hacerlo…
• ¿Cómo podría resolver el problema?
Metodologías de Software
• La solución más fácil es realizar outsorcing (que lo hagan
otros).
• Sino se puede, se deberá realizar en base a tres formas
básicas de solución de problemas:
• Conocimiento
• Experiencia
• Sentido Común
Metodologías de Software
• La forma más fácil es a través de una metodología para
realizar nudos de corbatas como la planteada en
http://www.nudo-de-corbata.com/
• Lo primero que se tiene que saber es si debe ser un tipo
especial de corbata o no. Los tipos pueden ir desde nudo de
corbata simple, doble, windsor, medio windsor, nudo
pequeño.
Tipos de Nudos
Simple Doble
Tipos de Nudos
Windsor Medio Windsor
Uso de Metodologías
• Las metodologías nos orientan hacia mejores resultados.
Problema
• Las metodologías son un conjunto de mejores prácticas que
si no se llevan a la práctica o se hacen a medias es muy
difícil que se tenga calidad.
• Aun siguiendo las recomendaciones, una metodología no
garantiza que un producto tenga calidad.
Agenda
• Introducción (planteamiento del problema)
•Metodologías Ágiles (solución)
• Ejemplos de Metodologías (XP, Scrum y Lean)
• Conclusiones
Metodologías Ágiles
• Siguen desarrollando las mismas actividades del proceso de
desarrollo de software, sólo difieren en la forma de hacerlo.
• Las Metodologías Ágiles se fundamentan en 4 principios
básicos (manifiesto ágil):
• Al individuo y las interacciones en el equipo de desarrollo
más que a las actividades y las herramientas.
Metodologías Ágiles
• Desarrollar software que funciona más que conseguir una
buena documentación  Minimalismo respecto del
modelado y la documentación del sistema.
• La colaboración con el cliente más que la negociación de un
contrato.
• Responder a los cambios más que seguir estrictamente una
planificación.
Beneficios
• Es más adecuada para los cambios reduciendo los errores
(costos) y logrando la satisfacción de los clientes
Costo
del
cambio
tiempo
Tradicional
Suposición MAs
Método Tradicional vs Ágil
Metodología Ágil Metodología Tradicional
Pocos Artefactos. El modelado es
prescindible, modelos desechables.
Más Artefactos. El modelado es esencial,
mantenimiento de modelos
Pocos Roles, más genéricos y flexibles Más Roles, más específicos
No existe un contrato tradicional, debe ser
bastante flexible
Existe un contrato prefijado
Cliente es parte del equipo de desarrollo
(además in-situ)
El cliente interactúa con el equipo de
desarrollo mediante reuniones
Orientada a proyectos pequeños. Corta
duración (o entregas frecuentes), equipos
pequeños (< 10 integrantes) y trabajando
en el mismo sitio
Aplicables a proyectos de cualquier
tamaño, pero suelen ser especialmente
efectivas/usadas en proyectos grandes y
con equipos posiblemente dispersos
La arquitectura se va definiendo y
mejorando a lo largo del proyecto
Se promueve que la arquitectura se defina
tempranamente en el proyecto
Énfasis en los aspectos humanos: el
individuo y el trabajo en equipo
Énfasis en la definición del proceso: roles,
actividades y artefactos
Se esperan cambios durante el proyecto Se espera que no ocurran cambios de gran
impacto durante el proyecto
Metodologías Ágiles
• Crystal Methodologies, Alistarir Cockburn,
www.crystalmethodologies.org
• SCRUM, Ken Schwaber & Jeff Sutherland,
www.controlchaos.com
• DSDM (Dynamic Systems Development Method),
www.dsdm.org
Metodologías Á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
• Introducción (planteamiento del problema)
• Metodologías Ágiles (solución)
• Ejemplos de Metodologías (XP, Scrum y
Lean)
• Conclusiones
Metodologías Ágiles
• Las dos principales metodologías ágiles son scrum y XP
(eXtreme Programming).
• Cualquiera que fuera el método á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
M.C. Juan Carlos Olivares Rojas
Zitácuaro, Michoacán, Octubre 2009
XP
• Es una metodología idónea para equipos de desarrollo
pequeños menores a 10 personas.
• Se caracteriza por ser una metodología “ligera” (excluye
todo lo que no sirve dejando la esencia o “sabor” de las
cosas).
• Se centra en la implementación (codificación) por lo que es
ideal para entornos dinámicos.
XP
• La comunicación se da de manera muy informal,
generalmente verbal.
• Las metodologías ágiles se preocupan por inculcar valores
y XP no es la excepción, sus principales valores son:
comunicación, simplicidad, retroalimentación y coraje.
XP
• Los actores que participan en el desarrollo de software son:
• Programador: responsable de decisiones técnicas y de construir el
sistema. No hay distinción entre analistas, diseñadores 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 líder del equipo. Tiende a estar
en un segundo plano a medida que el equipo madura
• Rastreador (Tracker): también llamado Metric Man, se
encarga de observar sin molestar, debe conservar datos
históricos.
• 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 planificación, entregas cortas,
diseños simples, refactorización. LA GRAN FOTO
XP
La gran foto
XP
• XP es una metodología muy utilizada pero como todo
tiene también sus puntos débiles. Entre ellos que pocos son
los que utilizan la metodología completa.
• A continuación se muestran y se explican las prácticas que
componen a la Programación Extrema.
• XP no es sólo tirar líneas de código fuente
XP
XP
• Las metodologías ágiles se caracterizan por fomentar
valores como:
• Comunicación
• Simplicidad
• Retroalimentación
• Coraje
Artefactos en XP
• Historias del Usuario
• Tareas de Ingeniería
• Pruebas de Aceptación
• Pruebas Unitarias y de Integración
• Plan de la Entrega
• Código
Historia de Usuario
Historia de Usuario
Número: 1 Nombre: Enviar artículo
Usuario: Autor
Modificación de Historia Número: Iteración Asignada: 2
Prioridad en Negocio: Alta
(Alta / Media / Baja)
Puntos Estimados:
Riesgo en Desarrollo:
(Alto / Medio / Bajo)
Puntos Reales:
Descripción:
Se introducen los datos del artículo (título, fichero adjunto, resumen, tópicos) y de los autores
(nombre, e-mail, afiliación). Uno de los autores debe indicarse como autor de contacto. El sistema
confirma la correcta recepción del artículo enviando un e-mail al autor de contacto con un userid y
password para que el autor pueda posteriormente acceder al artículo.
Observaciones:
Spikes
Clima de Trabajo
• Espacio abierto
• Mesas centrales
• Cubículos en el espacio exterior
Clima de Trabajo
• Reunión diaria: “Stand-up Meeting”
– Todo el equipo
– Problemas
– Soluciones
• De pie en un círculo
– Evitar discusiones largas
– Sin conversaciones separadas
Scrum
M.C. Juan Carlos Olivares Rojas
Zitácuaro, Michoacán, Octubre 2009
Scrum
• Es otra metodología ágil que entre sus principales
características están:
• Desarrollo de software por medio de iteraciones (Sprints).
• Indicado para proyectos con un rápido cambio de
requerimientos.
• Gran protagonismo de reuniones a lo largo del proyecto.
Scrum
• Los actores que intervienen en esta metodología son:
• Propietarios del producto
• Usuarios del poducto
• Scrum master
• Equipo de scrum.
Scrum
Scrum
• Los sprints son la base del desarrollo en scrum, consisten
en una serie de actividades previamente definidas en un
lapso de 30 días.
• El product backlog es la lista de las tareas a realizar
durante todo el proyecto. No es una lista fija. Se prioriza
las tareas según los requisitos de los usuarios o del
propietario de la aplicación.
Scrum
Ejemplo de Product Backlog
Scrum
• Sprint planning meeting: reunión que se realiza antes de
cada Sprint.
• Se hace conjuntamente con el Propietario del producto el
Scrum Master y el equipo Scrum.
• Enfocar la reunión hacia los requisitos más prioritarios.
Scrum
• Revisión del sprint: se realiza al final de cada Sprint.
• Se deben reunir el propietario de la aplicación los usuarios
así como el Scrum Master y su equipo , además también
es recomendable que acudan ingenieros de otros proyectos
para dar su punto de vista.
Scrum
• Product owner:
• Definir la funcionalidad del producto
• Decidir las fechas de liberación y el contenido (release)
• Aceptar o rechazar el producto
• Responsable del ROI
Scrum
• ¿Quiénes son products owner?
• Analista
• Tester
• Usuario final
• Cliente
• Product Manager
Scrum
• Un rol de suma importancia en esta metodología es el
escuchar.
• Muchos problemas de desarrollo se pueden solucionar
fácilmente si se escucha a los clientes, usuarios finales y
equipos de desarrollo.
Lean
M.C. Juan Carlos Olivares Rojas
Zitácuaro, Michoacán, Octubre 2009
Lean
• En una era donde ser esbelto es lo in
, ¿podemos poner a dieta
nuestros procesos de desarrollo
de software?
• No existe una definición formal
de metodologías esbeltas
simplemente se usan los
principios del pensamiento ágil.
Cada autor varía los principios
manejados. A continuación se
muestran algunos principios
Principios
• Eliminar el desperdicio
• Construir con calidad
• Crear conocimiento
• Postergar compromiso
• Entregas rápidas
• Repetar a las personas
• Optimizar el todo
Eliminar el desperdicio
• Tiempo entre pedido y entrega
• ¿Qué es desperdicio?
– Lo que no agrega valor
– Retraso en la entrega
• ¿Qué es valor?
• Ejemplos
– Stock: Requerimientos, Diseño, Bugs, …
– Funcionalidad no usada
• Mito: Especificación temprana reduce el desperdicio
Construir con calidad
• Inspección para prevenir o para detectar defectos
• Listas de bug: desperdicio
• Pruebas automatizadas antes que el código
– De aceptación
– Unitarias
• Mito: trabajo del tester es encontrar defectos
Hacerlo bien la primera vez
• Cuidado…
– El código cambia
– Mucho código es desperdicio
– Menos código, menos oportunidad de defectos
• Solución
– KISS
– Refactoring
Crear conocimiento
• No es posible
– Conocer las necesidades al inicio
– Diseñar sin implementar
• Desarrollo de producto como aprendizaje y mejora
– Del producto / negocio
– Del proceso
– Difundir el conocimiento!
• Mito: las predicciones crean predictibilidad
Postergar compromiso
• Tomar decisiones irreversibles
• Buscar soluciones reversibles
• Mito: Planificación es compromiso
Entregas rápidas
 Alta calidad
 Bajo costo
 Menos cambios
 Habilita a pruebas de concepto y mayor conocimiento del
cliente
 Mito: Apuro causa desperdicio
Respetar a las personas
• Líderes emprendedores
• Expertos técnicos
• Control basado en objetivos
• Mito: existe la mejor manera de hacerlo
Optimizar el todo
• Ejemplos:
– El cliente quiere algo para ayer
– Testing está sobrecargado
• Las cadenas de valor que cruzan entre empresas pueden ser
costosas
• Mito: optimizar por descomposición
Agenda
• Introducción (planteamiento del problema)
• Metodologías Ágiles (solución)
• Ejemplos de Metodologías (XP, Scrum y Lean)
•Conclusiones
Conclusiones
• Las metodologías ágiles no son nada nuevo bajo el sol.
• Se tienen que “tropicalizar” las metodologías para su buen
funcionamiento.
• Existe una fuerte discusión en la academia sobre si
enfocarse a las metodologías ágiles o no (al final de
cuentas se debe entender el proceso).
Conclusiones
• El proceso de desarrollo de software es un proceso
sociotecnológico.
• Para poder aprender la metodología se necesita vivirla (se
necesitan “horas de vuelo”).
• Las metodologías ágiles son muy buenas cuando se
domina el proceso en general.
Conclusiones
• Si el usuario final y/o clientes no colaboran es sumamente
difícil aplicar la metodología.
• Se debe aplicar métodos á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 sólo cambia la forma.
• No importa que metodología se utilice solo hay que
llevarlo a la práctica como toda una verdadera disciplina.
• La agilidad no cuesta. Lo único constante es el cambio.
Preguntas
• Mail: jcolivar@itmorelia.edu.mx
• MSN: juancarlosolivares@hotmail.com
• Web: http://antares.itmorelia.edu.mx/~jcolivar/
Referencias
• Roger S. Pressman, Ingeniería de software un enfoque
práctico.Ed. McGraw Hill.
•  
• Piattini M.G. y F.O, Calidad en el desarrollo y
mantenimiento del software. Ed. RAMA.
•  
• Hernández Ballesteros, J. F. Y Minguet Melían J. La
calidad del software y su medida, Ed. CERASA. 
Referencias
• Gabardini, J. (2009) Scrum - Product Owner y
Planificación. Facultad de Ingeniería – UBA,
Argentina
• Cohn, Mike (2009) www.mountaingoatsoftware.com
•
Puede eliminar este (o cualquier
diapositiva), pero debe dar crédito
de la fuente en algún lugar de su
presentación. Utilizar el logotipo y el
nombre de la empresa (como en la
parte inferior izquierda, por ejemplo)
o incluir una diapositiva en algún
lugar diciendo que parte (o todo) de
su presentación son de esta fuente.
Gracias.

Weitere ähnliche Inhalte

Was ist angesagt?

Metodologías Agiles - Breve Introducción
Metodologías Agiles - Breve IntroducciónMetodologías Agiles - Breve Introducción
Metodologías Agiles - Breve IntroducciónSamuel A. Jiménez R.
 
Programación Extrema (Extream Programming XP)
Programación Extrema (Extream Programming XP)Programación Extrema (Extream Programming XP)
Programación Extrema (Extream Programming XP)Cesar Acosta
 
Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming
Seminario MetodologíAs áGiles Y Xp, Tema 3   Extreme ProgrammingSeminario MetodologíAs áGiles Y Xp, Tema 3   Extreme Programming
Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programmingguest82ea27
 
Introducción a la Programación Extrema (XP)
Introducción a la Programación Extrema (XP)Introducción a la Programación Extrema (XP)
Introducción a la Programación Extrema (XP)Israel Antezana Rojas
 
Metodologías ágiles, Scrum, Kanban y eXtreme Programming
Metodologías ágiles, Scrum, Kanban y eXtreme ProgrammingMetodologías ágiles, Scrum, Kanban y eXtreme Programming
Metodologías ágiles, Scrum, Kanban y eXtreme ProgrammingEmergya
 
Desarrollo ágil de aplicaciones
Desarrollo ágil de aplicacionesDesarrollo ágil de aplicaciones
Desarrollo ágil de aplicacionesMario Solarte
 
Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming
Seminario MetodologíAs áGiles Y Xp, Tema 3   Extreme ProgrammingSeminario MetodologíAs áGiles Y Xp, Tema 3   Extreme Programming
Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programmingguest123148
 
Metodologia xp
Metodologia xpMetodologia xp
Metodologia xpCrisCobol
 

Was ist angesagt? (20)

Programación Extrema - XP
Programación Extrema - XPProgramación Extrema - XP
Programación Extrema - XP
 
Valores y prácticas XP
Valores y prácticas XPValores y prácticas XP
Valores y prácticas XP
 
Metodologías Agiles - Breve Introducción
Metodologías Agiles - Breve IntroducciónMetodologías Agiles - Breve Introducción
Metodologías Agiles - Breve Introducción
 
Programacion extrema_WR
Programacion extrema_WRProgramacion extrema_WR
Programacion extrema_WR
 
Manual01
Manual01Manual01
Manual01
 
Metodologías ágiles
Metodologías ágilesMetodologías ágiles
Metodologías ágiles
 
introducción a uml
introducción a umlintroducción a uml
introducción a uml
 
Programación Extrema (Extream Programming XP)
Programación Extrema (Extream Programming XP)Programación Extrema (Extream Programming XP)
Programación Extrema (Extream Programming XP)
 
Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming
Seminario MetodologíAs áGiles Y Xp, Tema 3   Extreme ProgrammingSeminario MetodologíAs áGiles Y Xp, Tema 3   Extreme Programming
Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming
 
Introducción a la Programación Extrema (XP)
Introducción a la Programación Extrema (XP)Introducción a la Programación Extrema (XP)
Introducción a la Programación Extrema (XP)
 
Metodologías ágiles, Scrum, Kanban y eXtreme Programming
Metodologías ágiles, Scrum, Kanban y eXtreme ProgrammingMetodologías ágiles, Scrum, Kanban y eXtreme Programming
Metodologías ágiles, Scrum, Kanban y eXtreme Programming
 
Scrum
ScrumScrum
Scrum
 
Metodos agiles
Metodos agilesMetodos agiles
Metodos agiles
 
Desarrollo ágil de aplicaciones
Desarrollo ágil de aplicacionesDesarrollo ágil de aplicaciones
Desarrollo ágil de aplicaciones
 
Diapositivas xp
Diapositivas xpDiapositivas xp
Diapositivas xp
 
Xp
XpXp
Xp
 
Manual 02
Manual 02Manual 02
Manual 02
 
Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming
Seminario MetodologíAs áGiles Y Xp, Tema 3   Extreme ProgrammingSeminario MetodologíAs áGiles Y Xp, Tema 3   Extreme Programming
Seminario MetodologíAs áGiles Y Xp, Tema 3 Extreme Programming
 
Programacion Extrema
Programacion ExtremaProgramacion Extrema
Programacion Extrema
 
Metodologia xp
Metodologia xpMetodologia xp
Metodologia xp
 

Andere mochten auch

Una introducción a Scrum - Por Jorge Abad @jorge_abad
Una introducción a Scrum - Por Jorge Abad @jorge_abadUna introducción a Scrum - Por Jorge Abad @jorge_abad
Una introducción a Scrum - Por Jorge Abad @jorge_abadJorge Hernán Abad Londoño
 
Modeliza de variables_climaticas2
Modeliza de variables_climaticas2Modeliza de variables_climaticas2
Modeliza de variables_climaticas2Lucas83
 
Symfony2 admingenerator
Symfony2 admingeneratorSymfony2 admingenerator
Symfony2 admingeneratorsymfony_bcn
 
Herramientas publicación gis web poroceso y análisis
Herramientas publicación gis web   poroceso y análisisHerramientas publicación gis web   poroceso y análisis
Herramientas publicación gis web poroceso y análisisUrban Data Analytics
 
Eppur si muove - SIG Libre Girona
Eppur si muove - SIG Libre GironaEppur si muove - SIG Libre Girona
Eppur si muove - SIG Libre GironaJordi Graells
 
Geografía como plataforma: API REST vs OGC y Geodatabases - Conferencia Esri ...
Geografía como plataforma: API REST vs OGC y Geodatabases - Conferencia Esri ...Geografía como plataforma: API REST vs OGC y Geodatabases - Conferencia Esri ...
Geografía como plataforma: API REST vs OGC y Geodatabases - Conferencia Esri ...Esri
 
Paty carbajal presentacion
Paty carbajal presentacionPaty carbajal presentacion
Paty carbajal presentacionpatty_bperdomo21
 
Clase 1 introducción a symfony 2
Clase 1   introducción a symfony 2Clase 1   introducción a symfony 2
Clase 1 introducción a symfony 2hydras_cs
 
Mi primer programa en Symfony2
Mi primer programa en Symfony2Mi primer programa en Symfony2
Mi primer programa en Symfony2César Hernández
 
Monografia Metodologia Agil XP
Monografia Metodologia Agil XPMonografia Metodologia Agil XP
Monografia Metodologia Agil XPJorw Yengle
 
Redis–symfony–barcelona–31 05-2012
Redis–symfony–barcelona–31 05-2012Redis–symfony–barcelona–31 05-2012
Redis–symfony–barcelona–31 05-2012symfony_bcn
 
Twig avanzado (sf2Vigo)
Twig avanzado (sf2Vigo)Twig avanzado (sf2Vigo)
Twig avanzado (sf2Vigo)Javier Eguiluz
 
Metaprogramación Compositiva en JavaScript
Metaprogramación Compositiva en JavaScriptMetaprogramación Compositiva en JavaScript
Metaprogramación Compositiva en JavaScriptJavier Vélez Reyes
 
Symfony2 Formacion y primeros pasos
Symfony2  Formacion y primeros pasosSymfony2  Formacion y primeros pasos
Symfony2 Formacion y primeros pasosSoni BM
 
Introduccion Sig
Introduccion SigIntroduccion Sig
Introduccion SigC G
 
Programación Extrema
Programación ExtremaProgramación Extrema
Programación Extremaurumisama
 

Andere mochten auch (20)

Una introducción a Scrum - Por Jorge Abad @jorge_abad
Una introducción a Scrum - Por Jorge Abad @jorge_abadUna introducción a Scrum - Por Jorge Abad @jorge_abad
Una introducción a Scrum - Por Jorge Abad @jorge_abad
 
Modeliza de variables_climaticas2
Modeliza de variables_climaticas2Modeliza de variables_climaticas2
Modeliza de variables_climaticas2
 
Symfony2 admingenerator
Symfony2 admingeneratorSymfony2 admingenerator
Symfony2 admingenerator
 
Herramientas publicación gis web poroceso y análisis
Herramientas publicación gis web   poroceso y análisisHerramientas publicación gis web   poroceso y análisis
Herramientas publicación gis web poroceso y análisis
 
Eppur si muove - SIG Libre Girona
Eppur si muove - SIG Libre GironaEppur si muove - SIG Libre Girona
Eppur si muove - SIG Libre Girona
 
Geografía como plataforma: API REST vs OGC y Geodatabases - Conferencia Esri ...
Geografía como plataforma: API REST vs OGC y Geodatabases - Conferencia Esri ...Geografía como plataforma: API REST vs OGC y Geodatabases - Conferencia Esri ...
Geografía como plataforma: API REST vs OGC y Geodatabases - Conferencia Esri ...
 
Paty carbajal presentacion
Paty carbajal presentacionPaty carbajal presentacion
Paty carbajal presentacion
 
Clase 1 introducción a symfony 2
Clase 1   introducción a symfony 2Clase 1   introducción a symfony 2
Clase 1 introducción a symfony 2
 
Mi primer programa en Symfony2
Mi primer programa en Symfony2Mi primer programa en Symfony2
Mi primer programa en Symfony2
 
Monografia Metodologia Agil XP
Monografia Metodologia Agil XPMonografia Metodologia Agil XP
Monografia Metodologia Agil XP
 
Redis–symfony–barcelona–31 05-2012
Redis–symfony–barcelona–31 05-2012Redis–symfony–barcelona–31 05-2012
Redis–symfony–barcelona–31 05-2012
 
Twig avanzado (sf2Vigo)
Twig avanzado (sf2Vigo)Twig avanzado (sf2Vigo)
Twig avanzado (sf2Vigo)
 
Web components
Web componentsWeb components
Web components
 
Metodologia rad XP
Metodologia rad XPMetodologia rad XP
Metodologia rad XP
 
Metodologia xp
Metodologia xpMetodologia xp
Metodologia xp
 
Aplicaciones Machine Learning GIS
Aplicaciones Machine Learning GISAplicaciones Machine Learning GIS
Aplicaciones Machine Learning GIS
 
Metaprogramación Compositiva en JavaScript
Metaprogramación Compositiva en JavaScriptMetaprogramación Compositiva en JavaScript
Metaprogramación Compositiva en JavaScript
 
Symfony2 Formacion y primeros pasos
Symfony2  Formacion y primeros pasosSymfony2  Formacion y primeros pasos
Symfony2 Formacion y primeros pasos
 
Introduccion Sig
Introduccion SigIntroduccion Sig
Introduccion Sig
 
Programación Extrema
Programación ExtremaProgramación Extrema
Programación Extrema
 

Ähnlich wie Softagile

Metodologiasagilesdegestionydesarrollodeproyectosdeti
MetodologiasagilesdegestionydesarrollodeproyectosdetiMetodologiasagilesdegestionydesarrollodeproyectosdeti
MetodologiasagilesdegestionydesarrollodeproyectosdetiClaudio Garrido
 
METODOLOGIAS AGILES
METODOLOGIAS AGILESMETODOLOGIAS AGILES
METODOLOGIAS AGILESPilar Pardo
 
Gestión de proyectos informáticos
Gestión de proyectos informáticosGestión de proyectos informáticos
Gestión de proyectos informáticosbastian becerra
 
Fundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrollo
Fundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrolloFundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrollo
Fundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrolloJosé Antonio Sandoval Acosta
 
Extremeprograming
ExtremeprogramingExtremeprograming
Extremeprogramingestudiante
 
Metodologia xp cortesserranoeliud
Metodologia xp cortesserranoeliudMetodologia xp cortesserranoeliud
Metodologia xp cortesserranoeliudEliud Cortes
 
Metodologias agiles Programacion Xtrema
Metodologias agiles Programacion Xtrema Metodologias agiles Programacion Xtrema
Metodologias agiles Programacion Xtrema Lis Pater
 
Programación extrema xp
Programación extrema xpProgramación extrema xp
Programación extrema xpJose Luis Dorao
 
presentacion metodogia agil xp extremisp
presentacion metodogia agil xp extremisppresentacion metodogia agil xp extremisp
presentacion metodogia agil xp extremispjoseperez792566
 
Gestión de proyectos informáticos
Gestión de proyectos informáticos Gestión de proyectos informáticos
Gestión de proyectos informáticos bastian becerra
 

Ähnlich wie Softagile (20)

Metodologiasagilesdegestionydesarrollodeproyectosdeti
MetodologiasagilesdegestionydesarrollodeproyectosdetiMetodologiasagilesdegestionydesarrollodeproyectosdeti
Metodologiasagilesdegestionydesarrollodeproyectosdeti
 
Metodologías de Desarrollo de Software
Metodologías de Desarrollo de SoftwareMetodologías de Desarrollo de Software
Metodologías de Desarrollo de Software
 
METODOLOGIAS AGILES
METODOLOGIAS AGILESMETODOLOGIAS AGILES
METODOLOGIAS AGILES
 
Gestión de proyectos informáticos
Gestión de proyectos informáticosGestión de proyectos informáticos
Gestión de proyectos informáticos
 
Fundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrollo
Fundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrolloFundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrollo
Fundamentos de ingenieria de Sosftware - Unidad 2 metodologias de desarrollo
 
Sesión 03-métodos-ágiles-del-desarrollo-de-software
Sesión 03-métodos-ágiles-del-desarrollo-de-softwareSesión 03-métodos-ágiles-del-desarrollo-de-software
Sesión 03-métodos-ágiles-del-desarrollo-de-software
 
Extremeprograming
ExtremeprogramingExtremeprograming
Extremeprograming
 
Metodologia xp cortesserranoeliud
Metodologia xp cortesserranoeliudMetodologia xp cortesserranoeliud
Metodologia xp cortesserranoeliud
 
Programacion Extrema (XP).pptx
Programacion Extrema (XP).pptxProgramacion Extrema (XP).pptx
Programacion Extrema (XP).pptx
 
Programación extrema (xp)
Programación extrema (xp)Programación extrema (xp)
Programación extrema (xp)
 
Metodologias agiles Programacion Xtrema
Metodologias agiles Programacion Xtrema Metodologias agiles Programacion Xtrema
Metodologias agiles Programacion Xtrema
 
METODOLOGÍAS ÁGILES EN TI
METODOLOGÍAS ÁGILES EN TIMETODOLOGÍAS ÁGILES EN TI
METODOLOGÍAS ÁGILES EN TI
 
METODOLOGÍAS ÁGILES
METODOLOGÍAS ÁGILESMETODOLOGÍAS ÁGILES
METODOLOGÍAS ÁGILES
 
Programación extrema xp
Programación extrema xpProgramación extrema xp
Programación extrema xp
 
Buenas Practicas en el Desarrollo de Software
Buenas Practicas en el Desarrollo de SoftwareBuenas Practicas en el Desarrollo de Software
Buenas Practicas en el Desarrollo de Software
 
Equipo de trabajo
Equipo de trabajoEquipo de trabajo
Equipo de trabajo
 
presentacion metodogia agil xp extremisp
presentacion metodogia agil xp extremisppresentacion metodogia agil xp extremisp
presentacion metodogia agil xp extremisp
 
Gestión de proyectos informáticos
Gestión de proyectos informáticos Gestión de proyectos informáticos
Gestión de proyectos informáticos
 
Métodos agiles
Métodos agilesMétodos agiles
Métodos agiles
 
Desarrollo y diseño de software
Desarrollo y diseño de softwareDesarrollo y diseño de software
Desarrollo y diseño de software
 

Mehr von Juan Carlos Olivares Rojas

Analítica de Datos usando Single Board Computers
Analítica de Datos usando Single Board ComputersAnalítica de Datos usando Single Board Computers
Analítica de Datos usando Single Board ComputersJuan Carlos Olivares Rojas
 
Analitica de Datos en Dispositivos de Internet de las Cosas
Analitica de Datos en Dispositivos de Internet de las CosasAnalitica de Datos en Dispositivos de Internet de las Cosas
Analitica de Datos en Dispositivos de Internet de las CosasJuan Carlos Olivares Rojas
 
A Comparative Assessment of Cryptography Algorithms for Data Analytic Applica...
A Comparative Assessment of Cryptography Algorithms for Data Analytic Applica...A Comparative Assessment of Cryptography Algorithms for Data Analytic Applica...
A Comparative Assessment of Cryptography Algorithms for Data Analytic Applica...Juan Carlos Olivares Rojas
 
Propuesta de Flexibilidad Curricular en el Tecnológico Nacional de México
Propuesta de Flexibilidad Curricular en el Tecnológico Nacional de MéxicoPropuesta de Flexibilidad Curricular en el Tecnológico Nacional de México
Propuesta de Flexibilidad Curricular en el Tecnológico Nacional de MéxicoJuan Carlos Olivares Rojas
 
Analítica de Datos en Simulador de Redes para Sistemas de Medición Inteligente
Analítica de Datos en Simulador de Redes para Sistemas de Medición InteligenteAnalítica de Datos en Simulador de Redes para Sistemas de Medición Inteligente
Analítica de Datos en Simulador de Redes para Sistemas de Medición InteligenteJuan Carlos Olivares Rojas
 
Propuesta de Mercado Eléctrico Minorista Transactivo en México
Propuesta de Mercado Eléctrico Minorista Transactivo en MéxicoPropuesta de Mercado Eléctrico Minorista Transactivo en México
Propuesta de Mercado Eléctrico Minorista Transactivo en MéxicoJuan Carlos Olivares Rojas
 
Cyber Security on Transactions in Smart Metering Systems usign Blockchain
Cyber Security on Transactions in Smart Metering Systems usign BlockchainCyber Security on Transactions in Smart Metering Systems usign Blockchain
Cyber Security on Transactions in Smart Metering Systems usign BlockchainJuan Carlos Olivares Rojas
 
A Survey on Smart Metering Systems using Blockchain for E-mobility
A Survey on Smart Metering Systems using Blockchain for E-mobilityA Survey on Smart Metering Systems using Blockchain for E-mobility
A Survey on Smart Metering Systems using Blockchain for E-mobilityJuan Carlos Olivares Rojas
 
Detección de Movimiento usando Medidores Inteligentes
Detección de Movimiento usando Medidores Inteligentes Detección de Movimiento usando Medidores Inteligentes
Detección de Movimiento usando Medidores Inteligentes Juan Carlos Olivares Rojas
 
A Survey on Smart Metering Systems using Human-Computer Interaction
A Survey on Smart Metering Systems using Human-Computer InteractionA Survey on Smart Metering Systems using Human-Computer Interaction
A Survey on Smart Metering Systems using Human-Computer InteractionJuan Carlos Olivares Rojas
 
Machine Learnign Model for the Detection of Electricity Energy Fraud Using an...
Machine Learnign Model for the Detection of Electricity Energy Fraud Using an...Machine Learnign Model for the Detection of Electricity Energy Fraud Using an...
Machine Learnign Model for the Detection of Electricity Energy Fraud Using an...Juan Carlos Olivares Rojas
 
Forecasting Electricity Consumption Using Weather Data in Edge-Fog-Cloud Data...
Forecasting Electricity Consumption Using Weather Data in Edge-Fog-Cloud Data...Forecasting Electricity Consumption Using Weather Data in Edge-Fog-Cloud Data...
Forecasting Electricity Consumption Using Weather Data in Edge-Fog-Cloud Data...Juan Carlos Olivares Rojas
 
Aplicacion de Tecnicas de UX en el Desarrollo de un Portal de un Sistema de M...
Aplicacion de Tecnicas de UX en el Desarrollo de un Portal de un Sistema de M...Aplicacion de Tecnicas de UX en el Desarrollo de un Portal de un Sistema de M...
Aplicacion de Tecnicas de UX en el Desarrollo de un Portal de un Sistema de M...Juan Carlos Olivares Rojas
 
Internet de las Cosas en Redes Eléctricas Inteligentes
Internet de las Cosas en Redes Eléctricas InteligentesInternet de las Cosas en Redes Eléctricas Inteligentes
Internet de las Cosas en Redes Eléctricas InteligentesJuan Carlos Olivares Rojas
 
Optimización de la Eficiencia Energética en los Hogares utilizando una Arquit...
Optimización de la Eficiencia Energética en los Hogares utilizando una Arquit...Optimización de la Eficiencia Energética en los Hogares utilizando una Arquit...
Optimización de la Eficiencia Energética en los Hogares utilizando una Arquit...Juan Carlos Olivares Rojas
 
Ciber Seguridad en Redes Eléctricas Inteligentes
Ciber Seguridad en Redes Eléctricas InteligentesCiber Seguridad en Redes Eléctricas Inteligentes
Ciber Seguridad en Redes Eléctricas InteligentesJuan Carlos Olivares Rojas
 
Estudio de Vulnerabilidad de Protocolos y Redes de Comunicación para Medidore...
Estudio de Vulnerabilidad de Protocolos y Redes de Comunicación para Medidore...Estudio de Vulnerabilidad de Protocolos y Redes de Comunicación para Medidore...
Estudio de Vulnerabilidad de Protocolos y Redes de Comunicación para Medidore...Juan Carlos Olivares Rojas
 

Mehr von Juan Carlos Olivares Rojas (20)

Ieee itmsb20
Ieee itmsb20Ieee itmsb20
Ieee itmsb20
 
Ropec20neural stick
Ropec20neural stickRopec20neural stick
Ropec20neural stick
 
Analítica de Datos usando Single Board Computers
Analítica de Datos usando Single Board ComputersAnalítica de Datos usando Single Board Computers
Analítica de Datos usando Single Board Computers
 
Analitica de Datos en Dispositivos de Internet de las Cosas
Analitica de Datos en Dispositivos de Internet de las CosasAnalitica de Datos en Dispositivos de Internet de las Cosas
Analitica de Datos en Dispositivos de Internet de las Cosas
 
A Comparative Assessment of Cryptography Algorithms for Data Analytic Applica...
A Comparative Assessment of Cryptography Algorithms for Data Analytic Applica...A Comparative Assessment of Cryptography Algorithms for Data Analytic Applica...
A Comparative Assessment of Cryptography Algorithms for Data Analytic Applica...
 
Propuesta de Flexibilidad Curricular en el Tecnológico Nacional de México
Propuesta de Flexibilidad Curricular en el Tecnológico Nacional de MéxicoPropuesta de Flexibilidad Curricular en el Tecnológico Nacional de México
Propuesta de Flexibilidad Curricular en el Tecnológico Nacional de México
 
Analítica de Datos en Simulador de Redes para Sistemas de Medición Inteligente
Analítica de Datos en Simulador de Redes para Sistemas de Medición InteligenteAnalítica de Datos en Simulador de Redes para Sistemas de Medición Inteligente
Analítica de Datos en Simulador de Redes para Sistemas de Medición Inteligente
 
Propuesta de Mercado Eléctrico Minorista Transactivo en México
Propuesta de Mercado Eléctrico Minorista Transactivo en MéxicoPropuesta de Mercado Eléctrico Minorista Transactivo en México
Propuesta de Mercado Eléctrico Minorista Transactivo en México
 
Cyber Security on Transactions in Smart Metering Systems usign Blockchain
Cyber Security on Transactions in Smart Metering Systems usign BlockchainCyber Security on Transactions in Smart Metering Systems usign Blockchain
Cyber Security on Transactions in Smart Metering Systems usign Blockchain
 
A Survey on Smart Metering Systems using Blockchain for E-mobility
A Survey on Smart Metering Systems using Blockchain for E-mobilityA Survey on Smart Metering Systems using Blockchain for E-mobility
A Survey on Smart Metering Systems using Blockchain for E-mobility
 
Detección de Movimiento usando Medidores Inteligentes
Detección de Movimiento usando Medidores Inteligentes Detección de Movimiento usando Medidores Inteligentes
Detección de Movimiento usando Medidores Inteligentes
 
A Survey on Smart Metering Systems using Human-Computer Interaction
A Survey on Smart Metering Systems using Human-Computer InteractionA Survey on Smart Metering Systems using Human-Computer Interaction
A Survey on Smart Metering Systems using Human-Computer Interaction
 
Machine Learnign Model for the Detection of Electricity Energy Fraud Using an...
Machine Learnign Model for the Detection of Electricity Energy Fraud Using an...Machine Learnign Model for the Detection of Electricity Energy Fraud Using an...
Machine Learnign Model for the Detection of Electricity Energy Fraud Using an...
 
Forecasting Electricity Consumption Using Weather Data in Edge-Fog-Cloud Data...
Forecasting Electricity Consumption Using Weather Data in Edge-Fog-Cloud Data...Forecasting Electricity Consumption Using Weather Data in Edge-Fog-Cloud Data...
Forecasting Electricity Consumption Using Weather Data in Edge-Fog-Cloud Data...
 
Aplicacion de Tecnicas de UX en el Desarrollo de un Portal de un Sistema de M...
Aplicacion de Tecnicas de UX en el Desarrollo de un Portal de un Sistema de M...Aplicacion de Tecnicas de UX en el Desarrollo de un Portal de un Sistema de M...
Aplicacion de Tecnicas de UX en el Desarrollo de un Portal de un Sistema de M...
 
Internet de las Cosas en Redes Eléctricas Inteligentes
Internet de las Cosas en Redes Eléctricas InteligentesInternet de las Cosas en Redes Eléctricas Inteligentes
Internet de las Cosas en Redes Eléctricas Inteligentes
 
Estrategias didacticas
Estrategias didacticasEstrategias didacticas
Estrategias didacticas
 
Optimización de la Eficiencia Energética en los Hogares utilizando una Arquit...
Optimización de la Eficiencia Energética en los Hogares utilizando una Arquit...Optimización de la Eficiencia Energética en los Hogares utilizando una Arquit...
Optimización de la Eficiencia Energética en los Hogares utilizando una Arquit...
 
Ciber Seguridad en Redes Eléctricas Inteligentes
Ciber Seguridad en Redes Eléctricas InteligentesCiber Seguridad en Redes Eléctricas Inteligentes
Ciber Seguridad en Redes Eléctricas Inteligentes
 
Estudio de Vulnerabilidad de Protocolos y Redes de Comunicación para Medidore...
Estudio de Vulnerabilidad de Protocolos y Redes de Comunicación para Medidore...Estudio de Vulnerabilidad de Protocolos y Redes de Comunicación para Medidore...
Estudio de Vulnerabilidad de Protocolos y Redes de Comunicación para Medidore...
 

Softagile

  • 1. Desarrollo de Software Ágil M.C. Juan Carlos Olivares Rojas Zitácuaro, Michoacán, Octubre 2009
  • 2. Agenda •Introducción (planteamiento del problema) • Metodologías Ágiles (solución) • Ejemplos de Metodologías (XP, Scrum y Lean) • Conclusiones
  • 3. Software Hoy en Día •Mito: los programadores de ahora ya no programan como los de antes. •Herramientas más fáciles y productivas •El software es cada día más complejo
  • 4. Caracterización del SoftwareCaracterización del Software • El software es un producto intangible el cual se logra a través de un proceso creativo ya que programar es un arte, el cual no puede ser sistematizado del todo. • ¿Por qué es importante el Desarrollo de Proyectos de forma Metodológica? • El software es cada vez más complejo y costoso que se compara con construir un edificio.
  • 5. Motivación “Casas de Perros” Proyectos Escolares SIN ARQUITECTURA Poco $ Casas Proyecto de PyMES ARQUITECTURAS SIMPLES Rentable $ Edificios Grandes Corporativos ARQUITECTURAS COMPLEJAS Mucho $$$$ Tipos de Desarrollo de Software
  • 6. MotivaciónMotivación • Las metodologías de desarrollo de software son un conjunto de “mejores prácticas” que si no se llevan a la práctica no sirven de nada. • El factor humano es el recurso más importante de cualquier proyecto de software. • ¿Cómo se desarrolla un proyecto de Software?
  • 11. Motivación • ¿En qué consiste el proceso de desarrollo de software? • Si pensamos que el software de desarrollo de software es sólo programar (que evidentemente es la parte más representativa) estamos muy equivocados. • El desarrollo de software consiste en múltiples actividades.
  • 13. 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 Ingeniería del Software es lograr la calidad del software. • La calidad tiene muchas perspectivas.
  • 14. Proceso de Desarrollo de Sw • Pressman clasifica las actividades del desarrollo de software en las siguientes: • Comunicación – Inicio del Proyecto – Recopilación de Requerimientos • Planeación – Estimación – Itinerario – Seguimiento
  • 15. Proceso de Desarrollo de Sw • Modelado – Análisis – Diseño • Construcción – Código – Prueba • Despliegue: – Entrega – Soporte – Retroalimentación
  • 16. Proceso de Desarrollo de Sw • La etapa de comunicación es sumamente importante:
  • 17. Metodologías de Software • Las metodologías de software ayudan a lograr la calidad del software. ¿Puedo lograr la calidad del software sin usar metodologías? • Ejemplo: necesito hacer un nudo de corbato y no tenga idea de cómo hacerlo… • ¿Cómo podría resolver el problema?
  • 18. Metodologías de Software • La solución más fácil es realizar outsorcing (que lo hagan otros). • Sino se puede, se deberá realizar en base a tres formas básicas de solución de problemas: • Conocimiento • Experiencia • Sentido Común
  • 19. Metodologías de Software • La forma más fácil es a través de una metodología para realizar nudos de corbatas como la planteada en http://www.nudo-de-corbata.com/ • Lo primero que se tiene que saber es si debe ser un tipo especial de corbata o no. Los tipos pueden ir desde nudo de corbata simple, doble, windsor, medio windsor, nudo pequeño.
  • 21. Tipos de Nudos Windsor Medio Windsor
  • 22. Uso de Metodologías • Las metodologías nos orientan hacia mejores resultados.
  • 23. Problema • Las metodologías son un conjunto de mejores prácticas que si no se llevan a la práctica o se hacen a medias es muy difícil que se tenga calidad. • Aun siguiendo las recomendaciones, una metodología no garantiza que un producto tenga calidad.
  • 24. Agenda • Introducción (planteamiento del problema) •Metodologías Ágiles (solución) • Ejemplos de Metodologías (XP, Scrum y Lean) • Conclusiones
  • 25. Metodologías Ágiles • Siguen desarrollando las mismas actividades del proceso de desarrollo de software, sólo difieren en la forma de hacerlo. • Las Metodologías Ágiles se fundamentan en 4 principios básicos (manifiesto ágil): • Al individuo y las interacciones en el equipo de desarrollo más que a las actividades y las herramientas.
  • 26. Metodologías Ágiles • Desarrollar software que funciona más que conseguir una buena documentación  Minimalismo respecto del modelado y la documentación del sistema. • La colaboración con el cliente más que la negociación de un contrato. • Responder a los cambios más que seguir estrictamente una planificación.
  • 27. Beneficios • Es más adecuada para los cambios reduciendo los errores (costos) y logrando la satisfacción de los clientes Costo del cambio tiempo Tradicional Suposición MAs
  • 28. Método Tradicional vs Ágil Metodología Ágil Metodología Tradicional Pocos Artefactos. El modelado es prescindible, modelos desechables. Más Artefactos. El modelado es esencial, mantenimiento de modelos Pocos Roles, más genéricos y flexibles Más Roles, más específicos No existe un contrato tradicional, debe ser bastante flexible Existe un contrato prefijado Cliente es parte del equipo de desarrollo (además in-situ) El cliente interactúa con el equipo de desarrollo mediante reuniones Orientada a proyectos pequeños. Corta duración (o entregas frecuentes), equipos pequeños (< 10 integrantes) y trabajando en el mismo sitio Aplicables a proyectos de cualquier tamaño, pero suelen ser especialmente efectivas/usadas en proyectos grandes y con equipos posiblemente dispersos La arquitectura se va definiendo y mejorando a lo largo del proyecto Se promueve que la arquitectura se defina tempranamente en el proyecto Énfasis en los aspectos humanos: el individuo y el trabajo en equipo Énfasis en la definición del proceso: roles, actividades y artefactos Se esperan cambios durante el proyecto Se espera que no ocurran cambios de gran impacto durante el proyecto
  • 29. Metodologías Ágiles • Crystal Methodologies, Alistarir Cockburn, www.crystalmethodologies.org • SCRUM, Ken Schwaber & Jeff Sutherland, www.controlchaos.com • DSDM (Dynamic Systems Development Method), www.dsdm.org
  • 30. Metodologías Á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
  • 31. Agenda • Introducción (planteamiento del problema) • Metodologías Ágiles (solución) • Ejemplos de Metodologías (XP, Scrum y Lean) • Conclusiones
  • 32. Metodologías Ágiles • Las dos principales metodologías ágiles son scrum y XP (eXtreme Programming). • Cualquiera que fuera el método á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.
  • 33. XP M.C. Juan Carlos Olivares Rojas Zitácuaro, Michoacán, Octubre 2009
  • 34. XP • Es una metodología idónea para equipos de desarrollo pequeños menores a 10 personas. • Se caracteriza por ser una metodología “ligera” (excluye todo lo que no sirve dejando la esencia o “sabor” de las cosas). • Se centra en la implementación (codificación) por lo que es ideal para entornos dinámicos.
  • 35. XP • La comunicación se da de manera muy informal, generalmente verbal. • Las metodologías ágiles se preocupan por inculcar valores y XP no es la excepción, sus principales valores son: comunicación, simplicidad, retroalimentación y coraje.
  • 36. XP • Los actores que participan en el desarrollo de software son: • Programador: responsable de decisiones técnicas y de construir el sistema. No hay distinción entre analistas, diseñadores 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.
  • 37. XP • Entrenador (Coach): es el líder del equipo. Tiende a estar en un segundo plano a medida que el equipo madura • Rastreador (Tracker): también llamado Metric Man, se encarga de observar sin molestar, debe conservar datos históricos. • Probador (Tester): Ayuda al cliente con las pruebas funcionales.
  • 38. 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
  • 39. XP Desarrollar Programming Presentar la entrega Releasing } • Puntos clave: el juego de planificación, entregas cortas, diseños simples, refactorización. LA GRAN FOTO
  • 41. XP • XP es una metodología muy utilizada pero como todo tiene también sus puntos débiles. Entre ellos que pocos son los que utilizan la metodología completa. • A continuación se muestran y se explican las prácticas que componen a la Programación Extrema. • XP no es sólo tirar líneas de código fuente
  • 42. XP
  • 43. XP • Las metodologías ágiles se caracterizan por fomentar valores como: • Comunicación • Simplicidad • Retroalimentación • Coraje
  • 44. Artefactos en XP • Historias del Usuario • Tareas de Ingeniería • Pruebas de Aceptación • Pruebas Unitarias y de Integración • Plan de la Entrega • Código
  • 45. Historia de Usuario Historia de Usuario Número: 1 Nombre: Enviar artículo Usuario: Autor Modificación de Historia Número: Iteración Asignada: 2 Prioridad en Negocio: Alta (Alta / Media / Baja) Puntos Estimados: Riesgo en Desarrollo: (Alto / Medio / Bajo) Puntos Reales: Descripción: Se introducen los datos del artículo (título, fichero adjunto, resumen, tópicos) y de los autores (nombre, e-mail, afiliación). Uno de los autores debe indicarse como autor de contacto. El sistema confirma la correcta recepción del artículo enviando un e-mail al autor de contacto con un userid y password para que el autor pueda posteriormente acceder al artículo. Observaciones:
  • 47. Clima de Trabajo • Espacio abierto • Mesas centrales • Cubículos en el espacio exterior
  • 48. Clima de Trabajo • Reunión diaria: “Stand-up Meeting” – Todo el equipo – Problemas – Soluciones • De pie en un círculo – Evitar discusiones largas – Sin conversaciones separadas
  • 49. Scrum M.C. Juan Carlos Olivares Rojas Zitácuaro, Michoacán, Octubre 2009
  • 50. Scrum • Es otra metodología ágil que entre sus principales características están: • Desarrollo de software por medio de iteraciones (Sprints). • Indicado para proyectos con un rápido cambio de requerimientos. • Gran protagonismo de reuniones a lo largo del proyecto.
  • 51. Scrum • Los actores que intervienen en esta metodología son: • Propietarios del producto • Usuarios del poducto • Scrum master • Equipo de scrum.
  • 52. Scrum
  • 53. Scrum • Los sprints son la base del desarrollo en scrum, consisten en una serie de actividades previamente definidas en un lapso de 30 días. • El product backlog es la lista de las tareas a realizar durante todo el proyecto. No es una lista fija. Se prioriza las tareas según los requisitos de los usuarios o del propietario de la aplicación.
  • 55. Scrum • Sprint planning meeting: reunión que se realiza antes de cada Sprint. • Se hace conjuntamente con el Propietario del producto el Scrum Master y el equipo Scrum. • Enfocar la reunión hacia los requisitos más prioritarios.
  • 56. Scrum • Revisión del sprint: se realiza al final de cada Sprint. • Se deben reunir el propietario de la aplicación los usuarios así como el Scrum Master y su equipo , además también es recomendable que acudan ingenieros de otros proyectos para dar su punto de vista.
  • 57. Scrum • Product owner: • Definir la funcionalidad del producto • Decidir las fechas de liberación y el contenido (release) • Aceptar o rechazar el producto • Responsable del ROI
  • 58. Scrum • ¿Quiénes son products owner? • Analista • Tester • Usuario final • Cliente • Product Manager
  • 59. Scrum • Un rol de suma importancia en esta metodología es el escuchar. • Muchos problemas de desarrollo se pueden solucionar fácilmente si se escucha a los clientes, usuarios finales y equipos de desarrollo.
  • 60. Lean M.C. Juan Carlos Olivares Rojas Zitácuaro, Michoacán, Octubre 2009
  • 61. Lean • En una era donde ser esbelto es lo in , ¿podemos poner a dieta nuestros procesos de desarrollo de software? • No existe una definición formal de metodologías esbeltas simplemente se usan los principios del pensamiento ágil. Cada autor varía los principios manejados. A continuación se muestran algunos principios
  • 62. Principios • Eliminar el desperdicio • Construir con calidad • Crear conocimiento • Postergar compromiso • Entregas rápidas • Repetar a las personas • Optimizar el todo
  • 63. Eliminar el desperdicio • Tiempo entre pedido y entrega • ¿Qué es desperdicio? – Lo que no agrega valor – Retraso en la entrega • ¿Qué es valor? • Ejemplos – Stock: Requerimientos, Diseño, Bugs, … – Funcionalidad no usada • Mito: Especificación temprana reduce el desperdicio
  • 64. Construir con calidad • Inspección para prevenir o para detectar defectos • Listas de bug: desperdicio • Pruebas automatizadas antes que el código – De aceptación – Unitarias • Mito: trabajo del tester es encontrar defectos
  • 65. Hacerlo bien la primera vez • Cuidado… – El código cambia – Mucho código es desperdicio – Menos código, menos oportunidad de defectos • Solución – KISS – Refactoring
  • 66. Crear conocimiento • No es posible – Conocer las necesidades al inicio – Diseñar sin implementar • Desarrollo de producto como aprendizaje y mejora – Del producto / negocio – Del proceso – Difundir el conocimiento! • Mito: las predicciones crean predictibilidad
  • 67. Postergar compromiso • Tomar decisiones irreversibles • Buscar soluciones reversibles • Mito: Planificación es compromiso
  • 68. Entregas rápidas  Alta calidad  Bajo costo  Menos cambios  Habilita a pruebas de concepto y mayor conocimiento del cliente  Mito: Apuro causa desperdicio
  • 69. Respetar a las personas • Líderes emprendedores • Expertos técnicos • Control basado en objetivos • Mito: existe la mejor manera de hacerlo
  • 70. Optimizar el todo • Ejemplos: – El cliente quiere algo para ayer – Testing está sobrecargado • Las cadenas de valor que cruzan entre empresas pueden ser costosas • Mito: optimizar por descomposición
  • 71. Agenda • Introducción (planteamiento del problema) • Metodologías Ágiles (solución) • Ejemplos de Metodologías (XP, Scrum y Lean) •Conclusiones
  • 72. Conclusiones • Las metodologías ágiles no son nada nuevo bajo el sol. • Se tienen que “tropicalizar” las metodologías para su buen funcionamiento. • Existe una fuerte discusión en la academia sobre si enfocarse a las metodologías ágiles o no (al final de cuentas se debe entender el proceso).
  • 73. Conclusiones • El proceso de desarrollo de software es un proceso sociotecnológico. • Para poder aprender la metodología se necesita vivirla (se necesitan “horas de vuelo”). • Las metodologías ágiles son muy buenas cuando se domina el proceso en general.
  • 74. Conclusiones • Si el usuario final y/o clientes no colaboran es sumamente difícil aplicar la metodología. • Se debe aplicar métodos á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.
  • 75. Conclusiones • Se siguen realizando el mismo proceso de desarrollo de software sólo cambia la forma. • No importa que metodología se utilice solo hay que llevarlo a la práctica como toda una verdadera disciplina. • La agilidad no cuesta. Lo único constante es el cambio.
  • 76. Preguntas • Mail: jcolivar@itmorelia.edu.mx • MSN: juancarlosolivares@hotmail.com • Web: http://antares.itmorelia.edu.mx/~jcolivar/
  • 77. Referencias • Roger S. Pressman, Ingeniería de software un enfoque práctico.Ed. McGraw Hill. •   • Piattini M.G. y F.O, Calidad en el desarrollo y mantenimiento del software. Ed. RAMA. •   • Hernández Ballesteros, J. F. Y Minguet Melían J. La calidad del software y su medida, Ed. CERASA. 
  • 78. Referencias • Gabardini, J. (2009) Scrum - Product Owner y Planificación. Facultad de Ingeniería – UBA, Argentina • Cohn, Mike (2009) www.mountaingoatsoftware.com • Puede eliminar este (o cualquier diapositiva), pero debe dar crédito de la fuente en algún lugar de su presentación. Utilizar el logotipo y el nombre de la empresa (como en la parte inferior izquierda, por ejemplo) o incluir una diapositiva en algún lugar diciendo que parte (o todo) de su presentación son de esta fuente. Gracias.

Hinweis der Redaktion

  1. Extraída desde la presentación “Software Architecture and UML” de Grady Booch (Rational Software).
  2. En general son las mismas actividades sólo cambian el orden y los diferentes enfoques.
  3. He/She is the driver, car driver analogy