SlideShare a Scribd company logo
1 of 107
Download to read offline
menttes
 www.menttes.com




                   Extreme Programming



                   Roberto Allende
                   rallende@menttes.com
¿ QUE ES XP ?


           
metodología de
    desarrollo ágil


            
PROMESAS


        
promesas...

●   Orientada a la satisfacción del
    cliente

    Mejora el proceso de
    desarrollo en cuatro frentes:

     comunicación, simplicidad,
         feedback, coraje
                   
promesas...

●   Orientada a la satisfacción del
    cliente

●   Mejora el proceso de
    desarrollo en:

    comunicación, simplicidad y
    elegancia, feedback, coraje
                   
promesas...
●   código que sea fácil de
    entender y extender

    red de tests automáticos

    productividad, menores
    costos

    simple y sencillo
                    
promesas...
●   código que sea fácil de
    entender y extender

●   conjunto de tests automáticos

    productividad, menores
    costos

    simple y sencillo
                    
promesas...
●   código que sea fácil de
    entender y extender

●   conjunto de tests automáticos

●   productividad, menores
    costos

    simple y sencillo
                    
promesas...
●   código que sea fácil de
    entender y extender

●   conjunto de tests automáticos

●   productividad, menores
    costos

●   simple y sencillo
                   
CUANDO USAR XP


           
cuando...


●   cambios de requerimienos
    son constantes

    proyectos con un gran
    margen de riesgo

                   
cuando...


●   cambios de requerimienos
    son constantes

●   proyectos con un gran
    margen de riesgo

                  
cuando...



desarrollo basado en
          REUSABILIDAD
                           de componentes




                        
cuando...

aunque...

        Extreme programming development
     methodology has a real influence in Zope 3
    development process. Automated testing is a
             major strength of Zope 3.

            http://wiki.zope.org/zope3/ZopeGuideIntroduction




                              
REQUERIMIENTOS


           
requerimientos...

●   equipos de 2 a 12                   programadores
    (aunque se reportaron éxitos en equipos de 30...)



    Involucrar al cliente en el
     equipo de desarrollo

    Crear y correr tests de forma
    automática
                                  
requerimientos...

●   equipos de 2 a 12                   programadores
    (aunque se reportaron éxitos en equipos de 30...)


●   involucrar al cliente en el
    equipo de desarrollo

    Crear y correr tests de forma
    automática
                                  
requerimientos...

●   equipos de 2 a 12                   programadores
    (aunque se reportaron éxitos en equipos de 30...)


●   involucrar al cliente en el
    equipo de desarrollo

●   crear y correr tests de forma
    automática
                                  
ELEMENTOS
    PRINCIPALES


          
     
elementos principales...

●   user stories

●   tarjetas crc
●   escribir casos test antes de codificar

●   refactoring

                        
planificación: user stories

similares a casos de uso pero:

●   creadas para hacer estimaciones de tiempo

    son breves y concretas, no son extensos
     documentos

    son escritas por el cliente en vocabulario del
     cliente sin tecnicismos



                             
planificación: user stories

similares a casos de uso pero:

●   creadas para hacer estimaciones de tiempo

●   son breves y concretas, no son extensos
    documentos

    son escritas por el cliente en vocabulario del
     cliente sin tecnicismos



                             
planificación: user stories

similares a casos de uso pero:

●   creadas para hacer estimaciones de tiempo

●   son breves y concretas, no son extensos
    documentos

●   son escritas por el cliente en vocabulario del
    cliente y sin tecnicismos



                            
planificación: user stories

similares a casos de uso pero:

●   expresadas en términos de las necesidades del
    cliente

    duración sugerida: 1 a 3 semanas

    definen los tests de aceptación



                            
planificación: user stories

similares a casos de uso pero:

●   expresadas en términos de las necesidades del
    cliente

●   duración sugerida: 1 a 3 semanas

    definen los tests de aceptación



                            
planificación: user stories

similares a casos de uso pero:

●   expresadas en términos de las necesidades del
    cliente

●   duración sugerida: 1 a 3 semanas

●   definen los tests de aceptación



                           
     
     
planificación: plan de release


●   ~80 user stories (± 20)

●   Definido en una reunión en la que participan
    técnicos y la gente de negocios.
    Conjuntamente acordan el plan de entregas.




                               
planificación: plan de release

1. El equipo de desarrollo estima la duración de
   cada user story.

    El cliente decide que user story posee mayor
      importancia o prioridad

    Se imprimen las user stories, se colocan las
     tarjetas en una mesa y se agrupan formando
     diferentes entregas



                            
planificación: plan de release

1. El equipo de desarrollo estima la duración de
   cada user story.

2. El cliente decide que user story posee mayor
   importancia o prioridad

    Se imprimen las user stories, se colocan las
     tarjetas en una mesa y se agrupan formando
     diferentes entregas



                           
planificación: plan de release

1. El equipo de desarrollo estima la duración de
   cada user story.

2. El cliente decide que user story posee mayor
   importancia o prioridad

3. Se imprimen las user stories, se colocan las
   tarjetas en una mesa y se agrupan formando
   la próxima entrega



                         
planificación: plan de release

●   Las metas de cada entrega son lograr un
    sistema usable, testeable, y entregado antes
    de tiempo

    Los planes se pueden fijar por tiempo o
     alcance

    Se emplea la velocidad de proyecto para
    determinar tiempo o alcance



                            
planificación: plan de release

●   Las metas de cada entrega son lograr un
    sistema usable, testeable, y entregado antes
    de tiempo

●   Los planes se pueden fijar por tiempo o
    alcance

    Se emplea la velocidad de proyecto para
    determinar tiempo o alcance



                           
planificación: plan de release

●   Las metas de cada entrega son lograr un
    sistema usable, testeable, y entregado antes
    de tiempo

●   Los planes se pueden fijar por tiempo o
    alcance

●   Se emplea la velocidad de proyecto para
    determinar tiempo o alcance



                           
planificación: plan de release

●   Los lanzamientos son planeados antes de cada
    iteración y no con anticipación

    Los plazos deben ser los fijados en la reunión
     de release. No se deben subestimar plazos.

    En la reunión, el cliente, gestores de proyecto
     y desarolladores tienen que negociar hasta
     ponerse de acuerdo en el plan de release.



                            
planificación: plan de release

●   Los lanzamientos son planeados antes de cada
    iteración y no con anticipación

●   Los plazos deben ser los fijados en la reunión
    de release. No se deben subestimar plazos.

    En la reunión, el cliente, gestores de proyecto
     y desarolladores tienen que negociar hasta
     ponerse de acuerdo en el plan de release.



                            
planificación: plan de release

●   Los lanzamientos son planeados antes de cada
    iteración y no con anticipación

●   Los plazos deben ser los fijados en la reunión
    de release. No se deben subestimar plazos.

●   En la reunión, el cliente, gestores de proyecto
    y desarolladores tienen que negociar hasta
    ponerse de acuerdo en el plan de release.



                            
planificación: plan de release

●   Las user stories de un plan son traducidas a
    tareas que deben ser implementadas

    Las user stories también son traducidas en
     test de aceptación

    Si el proyecto va muy rápido de acuerdo al
    plan, se reunen todos en una nueva reunión de
    release y se define un nuevo plan


                           
planificación: plan de release

●   Las user stories de un plan son traducidas a
    tareas que deben ser implementadas

●   Las user stories también son traducidas en
    test de aceptación

    Si el proyecto va muy rápido de acuerdo al
    plan, se reunen todos en una nueva reunión de
    release y se define un nuevo plan


                           
planificación: plan de release

●   Las user stories de un plan son traducidas a
    tareas que deben ser implementadas

●   Las user stories también son traducidas en
    test de aceptación

●   Si el proyecto va muy rápido de acuerdo al
    plan, se reunen todos en una nueva reunión de
    release y se define un nuevo plan


                           
