Arquitectura de Proyectos de IT
© 2005
Metodologías Iterativas
de Desarrollo
Ing. Nicolás Passerini
Ing. Gustavo A. Brey
10Pines
Igualito a un
Software,
no?
Son todos iguales
Es realmente lo
mismo?
Es un proceso de
aprendizaje, que va desde
la adquisición de un
conocimiento a la
representación del mismo.
6
Arquitectura de Proyectos de IT
Características de una metodología
 Cascada vs. Iterativo.
– Decision Momentum
 Procesos bien definidos vs. aprovechamiento de las
habilidades y las interacciones entre las personas.
– Brain Work vs. No Brain Work
– Procesos definidos vs. Procesos intuitivos o internalizados
 Procesos repetibles vs. adaptativos, eficiencia, mejora
continua.
 Cuánto y qué tan formalmente documentar.
7
Arquitectura de Proyectos de IT
Metodologías Iterativas - Desripción
 El proyecto se divide en “iteraciones”, cuyo entregable es una
versión del sistema.
 Todo está sujeto a ser modificado en las iteraciones
posteriores (planificación, análisis, diseño, código, etc).
 En lugar de poner el énfasis en la eliminación de los errores,
se procura minimizar su impacto.
 Se intenta aprovechar el aprendizaje durante el desarrollo.
 Ideales para cuando los requerimientos no están del todo
claros en un comienzo o pueden sufrir modificaciones.
 No confundir iterativo e incremental. Lo iterativo no
presupone o incremental, ni viceversa.
8
Arquitectura de Proyectos de IT
Metodologías Iterativas - Motivaciones
 En la actualidad, con frecuencia la extracción de
requerimientos es más costosa que la construcción.
 Dinamismo o “apuro”. Muchas veces los requerimientos no
están definidos desde el comienzo, cambian durante el
desarrollo, pueden cometerse errores.
 La complejidad en muchos sistemas hoy en día pasa más por
las interfaces de usuario que por la lógica de negocio.
 No es tan sencillo manejar los requerimientos
independientemente de las posibilidades o restricciones
tecnológicas.
9
Arquitectura de Proyectos de IT
Metodologías Iterativas
Ventajas
 Más “realista”
 Se adaptan mejor a los cambios
 Permiten administrar mejor los riesgos
 Mayor visibilidad para el cliente
 Mejor feedback para el equipo de desarrollo
Desventajas
 Falta de experiencia
 Reacción al cambio de enfoque
 Requieren de distintos modelos de contrato.
10
Arquitectura de Proyectos de IT
Problemas de las metodologías secuenciales
Relación del costo de un cambio con metodologías secuenciales
11
Arquitectura de Proyectos de IT
Problemas de las metodologías secuenciales
Como aplanar la curva utilizando técnicas ágiles
12
Arquitectura de Proyectos de IT
Problemas de las metodologías secuenciales
Curva según Ken Beck (Creador de la metodologías ágil XP)
13
Arquitectura de Proyectos de IT
Que no es agile!
14
Arquitectura de Proyectos de IT
Manifiesto agil
Estamos poniendo al descubierto mejores métodos para desarrollar software, haciéndolo y ayudando
a otros a que lo hagan. Con este trabajo hemos llegado a valorar:
Individuos e interacción, por sobre los procesos y herramientas.
Software funcionando, por sobre documentación exhaustiva.
Colaboración con el cliente, por sobrenegociación contractual.
Responder a los cambios, por sobre del seguimiento de un plan.
Aunque hay valor en los elementos de la derecha, valoramos más los de la izquierda.
15
Arquitectura de Proyectos de IT
Principios de las metodologías ágiles
 Son iterativas. No intentan minimizar los cambios, sino estar
preparados para aceptarlos.
 Son adaptativas en lugar de repetibles.
 Incorporan feedback sobre el proceso.
 Asegurar la calidad y la excelencia técnica desde el
inicio
 Buscan minimizar el overhead metodológico.
16
Arquitectura de Proyectos de IT
Prácticas claves
 Requerimientos evolutivos
 Planificación iterativa y adaptativa
 Priorización por valor de negocio y por riesgo
 Diseño y arquitectura emergentes
 Deployment incremental
 Timeboxing
 Empowerment y auto-organización
