PROGRAMACIÓNEXTREMA (XP)
QUE SE TE OCURRE CUANDO ESCUCHAS EL TERMINO PROGRAMACION EXTREMA?
UN POCO DE  HISTORIA…Se reconoce a Kent Beck como el que articuló y le dio nombre propio  a esta propuesta, pero se conocen antecedentes de que Cunningham en 1989 forma un equipo de  trabajo que usaba los principios y muchas de la s practicas que después adoptaría  xp.
Posteriormente, la consolidación de xp se logra con la publicación del libro de Kent Beck    ¨Extreme Programming Explanied: embrace Change ¨  en 1999 con el cual Beck gano el premio Software Development Jolt Product Excellence.Kent Beck
DEFINICIÓNLa programación extrema o eXtreme Programming (xp) es un enfoque de la ingeniería de software y se diferencia de las metodologías tradicionales principalmente en que pone más énfasis en la adaptabilidad que en la previsibilidad. Los defensores de XP consideran que los cambios de requisitos sobre la marcha son un aspecto natural, inevitable e incluso deseable del desarrollo de proyectos.
Retraso en la planificación.Sistemas deteriorados.Tasa de defectos.Requisitos mal comprendidos.Cambios en el negocio.Falsa riqueza.Cambio de personal.PROBLEMAS EN EL DESARROLLO DE SOFTWARE
OBJETIVOSLos objetivos xp son muy simples:La satisfacción del cliente.Potenciar al máximo el trabajo en  grupo.
VALORESSimplicidadComunicaciónRetroalimentaciónCorajeRespeto
SIMPLICIDAD
COMUNICACION
RETROALIMENTACION O FEEDBACK
CORAJE
RESPETO
CARACTERISTICAS FUNDAMENTALESDesarrollo iterativo e incrementado. Pruebas unitarias continuas.Programación en pareja.Integración del equipo de programación con el cliente.Propiedad del código compartida.Simplicidad y comunicación.
ABRIENDO LAS PUERTAS A ALGO NUEVO:METODOLOGIAS AGILESADENTRANDONOS EN EL TEMA.
METODOLOGIAS AGILES• Los individuos y sus interacciones son más importantes que los procesos.• El software que funciona es más importante que la documentación exhaustiva.• La colaboración con el cliente en lugar de la negociación de contratos.• La respuesta delante del cambio en lugar de seguir un plan aislado.adaptabilidad de cualquier cambio
ENTREMOS EN CONTEXTO1 . Retroalimentación a escala fina:El principio de pruebas: se tiene que establecer un período de pruebas de aceptación del programa donde se definirán las entradas al sistema y los resultados esperados de estas entradas.Ambientes de Prueba (Unittestingframeworks).
¿QUÉ PODEMOS ENCONTRAR EN EL MERCADO?
GRANDES PROYECTOSCreatividad liberada    Use Visual Studio TeamFoundation Server 2010 para administrar los procesos de desarrollo de software y facilitar la colaboración, a fin de liberar a los equipos de trabajo de tareas mundanas de no codificación y brindarles más autonomía para que den rienda suelta a la creatividad.Simplicidad mediante la integración     Los analistas, arquitectos, desarrolladores, diseñadores, evaluadores y jefes de proyecto de la empresa pueden hacer uso de sus habilidades actuales para trabajar con herramientas conocidas en un entorno perfectamente integrado para establecer conexiones, comunicarse y colaborar.Código de calidad asegurado     Características eficaces como la automatización de compilación y la entrada validada lo ayudan a asegurarse de que los defectos y regresiones sean detectados con la mayor antelación posible.
¡POCOS RECURSOS!, NUnit es una herramienta que se encarga de analizar ensamblados generados por .NET, interpretar las pruebas inmersas en ellos y ejecutarlas. Utiliza atributos personalizados para interpretar las pruebas y provee además métodos para implementarlas. En general, NUnit compara valores esperados y valores generados, si estos son diferentes la prueba no pasa, caso contrario la prueba es exitosa.NUnit ofrece una interface simple que informa si una prueba o un conjunto de pruebas falló, pasó o fue ignorada.La última versión disponible de NUnit es la 2.2, que se encuentra en estado beta y la ultima versión estable es la 2.1, se pueden descargar de: http://www.nunit.org/download.html
 Proceso de planificación:   El usuario tendrá que escribir sus necesidades, definiendo las actividades que realizará el sistema.Numero de historias ??????Reuniones periodicas. ????Semanas de trabajo.  ????
El cliente en el sitio: se le dará poder para determinar los requerimientos, definir la funcionalidad.Programación en parejas: uno de los principios más radicales y en el que la mayoría de gerentes de desarrollo pone sus dudas
2. PROCESO CONTINUO EN LUGAR DE POR LOTES.Integración continua: permite al equipo hacer un rápido progreso implementando las nuevas características del software.Refactorización.Entregas pequeñas: evaluado en un ambiente real.
 3.Entendimiento compartidoDiseño simple: Se cumplen los  requerimientos.Metáfora vs UML.Propiedad colectiva del código.Estándar de codificación.