regla:


        HACER RELEASES
    FRECUENTES Y PEQUEÑOS
         (release earlier, release often)




                         
planificación: velocidad de proyecto




●   Mide cuanto del trabajo está hecho p/release

    Total de user stories terminadas p/release

    Total de tareas terminadas p/release




                            
planificación: velocidad de proyecto




●   Mide cuanto del trabajo está hecho p/release

●   Total de user stories terminadas p/release

    Total de tareas terminadas p/release




                           
planificación: velocidad de proyecto




●   Mide cuanto del trabajo está hecho p/release

●   Total de user stories terminadas p/release

●   Total de tareas terminadas p/release




                           
DESARROLLO
     ITERATIVO


          
     
     
desarollo iterativo

●   Dividir agenda de proyecto en iteraciones
    de 1 a 3 semanas de duración
    (~12 iteraciones p/proyecto)

    Mantener duración de iteraciones constantes
    a lo largo de todo el proyecto

    No agendes tareas de programación con
    anticipación

    SE PROHIBE IMPLEMENTAR ALGO QUE NO ES
    REQUERIDO EN LA ITERACION ACTUAL

                                    
desarollo iterativo

●   Dividir agenda de proyecto en iteraciones
    de 1 a 3 semanas de duración
    (~12 iteraciones p/proyecto)

●   Mantener duración de iteraciones constantes
    a lo largo de todo el proyecto

    No agendes tareas de programación con
    anticipación

    SE PROHIBE IMPLEMENTAR ALGO QUE NO ES
    REQUERIDO EN LA ITERACION ACTUAL

                                    
desarollo iterativo

●   Dividir agenda de proyecto en iteraciones
    de 1 a 3 semanas de duración
    (~12 iteraciones p/proyecto)

●   Mantener duración de iteraciones constantes
    a lo largo de todo el proyecto

●   No agendes tareas de programación con
    anticipación

 SE PROHIBE IMPLEMENTAR ALGO QUE NO ES
 REQUERIDO
EN LA ITERACION ACTUAL
                                    
desarollo iterativo

●   Dividir agenda de proyecto en iteraciones
    de 1 a 3 semanas de duración
    (~12 iteraciones p/proyecto)

●   Mantener duración de iteraciones constantes
    a lo largo de todo el proyecto

●   No agendes tareas de programación con
    anticipación

●   SE PROHIBE IMPLEMENTAR CUALQUIER COSA
    QUE NO SEA REQUERIDA EN LA ITERACION
    ACTUAL
                                    
desarollo iterativo, regla




     NUNCA AGREGAR UNA
    FUNCIONALIDAD ANTES
          DE TIEMPO


                     
desarollo iterativo, regla



    SIMPLICIDAD ES LA
         CLAVE
              mantener las cosas
         tan sencillas como sea posible,
    refactoring soluciona las consecuencias


                        
desarollo iterativo




●   Tomar en serio los plazos de cada iteración y
    si es necesario renegociar fechas de entrega.

●   Concentrar esfuerzos en completar tareas mas
    importantes para el cliente




                           
planificación de iteraciones



Está formado por:

●   User stories seleccionadas por el cliente
    ordenadas en importancia

●   Tests de aceptación que fallaron, se
    convierten en tareas




                            
planificación de iteraciones




●   Cada tarea debería tener una duración
    aproximada de entre 1 a 3 días

●   El desarrollador que estima, es el que
    implementa la tarea




                            
SOLUCIONES
     DE PUNTOS
      (SPIKE SOLUTIONS)




               
soluciones de puntos



       para encontrar soluciones
     técnicas y predecir duración,
          aislar el problema y
              solucionarlo
    fuera del contexto del sistema


                   
TARJETAS
      CRC


        
tarjetas crc



●   CRC Clases, responsabilidad, colaboración

●   Son tarjetas que permiten diseñar el
    sistema como si fuera un equipo

●   Se sugiere que muchas personas trabajen en
    el diseño



                           
ESCRIBIR CASO
    DE TEST PRIMERO


            
     
caso de test primero
import random
import unittest

class TestSequenceFunctions(unittest.TestCase):

  def setUp(self):
    self.seq = range(10)

  def testshuffle(self):
    # make sure the shuffled sequence does not lose any elements
    random.shuffle(self.seq)
    self.seq.sort()
    self.assertEqual(self.seq, range(10))

  def testchoice(self):
    element = random.choice(self.seq)
    self.assert_(element in self.seq)

  def testsample(self):
    self.assertRaises(ValueError, random.sample, self.seq, 20)
    for element in random.sample(self.seq, 5):
       self.assert_(element in self.seq)

if __name__ == '__main__':
    unittest.main()
                                                   
caso de test primero
●   Facilita la codificación -> fuerza al
    programador que tiene que hacer antes de
    escribir código

    Define el alcance de cada funcionalidad,
    sabiendo con precisión cuando se ha
    terminado y se posee un test para asegurarlo

    Solo se va a implementar lo que satisface el
    test

    Otros programadores pueden aprender sobre
    el código viendo los casos de test
                           
caso de test primero
●   Facilita la codificación -> fuerza al
    programador que tiene que hacer antes de
    escribir código

●   Define el alcance de cada funcionalidad,
    sabiendo con precisión cuando se ha
    terminado y se posee un test para asegurarlo

    Solo se va a implementar lo que satisface el
    test

    Otros programadores pueden aprender sobre
    el código viendo los casos de test
                           
caso de test primero
●   Facilita la codificación -> fuerza al
    programador que tiene que hacer antes de
    escribir código

●   Define el alcance de cada funcionalidad,
    sabiendo con precisión cuando se ha
    terminado y se posee un test para asegurarlo

●    Solo se va a implementar lo que satisface el
     test

    Otros programadores pueden aprender sobre
    el código viendo los casos de test
                            
caso de test primero
●   Facilita la codificación -> fuerza al
    programador que tiene que hacer antes de
    escribir código

●   Define el alcance de cada funcionalidad,
    sabiendo con precisión cuando se ha
    terminado y se posee un test para asegurarlo

●   Solo se va a implementar lo que satisface el
    test

●   Otros programadores pueden aprender sobre
    el código viendo los casos de test
                           
caso de test primero



●   El tiempo que se ahorra al escribir un caso de
    test se paga muchas veces mas durante el
    desarollo de un sistema sin casos de test.

    Arreglar pequeños problemas varias veces al
    día toma mucho menos tiempo que arreglar
    grandes problemas momentos previos a la
    entrega.



                            
caso de test primero



●   El tiempo que se ahorra al escribir un caso de
    test se paga muchas veces mas durante el
    desarollo de un sistema sin casos de test.

●   Arreglar pequeños problemas varias veces al
    día toma mucho menos tiempo que arreglar
    grandes problemas momentos previos a la
    entrega.



                            
caso de test primero




    NO SE PUEDE ENTREGAR
     CODIGO SIN POSEER Y
    APROBAR LOS CASOS DE
            TEST

                    
     
     
CUANDO SE
    ENCUENTRA UN
         BUG

          
cuando se encuentra un bug



●   Se escribe el caso de test que lo detecta

●   Se agrega a la proxima iteración

●   Se soluciona el bug

●   Se prueba la solución corriendo el test




                            
TEST DE
    ACEPTACION

         
test de aceptación


●   Creado en el momento en que se definen las
    user stories

●   Diferentes escenarios de una user stories y
    sus resultados asociados

●   User story no está completa hasta que paso
    el test de aceptación



                           
REFACTOREO
     SIN PIEDAD


          
refactoreo sin piedad



●   quitar redundancias, eliminar funcionalidades
    sin usar, actualizar diseños obsoletos de modo
    que el código sea fácil de entender, modificar
    y extender

●   refactorización ahorra tiempo e incrementa
    calidad



                           
PAIR
    PROGRAMMING


          
pair programming



●   Evita dependencia de conocimiento y
    cuellos de botella

●   Induce el entrenamiento cruzado