17
Arquitectura de Proyectos de IT
Prácticas de calidad
 Test Driven Development
– Se escribe código productivo una vez que se tiene un test que
Falla
 Pair Programming
– Toda línea de código productivo se escribe con dos personas en
una misma máquina => Revisión de código on-the-fly
 Diseño simple y refactoring
– Diseñar el sistema tan simple como sea posible en cada
momento, eliminando complejidad innecesaria tan pronto como
sea identificada.
– Reestructurar el sistema sin cambiar su comportamiento para
eliminar duplicaciones, mejorar la legibilidad, la simplicidad y la
flexibilidad del código.
 Estándares de codificación
– Reglas que permiten comprender y compartir el código entrelos
desarrolladores
18
Arquitectura de Proyectos de IT
Integración continua
 Build automatizado y auto-verificable
– El código incluye un suite de tests automatizados que
buscan detectar bugs
– Los tests pueden ser ejecutados con un simple comando y
verifican automáticamente los resultados
– Si alguno de los tests falla, todo el build falla
 Servidor de integración continua:
– Ante cada commit dispara un build auto-verificable
– Permite detectar y eliminar los bugs tan pronto como son
introducidos
19
Arquitectura de Proyectos de IT
Manejo de Riesgos en Metodologías Ágiles
 Retrasos y cancelaciones
 Altos costos de mantenimiento
 Gran cantidad de defectos
 Falta de entendimiento del negocio
 Cambios en el negocio
 Requerimientos “volados”
 Arquitectura y diseño “volados”
 Inestabilidad de personal
20
Arquitectura de Proyectos de IT
¿Cuándo Elegir las Metodologías Ágiles?
 Los requerimientos son poco claros o altamente volátiles.
 El cliente entiende el proceso y está involucrado en el
proyecto.
 Se cuenta con profesionales capacitados y competentes
 Se tienen canales ricos de comunicación
 El grupo de trabajo no es demasiado grande (~ 50)
 Se desea fomentar la mejora continua del proceso
21
Arquitectura de Proyectos de IT
Rol del Arquitecto en un Proyecto Iterativo
 Toma de decisiones en todo momento
 Necesidad de construir arquitecturas que
evolucionen
 Prácticas de Calidad (TDD, Integración Continua,
etc)
 Tiene sus propios pasos en la iteración
 Entender/seleccionar los requerimientos
 Crear/Actualizar la arquitectura
 Comunicarla constantemente
 Evaluarla con los stakeholders
 Verificar su implementación
Arquitectura de Proyectos de IT
© 2005
Metodologías Iterativas
de Desarrollo
Material complementatio
Ing. Nicolás Passerini
Ing. Gustavo A. Brey
10Pines
23
Arquitectura de Proyectos de IT
Material Complementario
 Ejemplos de Metodologías Agiles
– Scum
– eXtreme Programming
24
Arquitectura de Proyectos de IT
Scrum – Fases de un proyecto
 Planeamiento
 Arquitectura o diseño de alto nivel
 Desarrollo (sprints)
– Sprint Planning
– Daily Work
– Sprint Review
 Cierre
25
Arquitectura de Proyectos de IT
Scrum – Planeamiento
 Definir el backlog del producto.
 Determinar los próximos releases (objetivos y
fechas).
 Determinar los objetivos y el equipo para el primer
release.
 Analizar los riesgos.
 Revalidar o ajustar las herramientas e
infraestructura.
 Estimar el costo del release.
 Verificar la aprobación del management.
26
Arquitectura de Proyectos de IT
Scrum - Arquitectura o diseño de alto nivel
 Identificar los cambios necesarios para implementar
el backlog.
 Extender o actualizar el modelo de dominio.
 Refinar la arquitectura para soportar los nuevos
requerimientos.
 Plantear la estrategia para encarar cada item del
backlog.
 Revisar cada diseño y reasignar tareas si es
necesario.
27
Arquitectura de Proyectos de IT
Scrum – Desarrollo
 Ciclo de desarrollo iterativo
 “Concurrent Engineering”
 Sprint Planning
 En cada sprint se realizan las siguientes tareas:
– Desarrollo (análisis, diseño, programación, testing y
documentación)
– Empaquetado y despliegue
– Revisión
– Ajustes
 Sprint Review
28
Arquitectura de Proyectos de IT
Scrum – Cierre
 Se cierra el release.
 Pruebas de integración
 Pruebas de sistema
 Documentación para el usuario
 Preparación del material de entrenamiento
29
Arquitectura de Proyectos de IT
Scrum – Vista global del proceso
Product Backlog Increment
Sprint Planning Meeting
Daily Scrum
Daily Work
Sprint Goal
Sprint Backlog
Blocks List
Product
Sprint Review Meeting
Sprint:
2 weeks
Product Backlog’
Increment’
30
Arquitectura de Proyectos de IT
Scrum
Roles
 Product Owner
 Scrum Master
 Team
 StakeHolders
Artefactos clave
 Product Backlog
 Sprint Goal
 Sprint Backlog
 Blocks List
 Increment
Reuniones clave
 Sprint Planning
 Daily Scrum
 Sprint Review
31
Arquitectura de Proyectos de IT
Scrum – Reuniones
 Sprint Planning
–Seleccionar los items de mayor prioridad en el Product Backlog
–Determinar el Sprint Goal
–El equipo determina el Sprint Backlog
 Scrum
–Habla cada desarrollador del equipo:
–¿Qué hiciste ayer?
–¿Qué vas a hacer hoy?
–¿Qué cosas te traban?
–Se actualiza el Sprint Backlog y el Blocks List
 Sprint Review
–Demostración y discusión del incremento
 Las tres reuniones son manejadas por el ScrumMaster
32
Arquitectura de Proyectos de IT
Scrum – Artefactos
 Backlog: Funcionalidades aún no cubiertas en el release actual. Bugs, defectos,
mejoras, etc.
 Release: Conjunto de items del backlog que representan un entregable con
fecha.
 Packet: Conjunto de componentes u objetos que deben se modificados para
implementar un item del backlog.
 Changes: Cambios que deben ocurrir para implementar un item del backlog.
 Problems: Problemas técnicos que deben ser resueltos para implementar un
cambio.
 Risks.
 Solutions: Respuestas a los problemas y riesgos, generalmente resultando en
cambios.
 Issues: Cualquier otra cuestión del general al proyecto no descripta en
términos de paquetes, cambios y problemas.
33
Arquitectura de Proyectos de IT
Scrum – Ventajas
 Evita estancamientos en el proyecto
 Seguimiento del proyecto
 Seguimiento del equipo
 SW que incrementa su funcionalidad en cada sprint
 Mecanismos de control para variables cambiantes con el
entorno
 Progreso en el producto con requerimientos inestables
 Aumenta comunicación con el equipo
 Cliente obtiene feedback frecuente sobre el producto
34
Arquitectura de Proyectos de IT
XP – Sus Valores
 Comunicación
 Feedback
 Simplicidad
 Coraje
35
Arquitectura de Proyectos de IT
XP – Estrategia de planificación
 Planning Game
– El equipo de desarrollo estima
– El cliente prioriza
 Whole Team
– El cliente participa del equipo de desarrollo
– Debe estar disponible siempre
 Small Releases
 User stories
– El usuario…
– Desea…
– Para así poder…
 Metrics
36
Arquitectura de Proyectos de IT
XP – Estrategia de diseño
 Principios
– Baja inversión inicial
– Asumir simplicidad
– Crecimiento gradual – pasos pequeños
– No sobrediseñar (“travel light”)
 Prácticas
– System Metaphor
– Simple Design
– Refactoring
– Test Driven Development
37
Arquitectura de Proyectos de IT
XP – Otras prácticas
 Pair Programming
 Collective Code Ownership
 Continuous Integration
 Coding Standards
 Sustainable Pace
38
Arquitectura de Proyectos de IT
XP – Fases del desarrollo
 Listening
 Testing
 Coding
 Refactoring
39
Arquitectura de Proyectos de IT
XP – Elementos de una iteración
 Planning Game – recolección de user stories
 Estimación – hecha por el desarrollador en base a
analogía o prototipado
 Metáfora – vocabulario común del sistema
 Diseño Simple – en XP el código fuente es el diseño
 Tests de aceptación
 Refactoring
 Integración