Programación extrema

Programación extrema

  • 1.
  • 2.
    QUE SE TEOCURRE CUANDO ESCUCHAS EL TERMINO PROGRAMACION EXTREMA?
  • 3.
    UN POCO DE HISTORIA…Se reconoce a Kent Beck como el que articuló y le dio nombre propio a esta propuesta, pero se conocen antecedentes de que Cunningham en 1989 forma un equipo de trabajo que usaba los principios y muchas de la s practicas que después adoptaría xp.
  • 4.
    Posteriormente, la consolidaciónde xp se logra con la publicación del libro de Kent Beck ¨Extreme Programming Explanied: embrace Change ¨ en 1999 con el cual Beck gano el premio Software Development Jolt Product Excellence.Kent Beck
  • 5.
    DEFINICIÓNLa programación extremao eXtreme Programming (xp) es un enfoque de la ingeniería de software y se diferencia de las metodologías tradicionales principalmente en que pone más énfasis en la adaptabilidad que en la previsibilidad. Los defensores de XP consideran que los cambios de requisitos sobre la marcha son un aspecto natural, inevitable e incluso deseable del desarrollo de proyectos.
  • 6.
    Retraso en laplanificación.Sistemas deteriorados.Tasa de defectos.Requisitos mal comprendidos.Cambios en el negocio.Falsa riqueza.Cambio de personal.PROBLEMAS EN EL DESARROLLO DE SOFTWARE
  • 7.
    OBJETIVOSLos objetivos xpson muy simples:La satisfacción del cliente.Potenciar al máximo el trabajo en grupo.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
    CARACTERISTICAS FUNDAMENTALESDesarrollo iterativoe incrementado. Pruebas unitarias continuas.Programación en pareja.Integración del equipo de programación con el cliente.Propiedad del código compartida.Simplicidad y comunicación.
  • 15.
    ABRIENDO LAS PUERTASA ALGO NUEVO:METODOLOGIAS AGILESADENTRANDONOS EN EL TEMA.
  • 16.
    METODOLOGIAS AGILES• Losindividuos y sus interacciones son más importantes que los procesos.• El software que funciona es más importante que la documentación exhaustiva.• La colaboración con el cliente en lugar de la negociación de contratos.• La respuesta delante del cambio en lugar de seguir un plan aislado.adaptabilidad de cualquier cambio
  • 17.
    ENTREMOS EN CONTEXTO1. Retroalimentación a escala fina:El principio de pruebas: se tiene que establecer un período de pruebas de aceptación del programa donde se definirán las entradas al sistema y los resultados esperados de estas entradas.Ambientes de Prueba (Unittestingframeworks).
  • 18.
  • 19.
    GRANDES PROYECTOSCreatividad liberada Use Visual Studio TeamFoundation Server 2010 para administrar los procesos de desarrollo de software y facilitar la colaboración, a fin de liberar a los equipos de trabajo de tareas mundanas de no codificación y brindarles más autonomía para que den rienda suelta a la creatividad.Simplicidad mediante la integración Los analistas, arquitectos, desarrolladores, diseñadores, evaluadores y jefes de proyecto de la empresa pueden hacer uso de sus habilidades actuales para trabajar con herramientas conocidas en un entorno perfectamente integrado para establecer conexiones, comunicarse y colaborar.Código de calidad asegurado Características eficaces como la automatización de compilación y la entrada validada lo ayudan a asegurarse de que los defectos y regresiones sean detectados con la mayor antelación posible.
  • 20.
    ¡POCOS RECURSOS!, NUnites una herramienta que se encarga de analizar ensamblados generados por .NET, interpretar las pruebas inmersas en ellos y ejecutarlas. Utiliza atributos personalizados para interpretar las pruebas y provee además métodos para implementarlas. En general, NUnit compara valores esperados y valores generados, si estos son diferentes la prueba no pasa, caso contrario la prueba es exitosa.NUnit ofrece una interface simple que informa si una prueba o un conjunto de pruebas falló, pasó o fue ignorada.La última versión disponible de NUnit es la 2.2, que se encuentra en estado beta y la ultima versión estable es la 2.1, se pueden descargar de: http://www.nunit.org/download.html
  • 21.
    Proceso deplanificación: El usuario tendrá que escribir sus necesidades, definiendo las actividades que realizará el sistema.Numero de historias ??????Reuniones periodicas. ????Semanas de trabajo. ????
  • 22.
    El cliente enel sitio: se le dará poder para determinar los requerimientos, definir la funcionalidad.Programación en parejas: uno de los principios más radicales y en el que la mayoría de gerentes de desarrollo pone sus dudas
  • 23.
    2. PROCESO CONTINUOEN LUGAR DE POR LOTES.Integración continua: permite al equipo hacer un rápido progreso implementando las nuevas características del software.Refactorización.Entregas pequeñas: evaluado en un ambiente real.
  • 24.
    3.Entendimiento compartidoDiseñosimple: Se cumplen los requerimientos.Metáfora vs UML.Propiedad colectiva del código.Estándar de codificación.