●   El equipo es mas flexible si todos conocen el
    las partes del sistema




                            
STAND UP
    MEETINGS
      (reuniones de pie)




               
reuniones de pie




    el equipo se reune al inicio de
        todos los dias, y de pie
           forman un circulo



                    
reuniones de pie



    es mas eficiente tener breves
    reuniones donde todos estan
      obligados a atender, que
       muchas reuniones por
              separado


                    
reuniones de pie




 centradas en las necesidades
de uno o mas desarrolladores y
  quienes pueden contribuir



                    
     
GENERALIDADES


           
CLIENTE SIEMPRE
    DISPONIBLE COMO
      MIEMBRO DEL
         EQUIPO

            
SEGUIR
       ESTANDARES
    DE PROGRAMACION

            
INTEGRAR SEGUIDO

      REPOSITORIO
       COLECTIVO
       DE CODIGO
            
SVN
    INTEGRAR SEGUIDO

      REPOSITORIO
       COLECTIVO
       DE CODIGO
            
NO OVERTIME


          
OPTIMIZAR AL
      ULTIMO


           
CUANDO XP
    NO FUNCIONA

    ARREGLAR Y
    DOCUMENTAR
          
IMPLEMENTACIONES
        CASERAS


            
implementaciones

●   listas de correo, dev y proyecto c/cliente

    extreme managemente (producto plone)

    comunicación con el cliente (telefono)

    stand up meetings semanales (irc / voip)

    toda disponibilidad posible del equipo
     en una sala común vía irc
                          
implementaciones

●   listas de correo, dev y proyecto c/cliente

●   extreme managemente (producto plone)

    comunicación con el cliente (telefono)

    stand up meetings semanales (irc / voip)

    toda disponibilidad posible del equipo
     en una sala común vía irc
                          
implementaciones

●   listas de correo, dev y proyecto c/cliente

●   extreme managemente (producto plone)

●   comunicación con el cliente (telefono)

    stand up meetings semanales (irc / voip)

    toda disponibilidad posible del equipo
     en una sala común vía irc
                          
implementaciones

●   listas de correo, dev y proyecto c/cliente

●   extreme managemente (producto plone)

●   comunicación con el cliente (telefono)

●   stand up meetings semanales (irc / voip)

    toda disponibilidad posible del equipo
     en una sala común vía irc
                          
implementaciones

●   listas de correo, dev y proyecto c/cliente

●   extreme managemente (producto plone)

●   comunicación con el cliente (telefono)

●   stand up meetings semanales (irc / voip)

●   toda disponibilidad posible del equipo
    en una sala común vía irc
                          
     
     
     
ultima página


●   la gente es tu recurso mas preciado

●   como comenzar:
    www.extremeprogramming.org
    -> how to start

●   Extreme Programming Exaplined
    Kent Beck et.al.

                         
menttes
 www.menttes.com




                   Muchas Gracias

                   Roberto Allende
                   rallende@menttes.com

                   http://labs.menttes.com

More Related Content

What's hot

PLAN DE GESTION DE PROYECTOS
PLAN DE GESTION DE PROYECTOSPLAN DE GESTION DE PROYECTOS
PLAN DE GESTION DE PROYECTOSYOGISS Muñoz
 
11vo Coloquio WBS Erick Oliveros
11vo Coloquio WBS Erick Oliveros11vo Coloquio WBS Erick Oliveros
11vo Coloquio WBS Erick OliverosRafael Silva
 
Contratos Agiles Scrum Gathering Peru 2016
Contratos Agiles Scrum Gathering Peru 2016Contratos Agiles Scrum Gathering Peru 2016
Contratos Agiles Scrum Gathering Peru 2016Fabian Schwartz, MBA
 
Metodologias agiles de gestion de proyecto. ORT 14.05.2014
Metodologias agiles de gestion de proyecto. ORT 14.05.2014Metodologias agiles de gestion de proyecto. ORT 14.05.2014
Metodologias agiles de gestion de proyecto. ORT 14.05.2014Alejandro Gabay
 
Desarrollo de software para Operadores de Comercio Exterior - Iniciación
Desarrollo de software para Operadores de Comercio Exterior - IniciaciónDesarrollo de software para Operadores de Comercio Exterior - Iniciación
Desarrollo de software para Operadores de Comercio Exterior - IniciaciónDharma Consulting
 
Modelo de desarrollo de software
Modelo de desarrollo de softwareModelo de desarrollo de software
Modelo de desarrollo de softwareSaul mendoza valdez
 
Ingenieria trabajo3-131031205503-phpapp01
Ingenieria trabajo3-131031205503-phpapp01Ingenieria trabajo3-131031205503-phpapp01
Ingenieria trabajo3-131031205503-phpapp01David Tigua
 
Monitoreo del Desempeño de Proyectos
Monitoreo del Desempeño de ProyectosMonitoreo del Desempeño de Proyectos
Monitoreo del Desempeño de ProyectosYuliana Taveras
 
Cronograma, WBS, Diagrama de Red
Cronograma, WBS, Diagrama de RedCronograma, WBS, Diagrama de Red
Cronograma, WBS, Diagrama de RedGUIA PRACTICA PMP
 
Plantilla de acta de constitución del proyecto.doc
Plantilla de acta de constitución del proyecto.docPlantilla de acta de constitución del proyecto.doc
Plantilla de acta de constitución del proyecto.docUniversidad Peruana Unión
 
Taller de MS Project 2010 para la Gestión de Proyectos - Sesión 03
Taller de MS Project 2010 para la Gestión de Proyectos - Sesión 03Taller de MS Project 2010 para la Gestión de Proyectos - Sesión 03
Taller de MS Project 2010 para la Gestión de Proyectos - Sesión 03Dharma Consulting
 
Constitución del proyecto
Constitución del proyectoConstitución del proyecto
Constitución del proyectopierre R.
 
La gestion agil y de proyectos y sus paralelos con PMBok.Jornadas Cordoba Sep...
La gestion agil y de proyectos y sus paralelos con PMBok.Jornadas Cordoba Sep...La gestion agil y de proyectos y sus paralelos con PMBok.Jornadas Cordoba Sep...
La gestion agil y de proyectos y sus paralelos con PMBok.Jornadas Cordoba Sep...Alejandro Gabay
 
Caso de estudio PMI 2016
Caso de estudio PMI 2016Caso de estudio PMI 2016
Caso de estudio PMI 2016Erica Dari
 

What's hot (20)

PLAN DE GESTION DE PROYECTOS
PLAN DE GESTION DE PROYECTOSPLAN DE GESTION DE PROYECTOS
PLAN DE GESTION DE PROYECTOS
 
PROJECT CHARTER
PROJECT CHARTERPROJECT CHARTER
PROJECT CHARTER
 
15 declaracion del alcance PMI
15 declaracion del alcance PMI15 declaracion del alcance PMI
15 declaracion del alcance PMI
 
Curso de Dirección de Proyectos
Curso de Dirección de ProyectosCurso de Dirección de Proyectos
Curso de Dirección de Proyectos
 
11vo Coloquio WBS Erick Oliveros
11vo Coloquio WBS Erick Oliveros11vo Coloquio WBS Erick Oliveros
11vo Coloquio WBS Erick Oliveros
 
Contratos Agiles Scrum Gathering Peru 2016
Contratos Agiles Scrum Gathering Peru 2016Contratos Agiles Scrum Gathering Peru 2016
Contratos Agiles Scrum Gathering Peru 2016
 
cierre de proyecto
cierre de proyectocierre de proyecto
cierre de proyecto
 
Metodologias agiles de gestion de proyecto. ORT 14.05.2014
Metodologias agiles de gestion de proyecto. ORT 14.05.2014Metodologias agiles de gestion de proyecto. ORT 14.05.2014
Metodologias agiles de gestion de proyecto. ORT 14.05.2014
 