40
Arquitectura de Proyectos de IT
XP - Críticas
 No escalable
 Altos riesgos si existen fallas en la arquitectura
 Altos riesgos si no hay capacidad/estabilidad en las
personas
 La programación de a pares es un intento por
solventar la falta de análisis
 Puede caer en el modelo de codificar y probar
 Vagas nociones de aseguramiento de la calidad
 Fuerte tendencia a no documentar
41
Arquitectura de Proyectos de IT
Bibliografía
 [PlanningXP] Kent Beck, Martin Fowler , Planning Extreme
Programming. Addison Wesley, 2000, ISBN 0-201-71091-9.
 [XPExplained] Kent Beck, Extreme Programming Explained,
Addison-Wesley, 1999, ISBN 0201616416
 [MythicalMM] Fred Brooks, The Mythical Man-Month,
Addison-Wesley, 1995, ISBN 0201835959
 [PMMethodolgies] Jason Charvat, Project Management
Methodologies, JOHN WILEY & SONS, INC., 2003, ISBN
0-471-22178-3
 [AbySoft]
http://www.agilemodeling.com/essays/costOfChange.htm

Metodologías Agiles - APIT - UTN FRBA

  • 1.
    Arquitectura de Proyectosde IT © 2005 Metodologías Iterativas de Desarrollo Ing. Nicolás Passerini Ing. Gustavo A. Brey 10Pines
  • 2.
  • 3.
  • 4.
  • 5.
    Es un procesode aprendizaje, que va desde la adquisición de un conocimiento a la representación del mismo.
  • 6.
    6 Arquitectura de Proyectosde IT Características de una metodología  Cascada vs. Iterativo. – Decision Momentum  Procesos bien definidos vs. aprovechamiento de las habilidades y las interacciones entre las personas. – Brain Work vs. No Brain Work – Procesos definidos vs. Procesos intuitivos o internalizados  Procesos repetibles vs. adaptativos, eficiencia, mejora continua.  Cuánto y qué tan formalmente documentar.
  • 7.
    7 Arquitectura de Proyectosde IT Metodologías Iterativas - Desripción  El proyecto se divide en “iteraciones”, cuyo entregable es una versión del sistema.  Todo está sujeto a ser modificado en las iteraciones posteriores (planificación, análisis, diseño, código, etc).  En lugar de poner el énfasis en la eliminación de los errores, se procura minimizar su impacto.  Se intenta aprovechar el aprendizaje durante el desarrollo.  Ideales para cuando los requerimientos no están del todo claros en un comienzo o pueden sufrir modificaciones.  No confundir iterativo e incremental. Lo iterativo no presupone o incremental, ni viceversa.
  • 8.
    8 Arquitectura de Proyectosde IT Metodologías Iterativas - Motivaciones  En la actualidad, con frecuencia la extracción de requerimientos es más costosa que la construcción.  Dinamismo o “apuro”. Muchas veces los requerimientos no están definidos desde el comienzo, cambian durante el desarrollo, pueden cometerse errores.  La complejidad en muchos sistemas hoy en día pasa más por las interfaces de usuario que por la lógica de negocio.  No es tan sencillo manejar los requerimientos independientemente de las posibilidades o restricciones tecnológicas.
  • 9.
    9 Arquitectura de Proyectosde IT Metodologías Iterativas Ventajas  Más “realista”  Se adaptan mejor a los cambios  Permiten administrar mejor los riesgos  Mayor visibilidad para el cliente  Mejor feedback para el equipo de desarrollo Desventajas  Falta de experiencia  Reacción al cambio de enfoque  Requieren de distintos modelos de contrato.
  • 10.
    10 Arquitectura de Proyectosde IT Problemas de las metodologías secuenciales Relación del costo de un cambio con metodologías secuenciales
  • 11.
    11 Arquitectura de Proyectosde IT Problemas de las metodologías secuenciales Como aplanar la curva utilizando técnicas ágiles
  • 12.
    12 Arquitectura de Proyectosde IT Problemas de las metodologías secuenciales Curva según Ken Beck (Creador de la metodologías ágil XP)
  • 13.
    13 Arquitectura de Proyectosde IT Que no es agile!
  • 14.
    14 Arquitectura de Proyectosde IT Manifiesto agil Estamos poniendo al descubierto mejores métodos para desarrollar software, haciéndolo y ayudando a otros a que lo hagan. Con este trabajo hemos llegado a valorar: Individuos e interacción, por sobre los procesos y herramientas. Software funcionando, por sobre documentación exhaustiva. Colaboración con el cliente, por sobrenegociación contractual. Responder a los cambios, por sobre del seguimiento de un plan. Aunque hay valor en los elementos de la derecha, valoramos más los de la izquierda.
  • 15.
    15 Arquitectura de Proyectosde IT Principios de las metodologías ágiles  Son iterativas. No intentan minimizar los cambios, sino estar preparados para aceptarlos.  Son adaptativas en lugar de repetibles.  Incorporan feedback sobre el proceso.  Asegurar la calidad y la excelencia técnica desde el inicio  Buscan minimizar el overhead metodológico.
  • 16.
    16 Arquitectura de Proyectosde IT Prácticas claves  Requerimientos evolutivos  Planificación iterativa y adaptativa  Priorización por valor de negocio y por riesgo  Diseño y arquitectura emergentes  Deployment incremental  Timeboxing  Empowerment y auto-organización
  • 17.
    17 Arquitectura de Proyectosde IT Prácticas de calidad  Test Driven Development – Se escribe código productivo una vez que se tiene un test que Falla  Pair Programming – Toda línea de código productivo se escribe con dos personas en una misma máquina => Revisión de código on-the-fly  Diseño simple y refactoring – Diseñar el sistema tan simple como sea posible en cada momento, eliminando complejidad innecesaria tan pronto como sea identificada. – Reestructurar el sistema sin cambiar su comportamiento para eliminar duplicaciones, mejorar la legibilidad, la simplicidad y la flexibilidad del código.  Estándares de codificación – Reglas que permiten comprender y compartir el código entrelos desarrolladores
  • 18.
    18 Arquitectura de Proyectosde IT Integración continua  Build automatizado y auto-verificable – El código incluye un suite de tests automatizados que buscan detectar bugs – Los tests pueden ser ejecutados con un simple comando y verifican automáticamente los resultados – Si alguno de los tests falla, todo el build falla  Servidor de integración continua: – Ante cada commit dispara un build auto-verificable – Permite detectar y eliminar los bugs tan pronto como son introducidos
  • 19.
    19 Arquitectura de Proyectosde IT Manejo de Riesgos en Metodologías Ágiles  Retrasos y cancelaciones  Altos costos de mantenimiento  Gran cantidad de defectos  Falta de entendimiento del negocio  Cambios en el negocio  Requerimientos “volados”  Arquitectura y diseño “volados”  Inestabilidad de personal
  • 20.
    20 Arquitectura de Proyectosde IT ¿Cuándo Elegir las Metodologías Ágiles?  Los requerimientos son poco claros o altamente volátiles.  El cliente entiende el proceso y está involucrado en el proyecto.  Se cuenta con profesionales capacitados y competentes  Se tienen canales ricos de comunicación  El grupo de trabajo no es demasiado grande (~ 50)  Se desea fomentar la mejora continua del proceso
  • 21.
    21 Arquitectura de Proyectosde IT Rol del Arquitecto en un Proyecto Iterativo  Toma de decisiones en todo momento  Necesidad de construir arquitecturas que evolucionen  Prácticas de Calidad (TDD, Integración Continua, etc)  Tiene sus propios pasos en la iteración  Entender/seleccionar los requerimientos  Crear/Actualizar la arquitectura  Comunicarla constantemente  Evaluarla con los stakeholders  Verificar su implementación
  • 22.
    Arquitectura de Proyectosde IT © 2005 Metodologías Iterativas de Desarrollo Material complementatio Ing. Nicolás Passerini Ing. Gustavo A. Brey 10Pines
  • 23.
    23 Arquitectura de Proyectosde IT Material Complementario  Ejemplos de Metodologías Agiles – Scum – eXtreme Programming
  • 24.
    24 Arquitectura de Proyectosde IT Scrum – Fases de un proyecto  Planeamiento  Arquitectura o diseño de alto nivel  Desarrollo (sprints) – Sprint Planning – Daily Work – Sprint Review  Cierre
  • 25.
    25 Arquitectura de Proyectosde IT Scrum – Planeamiento  Definir el backlog del producto.  Determinar los próximos releases (objetivos y fechas).  Determinar los objetivos y el equipo para el primer release.  Analizar los riesgos.  Revalidar o ajustar las herramientas e infraestructura.  Estimar el costo del release.  Verificar la aprobación del management.
  • 26.
    26 Arquitectura de Proyectosde IT Scrum - Arquitectura o diseño de alto nivel  Identificar los cambios necesarios para implementar el backlog.  Extender o actualizar el modelo de dominio.  Refinar la arquitectura para soportar los nuevos requerimientos.  Plantear la estrategia para encarar cada item del backlog.  Revisar cada diseño y reasignar tareas si es necesario.
  • 27.
    27 Arquitectura de Proyectosde IT Scrum – Desarrollo  Ciclo de desarrollo iterativo  “Concurrent Engineering”  Sprint Planning  En cada sprint se realizan las siguientes tareas: – Desarrollo (análisis, diseño, programación, testing y documentación) – Empaquetado y despliegue – Revisión – Ajustes  Sprint Review
  • 28.
    28 Arquitectura de Proyectosde IT Scrum – Cierre  Se cierra el release.  Pruebas de integración  Pruebas de sistema  Documentación para el usuario  Preparación del material de entrenamiento
  • 29.
    29 Arquitectura de Proyectosde IT Scrum – Vista global del proceso Product Backlog Increment Sprint Planning Meeting Daily Scrum Daily Work Sprint Goal Sprint Backlog Blocks List Product Sprint Review Meeting Sprint: 2 weeks Product Backlog’ Increment’
  • 30.
    30 Arquitectura de Proyectosde IT Scrum Roles  Product Owner  Scrum Master  Team  StakeHolders Artefactos clave  Product Backlog  Sprint Goal  Sprint Backlog  Blocks List  Increment Reuniones clave  Sprint Planning  Daily Scrum  Sprint Review
  • 31.
    31 Arquitectura de Proyectosde IT Scrum – Reuniones  Sprint Planning –Seleccionar los items de mayor prioridad en el Product Backlog –Determinar el Sprint Goal –El equipo determina el Sprint Backlog  Scrum –Habla cada desarrollador del equipo: –¿Qué hiciste ayer? –¿Qué vas a hacer hoy? –¿Qué cosas te traban? –Se actualiza el Sprint Backlog y el Blocks List  Sprint Review –Demostración y discusión del incremento  Las tres reuniones son manejadas por el ScrumMaster
  • 32.
    32 Arquitectura de Proyectosde IT Scrum – Artefactos  Backlog: Funcionalidades aún no cubiertas en el release actual. Bugs, defectos, mejoras, etc.  Release: Conjunto de items del backlog que representan un entregable con fecha.  Packet: Conjunto de componentes u objetos que deben se modificados para implementar un item del backlog.  Changes: Cambios que deben ocurrir para implementar un item del backlog.  Problems: Problemas técnicos que deben ser resueltos para implementar un cambio.  Risks.  Solutions: Respuestas a los problemas y riesgos, generalmente resultando en cambios.  Issues: Cualquier otra cuestión del general al proyecto no descripta en términos de paquetes, cambios y problemas.
  • 33.
    33 Arquitectura de Proyectosde IT Scrum – Ventajas  Evita estancamientos en el proyecto  Seguimiento del proyecto  Seguimiento del equipo  SW que incrementa su funcionalidad en cada sprint  Mecanismos de control para variables cambiantes con el entorno  Progreso en el producto con requerimientos inestables  Aumenta comunicación con el equipo  Cliente obtiene feedback frecuente sobre el producto
  • 34.
    34 Arquitectura de Proyectosde IT XP – Sus Valores  Comunicación  Feedback  Simplicidad  Coraje
  • 35.
    35 Arquitectura de Proyectosde IT XP – Estrategia de planificación  Planning Game – El equipo de desarrollo estima – El cliente prioriza  Whole Team – El cliente participa del equipo de desarrollo – Debe estar disponible siempre  Small Releases  User stories – El usuario… – Desea… – Para así poder…  Metrics
  • 36.
    36 Arquitectura de Proyectosde IT XP – Estrategia de diseño  Principios – Baja inversión inicial – Asumir simplicidad – Crecimiento gradual – pasos pequeños – No sobrediseñar (“travel light”)  Prácticas – System Metaphor – Simple Design – Refactoring – Test Driven Development
  • 37.
    37 Arquitectura de Proyectosde IT XP – Otras prácticas  Pair Programming  Collective Code Ownership  Continuous Integration  Coding Standards  Sustainable Pace
  • 38.
    38 Arquitectura de Proyectosde IT XP – Fases del desarrollo  Listening  Testing  Coding  Refactoring
  • 39.
    39 Arquitectura de Proyectosde IT XP – Elementos de una iteración  Planning Game – recolección de user stories  Estimación – hecha por el desarrollador en base a analogía o prototipado  Metáfora – vocabulario común del sistema  Diseño Simple – en XP el código fuente es el diseño  Tests de aceptación  Refactoring  Integración
  • 40.
    40 Arquitectura de Proyectosde IT XP - Críticas  No escalable  Altos riesgos si existen fallas en la arquitectura  Altos riesgos si no hay capacidad/estabilidad en las personas  La programación de a pares es un intento por solventar la falta de análisis  Puede caer en el modelo de codificar y probar  Vagas nociones de aseguramiento de la calidad  Fuerte tendencia a no documentar
  • 41.
    41 Arquitectura de Proyectosde IT Bibliografía  [PlanningXP] Kent Beck, Martin Fowler , Planning Extreme Programming. Addison Wesley, 2000, ISBN 0-201-71091-9.  [XPExplained] Kent Beck, Extreme Programming Explained, Addison-Wesley, 1999, ISBN 0201616416  [MythicalMM] Fred Brooks, The Mythical Man-Month, Addison-Wesley, 1995, ISBN 0201835959  [PMMethodolgies] Jason Charvat, Project Management Methodologies, JOHN WILEY & SONS, INC., 2003, ISBN 0-471-22178-3  [AbySoft] http://www.agilemodeling.com/essays/costOfChange.htm