Desarrollo de software para Operadores de Comercio Exterior - Iniciación
Desarrollo de software para Operadores de Comercio Exterior - IniciaciónDesarrollo de software para Operadores de Comercio Exterior - Iniciación
Desarrollo de software para Operadores de Comercio Exterior - Iniciación
 
Modelo de desarrollo de software
Modelo de desarrollo de softwareModelo de desarrollo de software
Modelo de desarrollo de software
 
Acta formato
Acta formatoActa formato
Acta formato
 
Ingenieria trabajo3-131031205503-phpapp01
Ingenieria trabajo3-131031205503-phpapp01Ingenieria trabajo3-131031205503-phpapp01
Ingenieria trabajo3-131031205503-phpapp01
 
earned schedule v5
earned schedule v5earned schedule v5
earned schedule v5
 
Monitoreo del Desempeño de Proyectos
Monitoreo del Desempeño de ProyectosMonitoreo del Desempeño de Proyectos
Monitoreo del Desempeño de Proyectos
 
Cronograma, WBS, Diagrama de Red
Cronograma, WBS, Diagrama de RedCronograma, WBS, Diagrama de Red
Cronograma, WBS, Diagrama de Red
 
Plantilla de acta de constitución del proyecto.doc
Plantilla de acta de constitución del proyecto.docPlantilla de acta de constitución del proyecto.doc
Plantilla de acta de constitución del proyecto.doc
 
Taller de MS Project 2010 para la Gestión de Proyectos - Sesión 03
Taller de MS Project 2010 para la Gestión de Proyectos - Sesión 03Taller de MS Project 2010 para la Gestión de Proyectos - Sesión 03
Taller de MS Project 2010 para la Gestión de Proyectos - Sesión 03
 
Constitución del proyecto
Constitución del proyectoConstitución del proyecto
Constitución del proyecto
 
La gestion agil y de proyectos y sus paralelos con PMBok.Jornadas Cordoba Sep...
La gestion agil y de proyectos y sus paralelos con PMBok.Jornadas Cordoba Sep...La gestion agil y de proyectos y sus paralelos con PMBok.Jornadas Cordoba Sep...
La gestion agil y de proyectos y sus paralelos con PMBok.Jornadas Cordoba Sep...
 
Caso de estudio PMI 2016
Caso de estudio PMI 2016Caso de estudio PMI 2016
Caso de estudio PMI 2016
 

Viewers also liked

Scrum Extreme Programming para Programadores
Scrum Extreme Programming para ProgramadoresScrum Extreme Programming para Programadores
Scrum Extreme Programming para ProgramadoresErik Gur
 
PLANIFICACION TEMPORAL DE PROYECTOS
PLANIFICACION TEMPORAL DE PROYECTOSPLANIFICACION TEMPORAL DE PROYECTOS
PLANIFICACION TEMPORAL DE PROYECTOSUgoArman Do
 
Metodologia xp
Metodologia xpMetodologia xp
Metodologia xpCrisCobol
 
Usando Kanban en el Gobierno Escocés (Spanish talk at #LKSE15)
Usando Kanban en el Gobierno Escocés (Spanish talk at #LKSE15)Usando Kanban en el Gobierno Escocés (Spanish talk at #LKSE15)
Usando Kanban en el Gobierno Escocés (Spanish talk at #LKSE15)Jose Casal-Gimenez FBCS CITP
 
Enriched User Interfaces in Mobile Web 2.0
Enriched User Interfaces in Mobile Web 2.0Enriched User Interfaces in Mobile Web 2.0
Enriched User Interfaces in Mobile Web 2.0Pedro Ballesteros
 
Enriched User Interfaces in Mobile Web 2.0
Enriched User Interfaces in Mobile Web 2.0Enriched User Interfaces in Mobile Web 2.0
Enriched User Interfaces in Mobile Web 2.0Pedro Ballesteros
 
11 Slides de Droidcon NYC
11 Slides de Droidcon NYC11 Slides de Droidcon NYC
11 Slides de Droidcon NYCRoberto Allende
 
Fundamentos de DSDM Atern
Fundamentos de DSDM AternFundamentos de DSDM Atern
Fundamentos de DSDM AternAgile-Barcelona
 
Personal Kanban Chileagil
Personal Kanban ChileagilPersonal Kanban Chileagil
Personal Kanban ChileagilDavid Lay
 
Workshop básico de Retrospectivas Multinivel
Workshop básico de Retrospectivas MultinivelWorkshop básico de Retrospectivas Multinivel
Workshop básico de Retrospectivas MultinivelHiroshi Hiromoto
 
Arquitecto Agil: Experiencias y Lecciones Aprendidas
Arquitecto Agil: Experiencias y Lecciones AprendidasArquitecto Agil: Experiencias y Lecciones Aprendidas
Arquitecto Agil: Experiencias y Lecciones AprendidasJersson Dongo
 
Kanban y Scrum. 2do Agile Open Paraná
Kanban y Scrum. 2do Agile Open ParanáKanban y Scrum. 2do Agile Open Paraná
Kanban y Scrum. 2do Agile Open Paranágabrielpiccoli
 
Introducción a DSL (Lenguajes Específicos de Dominios) con Python
Introducción a DSL (Lenguajes Específicos de Dominios) con PythonIntroducción a DSL (Lenguajes Específicos de Dominios) con Python
Introducción a DSL (Lenguajes Específicos de Dominios) con PythonJuan Rodríguez
 

Viewers also liked (20)

TDD Course (Spanish)
TDD Course (Spanish)TDD Course (Spanish)
TDD Course (Spanish)
 
Scrum Extreme Programming para Programadores
Scrum Extreme Programming para ProgramadoresScrum Extreme Programming para Programadores
Scrum Extreme Programming para Programadores
 
Metodologías ágiles
Metodologías ágilesMetodologías ágiles
Metodologías ágiles
 
Programacion Extrema
Programacion ExtremaProgramacion Extrema
Programacion Extrema
 
Xp
XpXp
Xp
 
PLANIFICACION TEMPORAL DE PROYECTOS
PLANIFICACION TEMPORAL DE PROYECTOSPLANIFICACION TEMPORAL DE PROYECTOS
PLANIFICACION TEMPORAL DE PROYECTOS
 
Pomodoro
PomodoroPomodoro
Pomodoro
 
Diapositivas xp
Diapositivas xpDiapositivas xp
Diapositivas xp
 
Metodologia xp
Metodologia xpMetodologia xp
Metodologia xp
 
Usando Kanban en el Gobierno Escocés (Spanish talk at #LKSE15)
Usando Kanban en el Gobierno Escocés (Spanish talk at #LKSE15)Usando Kanban en el Gobierno Escocés (Spanish talk at #LKSE15)
Usando Kanban en el Gobierno Escocés (Spanish talk at #LKSE15)
 
Enriched User Interfaces in Mobile Web 2.0
Enriched User Interfaces in Mobile Web 2.0Enriched User Interfaces in Mobile Web 2.0
Enriched User Interfaces in Mobile Web 2.0
 
Enriched User Interfaces in Mobile Web 2.0
Enriched User Interfaces in Mobile Web 2.0Enriched User Interfaces in Mobile Web 2.0
Enriched User Interfaces in Mobile Web 2.0
 
11 Slides de Droidcon NYC
11 Slides de Droidcon NYC11 Slides de Droidcon NYC
11 Slides de Droidcon NYC
 
Fundamentos de DSDM Atern
Fundamentos de DSDM AternFundamentos de DSDM Atern
Fundamentos de DSDM Atern
 
Personal Kanban Chileagil
Personal Kanban ChileagilPersonal Kanban Chileagil
Personal Kanban Chileagil
 
Workshop básico de Retrospectivas Multinivel
Workshop básico de Retrospectivas MultinivelWorkshop básico de Retrospectivas Multinivel
Workshop básico de Retrospectivas Multinivel
 
Programación Extrema (XP)
Programación Extrema (XP)Programación Extrema (XP)
Programación Extrema (XP)
 
Arquitecto Agil: Experiencias y Lecciones Aprendidas
Arquitecto Agil: Experiencias y Lecciones AprendidasArquitecto Agil: Experiencias y Lecciones Aprendidas
Arquitecto Agil: Experiencias y Lecciones Aprendidas
 
Kanban y Scrum. 2do Agile Open Paraná
Kanban y Scrum. 2do Agile Open ParanáKanban y Scrum. 2do Agile Open Paraná
Kanban y Scrum. 2do Agile Open Paraná
 
Introducción a DSL (Lenguajes Específicos de Dominios) con Python
Introducción a DSL (Lenguajes Específicos de Dominios) con PythonIntroducción a DSL (Lenguajes Específicos de Dominios) con Python
Introducción a DSL (Lenguajes Específicos de Dominios) con Python
 

Similar to Extreme Programming

Metodologia del rup
Metodologia del rupMetodologia del rup
Metodologia del ruportizrichard
 
Métodos Ágiles de Programación
Métodos Ágiles de Programación Métodos Ágiles de Programación
Métodos Ágiles de Programación Sonia Sosa
 
Gep2009 Eq9 T13 Pre Hallows EjecucióN Del Proyecto
Gep2009 Eq9 T13 Pre Hallows EjecucióN Del ProyectoGep2009 Eq9 T13 Pre Hallows EjecucióN Del Proyecto
Gep2009 Eq9 T13 Pre Hallows EjecucióN Del ProyectoLia Nakid
 
Dynamics saturday madrid 2018 validacion desarrollosna-vybc - jose angel
Dynamics saturday madrid 2018   validacion desarrollosna-vybc - jose angelDynamics saturday madrid 2018   validacion desarrollosna-vybc - jose angel
Dynamics saturday madrid 2018 validacion desarrollosna-vybc - jose angelDemian Raschkovan
 
Real World Agile Roadshow 2013 - Planificación y Arquitectura Ágil
Real World Agile Roadshow 2013 - Planificación y Arquitectura ÁgilReal World Agile Roadshow 2013 - Planificación y Arquitectura Ágil
Real World Agile Roadshow 2013 - Planificación y Arquitectura ÁgilJose Luis Soria
 
SCRUMBAN aplicado a equipos de Soporte y Mantenimiento
SCRUMBAN aplicado a equipos de Soporte y MantenimientoSCRUMBAN aplicado a equipos de Soporte y Mantenimiento
SCRUMBAN aplicado a equipos de Soporte y MantenimientoJorge H
 
AMER S4 Implementación Flujo de Caja_Técnica_VC.pptx
AMER S4 Implementación Flujo de Caja_Técnica_VC.pptxAMER S4 Implementación Flujo de Caja_Técnica_VC.pptx
AMER S4 Implementación Flujo de Caja_Técnica_VC.pptxJulioCesarSagredoLil
 
Introducción al proceso unificado de desarrollo de software en Curso de Anali...
Introducción al proceso unificado de desarrollo de software en Curso de Anali...Introducción al proceso unificado de desarrollo de software en Curso de Anali...
Introducción al proceso unificado de desarrollo de software en Curso de Anali...Educagratis
 

Similar to Extreme Programming (20)

RUP.pdf
RUP.pdfRUP.pdf
RUP.pdf
 
Metodologia del rup
Metodologia del rupMetodologia del rup
Metodologia del rup
 
El pato-volador
El pato-voladorEl pato-volador
El pato-volador
 
Curso valor ganado
Curso valor ganadoCurso valor ganado
Curso valor ganado
 
Métodos Ágiles de Programación
Métodos Ágiles de Programación Métodos Ágiles de Programación
Métodos Ágiles de Programación
 
Gep2009 Eq9 T13 Pre Hallows EjecucióN Del Proyecto
Gep2009 Eq9 T13 Pre Hallows EjecucióN Del ProyectoGep2009 Eq9 T13 Pre Hallows EjecucióN Del Proyecto
Gep2009 Eq9 T13 Pre Hallows EjecucióN Del Proyecto
 
ASPgems 2018
ASPgems 2018 ASPgems 2018
ASPgems 2018
 
Rup
RupRup
Rup
 
Rup
RupRup
Rup
 
Dynamics saturday madrid 2018 validacion desarrollosna-vybc - jose angel
Dynamics saturday madrid 2018   validacion desarrollosna-vybc - jose angelDynamics saturday madrid 2018   validacion desarrollosna-vybc - jose angel
Dynamics saturday madrid 2018 validacion desarrollosna-vybc - jose angel
 
Real World Agile Roadshow 2013 - Planificación y Arquitectura Ágil
Real World Agile Roadshow 2013 - Planificación y Arquitectura ÁgilReal World Agile Roadshow 2013 - Planificación y Arquitectura Ágil
Real World Agile Roadshow 2013 - Planificación y Arquitectura Ágil
 
Modelos de desarrollo del software grupo5
Modelos de desarrollo del software grupo5Modelos de desarrollo del software grupo5
Modelos de desarrollo del software grupo5
 
Metodologia de desarrollo software
Metodologia  de desarrollo softwareMetodologia  de desarrollo software
Metodologia de desarrollo software
 
RUP
RUPRUP
RUP
 
Metodología Implantación Lean-implant ERP
Metodología Implantación Lean-implant ERPMetodología Implantación Lean-implant ERP
Metodología Implantación Lean-implant ERP
 
SCRUMBAN aplicado a equipos de Soporte y Mantenimiento
SCRUMBAN aplicado a equipos de Soporte y MantenimientoSCRUMBAN aplicado a equipos de Soporte y Mantenimiento
SCRUMBAN aplicado a equipos de Soporte y Mantenimiento
 
Scrum: la guía básica
Scrum: la guía básicaScrum: la guía básica
Scrum: la guía básica
 
AMER S4 Implementación Flujo de Caja_Técnica_VC.pptx
AMER S4 Implementación Flujo de Caja_Técnica_VC.pptxAMER S4 Implementación Flujo de Caja_Técnica_VC.pptx
AMER S4 Implementación Flujo de Caja_Técnica_VC.pptx
 
Introducción al proceso unificado de desarrollo de software en Curso de Anali...
Introducción al proceso unificado de desarrollo de software en Curso de Anali...Introducción al proceso unificado de desarrollo de software en Curso de Anali...
Introducción al proceso unificado de desarrollo de software en Curso de Anali...
 
Las SinCuenta Sombras de Scrum
Las SinCuenta Sombras de ScrumLas SinCuenta Sombras de Scrum
Las SinCuenta Sombras de Scrum
 

More from Roberto Allende

Fearless Coding with Test Driven Development
Fearless Coding with Test Driven DevelopmentFearless Coding with Test Driven Development
Fearless Coding with Test Driven DevelopmentRoberto Allende
 
Creencias y cultura popular para armar el equipo de un Startup
Creencias y cultura popular para armar el equipo de un StartupCreencias y cultura popular para armar el equipo de un Startup
Creencias y cultura popular para armar el equipo de un StartupRoberto Allende
 
Startup escalables y organicos
Startup escalables y organicosStartup escalables y organicos
Startup escalables y organicosRoberto Allende
 
Microservices y la era Post Industrial de la Web
Microservices y la era Post Industrial de la WebMicroservices y la era Post Industrial de la Web
Microservices y la era Post Industrial de la WebRoberto Allende
 
La idea, de la epifanía a la empresa escalable
La idea, de la epifanía a la empresa escalableLa idea, de la epifanía a la empresa escalable
La idea, de la epifanía a la empresa escalableRoberto Allende
 
Emprender en Argentina: 8 creencias y algunas experiencias
Emprender en Argentina: 8 creencias y algunas experienciasEmprender en Argentina: 8 creencias y algunas experiencias
Emprender en Argentina: 8 creencias y algunas experienciasRoberto Allende
 
Innovar: comunicar y hacer
Innovar: comunicar y hacerInnovar: comunicar y hacer
Innovar: comunicar y hacerRoberto Allende
 
Introducción a Leanstartup
Introducción a LeanstartupIntroducción a Leanstartup
Introducción a LeanstartupRoberto Allende
 
PloneGov: Cooperación, participación y Software Libre en Gobierno
PloneGov: Cooperación, participación y Software Libre en Gobierno PloneGov: Cooperación, participación y Software Libre en Gobierno
PloneGov: Cooperación, participación y Software Libre en Gobierno Roberto Allende
 
Menttes: exportando servicios basados en Software Libre
Menttes: exportando servicios basados en Software LibreMenttes: exportando servicios basados en Software Libre
Menttes: exportando servicios basados en Software LibreRoberto Allende
 
Introducción al desarrollo en Plone
Introducción al desarrollo en PloneIntroducción al desarrollo en Plone
Introducción al desarrollo en PloneRoberto Allende
 
Desarrollo de Productos con Archetypes y ArchGenXML
Desarrollo de Productos con Archetypes y ArchGenXMLDesarrollo de Productos con Archetypes y ArchGenXML
Desarrollo de Productos con Archetypes y ArchGenXMLRoberto Allende
 
Curso Zope Page Templates y Metal
Curso Zope Page Templates y MetalCurso Zope Page Templates y Metal
Curso Zope Page Templates y MetalRoberto Allende
 
zc.buildout para desarrolladores Plone
zc.buildout para desarrolladores Plonezc.buildout para desarrolladores Plone
zc.buildout para desarrolladores PloneRoberto Allende
 
AJAX a cuerda Lo básico sobre AJAX y su funcionamiento
AJAX a cuerda
Lo básico sobre AJAX y su funcionamientoAJAX a cuerda
Lo básico sobre AJAX y su funcionamiento
AJAX a cuerda Lo básico sobre AJAX y su funcionamientoRoberto Allende
 
Desarrollando aplicaciones web con Zope 3
Desarrollando aplicaciones web con Zope 3Desarrollando aplicaciones web con Zope 3
Desarrollando aplicaciones web con Zope 3Roberto Allende
 
PloneGov: un proyecto internacional de cooperación entre Gobiernos abierto a ...
PloneGov: un proyecto internacional de cooperación entre Gobiernos abierto a ...PloneGov: un proyecto internacional de cooperación entre Gobiernos abierto a ...
PloneGov: un proyecto internacional de cooperación entre Gobiernos abierto a ...Roberto Allende
 

More from Roberto Allende (20)

Fearless Coding with Test Driven Development
Fearless Coding with Test Driven DevelopmentFearless Coding with Test Driven Development
Fearless Coding with Test Driven Development
 
Creencias y cultura popular para armar el equipo de un Startup
Creencias y cultura popular para armar el equipo de un StartupCreencias y cultura popular para armar el equipo de un Startup
Creencias y cultura popular para armar el equipo de un Startup
 
Startup escalables y organicos
Startup escalables y organicosStartup escalables y organicos
Startup escalables y organicos
 
Microservices y la era Post Industrial de la Web
Microservices y la era Post Industrial de la WebMicroservices y la era Post Industrial de la Web
Microservices y la era Post Industrial de la Web
 
La idea, de la epifanía a la empresa escalable
La idea, de la epifanía a la empresa escalableLa idea, de la epifanía a la empresa escalable
La idea, de la epifanía a la empresa escalable
 
Emprender en Argentina: 8 creencias y algunas experiencias
Emprender en Argentina: 8 creencias y algunas experienciasEmprender en Argentina: 8 creencias y algunas experiencias
Emprender en Argentina: 8 creencias y algunas experiencias
 
Innovar: comunicar y hacer
Innovar: comunicar y hacerInnovar: comunicar y hacer
Innovar: comunicar y hacer
 
Introducción a Leanstartup
Introducción a LeanstartupIntroducción a Leanstartup
Introducción a Leanstartup
 
Taller de Gamification
Taller de GamificationTaller de Gamification
Taller de Gamification
 
PloneGov: Cooperación, participación y Software Libre en Gobierno
PloneGov: Cooperación, participación y Software Libre en Gobierno PloneGov: Cooperación, participación y Software Libre en Gobierno
PloneGov: Cooperación, participación y Software Libre en Gobierno
 
Menttes: exportando servicios basados en Software Libre
Menttes: exportando servicios basados en Software LibreMenttes: exportando servicios basados en Software Libre
Menttes: exportando servicios basados en Software Libre
 
Introducción al desarrollo en Plone
Introducción al desarrollo en PloneIntroducción al desarrollo en Plone
Introducción al desarrollo en Plone
 
Catedral y Bazaar
Catedral y BazaarCatedral y Bazaar
Catedral y Bazaar
 
Anatomia de Plone
Anatomia de PloneAnatomia de Plone
Anatomia de Plone
 
Desarrollo de Productos con Archetypes y ArchGenXML
Desarrollo de Productos con Archetypes y ArchGenXMLDesarrollo de Productos con Archetypes y ArchGenXML
Desarrollo de Productos con Archetypes y ArchGenXML
 
Curso Zope Page Templates y Metal
Curso Zope Page Templates y MetalCurso Zope Page Templates y Metal
Curso Zope Page Templates y Metal
 
zc.buildout para desarrolladores Plone
zc.buildout para desarrolladores Plonezc.buildout para desarrolladores Plone
zc.buildout para desarrolladores Plone
 
AJAX a cuerda Lo básico sobre AJAX y su funcionamiento
AJAX a cuerda
Lo básico sobre AJAX y su funcionamientoAJAX a cuerda
Lo básico sobre AJAX y su funcionamiento
AJAX a cuerda Lo básico sobre AJAX y su funcionamiento
 
Desarrollando aplicaciones web con Zope 3
Desarrollando aplicaciones web con Zope 3Desarrollando aplicaciones web con Zope 3
Desarrollando aplicaciones web con Zope 3
 
PloneGov: un proyecto internacional de cooperación entre Gobiernos abierto a ...
PloneGov: un proyecto internacional de cooperación entre Gobiernos abierto a ...PloneGov: un proyecto internacional de cooperación entre Gobiernos abierto a ...
PloneGov: un proyecto internacional de cooperación entre Gobiernos abierto a ...
 

Recently uploaded

How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 

Recently uploaded (11)

How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 

Extreme Programming

  • 1. menttes www.menttes.com Extreme Programming Roberto Allende rallende@menttes.com
  • 2. ¿ QUE ES XP ?    
  • 3. metodología de desarrollo ágil    
  • 5. promesas... ● Orientada a la satisfacción del cliente Mejora el proceso de desarrollo en cuatro frentes: comunicación, simplicidad, feedback, coraje    
  • 6. promesas... ● Orientada a la satisfacción del cliente ● Mejora el proceso de desarrollo en: comunicación, simplicidad y elegancia, feedback, coraje    
  • 7. promesas... ● código que sea fácil de entender y extender red de tests automáticos productividad, menores costos simple y sencillo    
  • 8. promesas... ● código que sea fácil de entender y extender ● conjunto de tests automáticos productividad, menores costos simple y sencillo    
  • 9. promesas... ● código que sea fácil de entender y extender ● conjunto de tests automáticos ● productividad, menores costos simple y sencillo    
  • 10. promesas... ● código que sea fácil de entender y extender ● conjunto de tests automáticos ● productividad, menores costos ● simple y sencillo    
  • 12. cuando... ● cambios de requerimienos son constantes proyectos con un gran margen de riesgo    
  • 13. cuando... ● cambios de requerimienos son constantes ● proyectos con un gran margen de riesgo    
  • 14. cuando... desarrollo basado en REUSABILIDAD de componentes    
  • 15. cuando... aunque... Extreme programming development methodology has a real influence in Zope 3 development process. Automated testing is a major strength of Zope 3. http://wiki.zope.org/zope3/ZopeGuideIntroduction    
  • 17. requerimientos... ● equipos de 2 a 12 programadores (aunque se reportaron éxitos en equipos de 30...) Involucrar al cliente en el equipo de desarrollo Crear y correr tests de forma automática    
  • 18. requerimientos... ● equipos de 2 a 12 programadores (aunque se reportaron éxitos en equipos de 30...) ● involucrar al cliente en el equipo de desarrollo Crear y correr tests de forma automática    
  • 19. requerimientos... ● equipos de 2 a 12 programadores (aunque se reportaron éxitos en equipos de 30...) ● involucrar al cliente en el equipo de desarrollo ● crear y correr tests de forma automática    
  • 20. ELEMENTOS PRINCIPALES    
  • 21.    
  • 22. elementos principales... ● user stories ● tarjetas crc ● escribir casos test antes de codificar ● refactoring    
  • 23. planificación: user stories similares a casos de uso pero: ● creadas para hacer estimaciones de tiempo son breves y concretas, no son extensos documentos son escritas por el cliente en vocabulario del cliente sin tecnicismos    
  • 24. planificación: user stories similares a casos de uso pero: ● creadas para hacer estimaciones de tiempo ● son breves y concretas, no son extensos documentos son escritas por el cliente en vocabulario del cliente sin tecnicismos    
  • 25. planificación: user stories similares a casos de uso pero: ● creadas para hacer estimaciones de tiempo ● son breves y concretas, no son extensos documentos ● son escritas por el cliente en vocabulario del cliente y sin tecnicismos    
  • 26. planificación: user stories similares a casos de uso pero: ● expresadas en términos de las necesidades del cliente duración sugerida: 1 a 3 semanas definen los tests de aceptación    
  • 27. planificación: user stories similares a casos de uso pero: ● expresadas en términos de las necesidades del cliente ● duración sugerida: 1 a 3 semanas definen los tests de aceptación    
  • 28. planificación: user stories similares a casos de uso pero: ● expresadas en términos de las necesidades del cliente ● duración sugerida: 1 a 3 semanas ● definen los tests de aceptación    
  • 29.    
  • 30.    
  • 31. planificación: plan de release ● ~80 user stories (± 20) ● Definido en una reunión en la que participan técnicos y la gente de negocios. Conjuntamente acordan el plan de entregas.    
  • 32. planificación: plan de release 1. El equipo de desarrollo estima la duración de cada user story. El cliente decide que user story posee mayor importancia o prioridad Se imprimen las user stories, se colocan las tarjetas en una mesa y se agrupan formando diferentes entregas    
  • 33. planificación: plan de release 1. El equipo de desarrollo estima la duración de cada user story. 2. El cliente decide que user story posee mayor importancia o prioridad Se imprimen las user stories, se colocan las tarjetas en una mesa y se agrupan formando diferentes entregas    
  • 34. planificación: plan de release 1. El equipo de desarrollo estima la duración de cada user story. 2. El cliente decide que user story posee mayor importancia o prioridad 3. Se imprimen las user stories, se colocan las tarjetas en una mesa y se agrupan formando la próxima entrega    
  • 35. planificación: plan de release ● Las metas de cada entrega son lograr un sistema usable, testeable, y entregado antes de tiempo Los planes se pueden fijar por tiempo o alcance Se emplea la velocidad de proyecto para determinar tiempo o alcance    
  • 36. planificación: plan de release ● Las metas de cada entrega son lograr un sistema usable, testeable, y entregado antes de tiempo ● Los planes se pueden fijar por tiempo o alcance Se emplea la velocidad de proyecto para determinar tiempo o alcance    
  • 37. planificación: plan de release ● Las metas de cada entrega son lograr un sistema usable, testeable, y entregado antes de tiempo ● Los planes se pueden fijar por tiempo o alcance ● Se emplea la velocidad de proyecto para determinar tiempo o alcance    
  • 38. planificación: plan de release ● Los lanzamientos son planeados antes de cada iteración y no con anticipación Los plazos deben ser los fijados en la reunión de release. No se deben subestimar plazos. En la reunión, el cliente, gestores de proyecto y desarolladores tienen que negociar hasta ponerse de acuerdo en el plan de release.    
  • 39. planificación: plan de release ● Los lanzamientos son planeados antes de cada iteración y no con anticipación ● Los plazos deben ser los fijados en la reunión de release. No se deben subestimar plazos. En la reunión, el cliente, gestores de proyecto y desarolladores tienen que negociar hasta ponerse de acuerdo en el plan de release.    
  • 40. planificación: plan de release ● Los lanzamientos son planeados antes de cada iteración y no con anticipación ● Los plazos deben ser los fijados en la reunión de release. No se deben subestimar plazos. ● En la reunión, el cliente, gestores de proyecto y desarolladores tienen que negociar hasta ponerse de acuerdo en el plan de release.    
  • 41. planificación: plan de release ● Las user stories de un plan son traducidas a tareas que deben ser implementadas Las user stories también son traducidas en test de aceptación Si el proyecto va muy rápido de acuerdo al plan, se reunen todos en una nueva reunión de release y se define un nuevo plan    
  • 42. planificación: plan de release ● Las user stories de un plan son traducidas a tareas que deben ser implementadas ● Las user stories también son traducidas en test de aceptación Si el proyecto va muy rápido de acuerdo al plan, se reunen todos en una nueva reunión de release y se define un nuevo plan    
  • 43. planificación: plan de release ● Las user stories de un plan son traducidas a tareas que deben ser implementadas ● Las user stories también son traducidas en test de aceptación ● Si el proyecto va muy rápido de acuerdo al plan, se reunen todos en una nueva reunión de release y se define un nuevo plan    
  • 44. regla: HACER RELEASES FRECUENTES Y PEQUEÑOS (release earlier, release often)    
  • 45. planificación: velocidad de proyecto ● Mide cuanto del trabajo está hecho p/release Total de user stories terminadas p/release Total de tareas terminadas p/release    
  • 46. planificación: velocidad de proyecto ● Mide cuanto del trabajo está hecho p/release ● Total de user stories terminadas p/release Total de tareas terminadas p/release    
  • 47. planificación: velocidad de proyecto ● Mide cuanto del trabajo está hecho p/release ● Total de user stories terminadas p/release ● Total de tareas terminadas p/release    
  • 48. DESARROLLO ITERATIVO    
  • 49.    
  • 50.    
  • 51. desarollo iterativo ● Dividir agenda de proyecto en iteraciones de 1 a 3 semanas de duración (~12 iteraciones p/proyecto) Mantener duración de iteraciones constantes a lo largo de todo el proyecto No agendes tareas de programación con anticipación SE PROHIBE IMPLEMENTAR ALGO QUE NO ES REQUERIDO EN LA ITERACION ACTUAL    
  • 52. desarollo iterativo ● Dividir agenda de proyecto en iteraciones de 1 a 3 semanas de duración (~12 iteraciones p/proyecto) ● Mantener duración de iteraciones constantes a lo largo de todo el proyecto No agendes tareas de programación con anticipación SE PROHIBE IMPLEMENTAR ALGO QUE NO ES REQUERIDO EN LA ITERACION ACTUAL    
  • 53. desarollo iterativo ● Dividir agenda de proyecto en iteraciones de 1 a 3 semanas de duración (~12 iteraciones p/proyecto) ● Mantener duración de iteraciones constantes a lo largo de todo el proyecto ● No agendes tareas de programación con anticipación SE PROHIBE IMPLEMENTAR ALGO QUE NO ES REQUERIDO EN LA ITERACION ACTUAL    
  • 54. desarollo iterativo ● Dividir agenda de proyecto en iteraciones de 1 a 3 semanas de duración (~12 iteraciones p/proyecto) ● Mantener duración de iteraciones constantes a lo largo de todo el proyecto ● No agendes tareas de programación con anticipación ● SE PROHIBE IMPLEMENTAR CUALQUIER COSA QUE NO SEA REQUERIDA EN LA ITERACION ACTUAL    
  • 55. desarollo iterativo, regla NUNCA AGREGAR UNA FUNCIONALIDAD ANTES DE TIEMPO    
  • 56. desarollo iterativo, regla SIMPLICIDAD ES LA CLAVE mantener las cosas tan sencillas como sea posible, refactoring soluciona las consecuencias    
  • 57. desarollo iterativo ● Tomar en serio los plazos de cada iteración y si es necesario renegociar fechas de entrega. ● Concentrar esfuerzos en completar tareas mas importantes para el cliente    
  • 58. planificación de iteraciones Está formado por: ● User stories seleccionadas por el cliente ordenadas en importancia ● Tests de aceptación que fallaron, se convierten en tareas    
  • 59. planificación de iteraciones ● Cada tarea debería tener una duración aproximada de entre 1 a 3 días ● El desarrollador que estima, es el que implementa la tarea    
  • 60. SOLUCIONES DE PUNTOS (SPIKE SOLUTIONS)    
  • 61. soluciones de puntos para encontrar soluciones técnicas y predecir duración, aislar el problema y solucionarlo fuera del contexto del sistema    
  • 62. TARJETAS CRC    
  • 63. tarjetas crc ● CRC Clases, responsabilidad, colaboración ● Son tarjetas que permiten diseñar el sistema como si fuera un equipo ● Se sugiere que muchas personas trabajen en el diseño    
  • 64. ESCRIBIR CASO DE TEST PRIMERO    
  • 65.    
  • 66. caso de test primero import random import unittest class TestSequenceFunctions(unittest.TestCase): def setUp(self): self.seq = range(10) def testshuffle(self): # make sure the shuffled sequence does not lose any elements random.shuffle(self.seq) self.seq.sort() self.assertEqual(self.seq, range(10)) def testchoice(self): element = random.choice(self.seq) self.assert_(element in self.seq) def testsample(self): self.assertRaises(ValueError, random.sample, self.seq, 20) for element in random.sample(self.seq, 5): self.assert_(element in self.seq) if __name__ == '__main__': unittest.main()    
  • 67. caso de test primero ● Facilita la codificación -> fuerza al programador que tiene que hacer antes de escribir código Define el alcance de cada funcionalidad, sabiendo con precisión cuando se ha terminado y se posee un test para asegurarlo Solo se va a implementar lo que satisface el test Otros programadores pueden aprender sobre el código viendo los casos de test    
  • 68. caso de test primero ● Facilita la codificación -> fuerza al programador que tiene que hacer antes de escribir código ● Define el alcance de cada funcionalidad, sabiendo con precisión cuando se ha terminado y se posee un test para asegurarlo Solo se va a implementar lo que satisface el test Otros programadores pueden aprender sobre el código viendo los casos de test    
  • 69. caso de test primero ● Facilita la codificación -> fuerza al programador que tiene que hacer antes de escribir código ● Define el alcance de cada funcionalidad, sabiendo con precisión cuando se ha terminado y se posee un test para asegurarlo ● Solo se va a implementar lo que satisface el test Otros programadores pueden aprender sobre el código viendo los casos de test    
  • 70. caso de test primero ● Facilita la codificación -> fuerza al programador que tiene que hacer antes de escribir código ● Define el alcance de cada funcionalidad, sabiendo con precisión cuando se ha terminado y se posee un test para asegurarlo ● Solo se va a implementar lo que satisface el test ● Otros programadores pueden aprender sobre el código viendo los casos de test    
  • 71. caso de test primero ● El tiempo que se ahorra al escribir un caso de test se paga muchas veces mas durante el desarollo de un sistema sin casos de test. Arreglar pequeños problemas varias veces al día toma mucho menos tiempo que arreglar grandes problemas momentos previos a la entrega.    
  • 72. caso de test primero ● El tiempo que se ahorra al escribir un caso de test se paga muchas veces mas durante el desarollo de un sistema sin casos de test. ● Arreglar pequeños problemas varias veces al día toma mucho menos tiempo que arreglar grandes problemas momentos previos a la entrega.    
  • 73. caso de test primero NO SE PUEDE ENTREGAR CODIGO SIN POSEER Y APROBAR LOS CASOS DE TEST    
  • 74.    
  • 75.    
  • 76. CUANDO SE ENCUENTRA UN BUG    
  • 77. cuando se encuentra un bug ● Se escribe el caso de test que lo detecta ● Se agrega a la proxima iteración ● Se soluciona el bug ● Se prueba la solución corriendo el test    
  • 78. TEST DE ACEPTACION    
  • 79. test de aceptación ● Creado en el momento en que se definen las user stories ● Diferentes escenarios de una user stories y sus resultados asociados ● User story no está completa hasta que paso el test de aceptación    
  • 80. REFACTOREO SIN PIEDAD    
  • 81. refactoreo sin piedad ● quitar redundancias, eliminar funcionalidades sin usar, actualizar diseños obsoletos de modo que el código sea fácil de entender, modificar y extender ● refactorización ahorra tiempo e incrementa calidad    
  • 82. PAIR PROGRAMMING    
  • 83. pair programming ● Evita dependencia de conocimiento y cuellos de botella ● Induce el entrenamiento cruzado ● El equipo es mas flexible si todos conocen el las partes del sistema    
  • 84. STAND UP MEETINGS (reuniones de pie)    
  • 85. reuniones de pie el equipo se reune al inicio de todos los dias, y de pie forman un circulo    
  • 86. reuniones de pie es mas eficiente tener breves reuniones donde todos estan obligados a atender, que muchas reuniones por separado    
  • 87. reuniones de pie centradas en las necesidades de uno o mas desarrolladores y quienes pueden contribuir    
  • 88.    
  • 90. CLIENTE SIEMPRE DISPONIBLE COMO MIEMBRO DEL EQUIPO    
  • 91. SEGUIR ESTANDARES DE PROGRAMACION    
  • 92. INTEGRAR SEGUIDO REPOSITORIO COLECTIVO DE CODIGO    
  • 93. SVN INTEGRAR SEGUIDO REPOSITORIO COLECTIVO DE CODIGO    
  • 95. OPTIMIZAR AL ULTIMO    
  • 96. CUANDO XP NO FUNCIONA ARREGLAR Y DOCUMENTAR    
  • 97. IMPLEMENTACIONES CASERAS    
  • 98. implementaciones ● listas de correo, dev y proyecto c/cliente extreme managemente (producto plone) comunicación con el cliente (telefono) stand up meetings semanales (irc / voip) toda disponibilidad posible del equipo en una sala común vía irc    
  • 99. implementaciones ● listas de correo, dev y proyecto c/cliente ● extreme managemente (producto plone) comunicación con el cliente (telefono) stand up meetings semanales (irc / voip) toda disponibilidad posible del equipo en una sala común vía irc    
  • 100. implementaciones ● listas de correo, dev y proyecto c/cliente ● extreme managemente (producto plone) ● comunicación con el cliente (telefono) stand up meetings semanales (irc / voip) toda disponibilidad posible del equipo en una sala común vía irc    
  • 101. implementaciones ● listas de correo, dev y proyecto c/cliente ● extreme managemente (producto plone) ● comunicación con el cliente (telefono) ● stand up meetings semanales (irc / voip) toda disponibilidad posible del equipo en una sala común vía irc    
  • 102. implementaciones ● listas de correo, dev y proyecto c/cliente ● extreme managemente (producto plone) ● comunicación con el cliente (telefono) ● stand up meetings semanales (irc / voip) ● toda disponibilidad posible del equipo en una sala común vía irc    
  • 103.    
  • 104.    
  • 105.    
  • 106. ultima página ● la gente es tu recurso mas preciado ● como comenzar: www.extremeprogramming.org -> how to start ● Extreme Programming Exaplined Kent Beck et.al.    
  • 107. menttes www.menttes.com Muchas Gracias Roberto Allende rallende@menttes.com http://labs.menttes.com