Notas del editor

  • #8 Incremental development is a scheduling and staging strategy in which the various parts of the system are developed at different times or rates, and integrated as they are completed. It does not imply, require nor preclude iterative development or waterfall development - both of those are rework strategies. The alternative to incremental development is to develop the entire system with a "big bang" integration. Iterative development is a rework scheduling strategy in which time is set aside to revise and improve parts of the system. It does not presuppose incremental development, but works very well with it. A typical difference is that the output from an increment is not necessarily subject to further refinement, and its' testing or user feedback is not used as input for revising the plans or specifications of the successive increments. On the contrary, the output from an iteration is examined for modification, and especially for revising the targets of the successive iterations. The two terms were merged in practical use in the mid-1990s. The authors of the Unified Process (UP) and the Rational Unified Process(RUP) selected the term "iterative development", and "iterations" to generally mean any combination of incremental and iterative development. Most people saying "iterative" development mean that they do both incremental and iterative development. Some project teams get into trouble by doing only one and not the other without realizing it.
  • #14 I’ll give you a minute to read the cartoon strips… We are not using Agile or Lean to get rid of people, that’s not our definition of lean. We aren’t throwing away all documentation and process.. This is a disciplined agile approach. We are providing training! Typical objections, among others: I don’t know what you mean by “agile” I’ve seen “agile” used just as an excuse to do anything you want Agile doesn’t scale Agile can’t work across sites Agile techniques will result in lower quality Agile is unproven Agile is a huge cultural transformation that doesn’t warrant the investment Agile approaches are not CMMI compliant Business management processes prevents me from doing agile Typical objections, among others: I don’t know what you mean by “agile” I’ve seen “agile” used just as an excuse to do anything you want Agile doesn’t scale Agile can’t work across sites Agile techniques will result in lower quality Agile is unproven Agile is a huge cultural transformation that doesn’t warrant the investment Agile approaches are not CMM compliant Business management processes prevents me from doing agile