Extreme Programming Practices. Pair-Programming, Collective Code Ownership, Frequent Integration



Documentos relacionados
Propiedad Colectiva del Código y Estándares de Codificación.

Gestión Documental con Microsoft Office SharePoint Server 2007 (MOSS) Ignacio López - Ingeniero en Informática Software Architect en Alhambra-Eidos

CAPITULO V PLANIFICACIÓN Y GESTIÓN DEL PROYECTO

APOYANDO EL INGRESO, LA EVALUACION, Y LA PROMOCIÓN DE LOS ESTUDIANTES CON DISCAPACIDAD INTELECTUAL

Sistema Control de Gestión de Venta. Documento Visión y Alcances Proyecto para Brinks Chile

XP- EXTREME PROGRAMMING

Qué es Scrum? Basado en el texto Explicando Scrum a mi abuela de Jorge Serrano - MVP Visual Developer - Visual Basic

COPPEL MANUAL TÉCNICO MCC DE SISTEMAS PROGRAMACIÓN DESCRIPCIÓN DEL PROCESO DE ARQUITECTURA DE SOFTWARE

DIRECTIVA Y NORMAS PARA LA ELABORACIÓN DE TRABAJOS GRUPALES

NORMA ISO DE RIESGOS CORPORATIVOS

CAPÍTULO 2 PROBLEMÁTICA, OBJETIVOS Y ALCANCE. El presente capítulo describe la problemática que la agencia presenta en su área de servicio.

Unidad 9. Implementación. M.C. Martín Olguín

INSTRUCTIVO DEL COMANDO MAKE

Cuál es el objetivo del Mercadeo Viral

PROCEDIMIENTO OPERATIVO DESARROLLAR SISTEMAS INFORMÁTICOS PDO-COCTI-DTIN-04

4 a 8 semanas. Equipos pequeños 5 a 9 miembros. Informal. Cara a cara. En cada entrega el cliente dará su aportación. Sólo documentación básica

ESCUELA DE ADMINISTRACIÓN

Administración de proyectos. Organizar, planificar y programar los proyectos de software

Solución: Descargar e instalarse el componente desde la página Web de Microsoft:

POLÍTICAS PARA EL DESARROLLO DE SISTEMAS INFORMÁTICOS.

PLANIFICADOR DE OBJETIVOS

DESARROLLO DE SOFTWARE DE CALIDAD: EXTREME PROGRAMMING Y HERRAMIENTAS OPENSOURCE. Mª Carmen Bartolomé. mcbartolome@qualityobjects.

Instalación de la Simbología MEJ por etapas

Actividades para mejoras. Actividades donde se evalúa constantemente todo el proceso del proyecto para evitar errores y eficientar los procesos.

Norma ISO 9001:2015. Cuáles son los cambios presentados en la actualización de la Norma?

Diseñado especialmente por Orgatec EMPOWERMENT

Hacer Realidad BPM en su Organización ADOPTAR BPM A PARTIR DE UN PROYECTO O NECESIDAD DE AUTOMATIZACIÓN

VENTAJAS Y DESVENTAJAS DE LAS TECNOLOGIAS

Deberemos escoger de nuestro equipo humano un responsable de la implementación (si no queremos hacerlo personalmente).

Instructivo: Diagnóstico Interno y Externo por análisis FODA

FORMACIÓN DE EQUIPOS DE E-LEARNING 2.0 MÓDULO DE DISEÑO Y PRODUCCIÓN DE MATERIALES UNIDAD 6 B

La enseñanza mediada por tecnología María Jorgelina Plaza SEADI

Los Ambientes Virtuales de Aprendizaje

Ventajas del software del SIGOB para las instituciones

Gestión de usuarios y cursos del EVA

ACTIVACIÓN DE COMPUTADORES PORTÁTILES PARA EMPLEADOS ADMINISTRATIVOS Y PERSONAL ACADÉMICO

ISO Anexo A OBJETIVOS DE CONTROL Y CONTROLES DE REFERENCIA DANIELA RAMIREZ PEÑARANDA WENDY CARRASCAL VILLAMIZAR

REGISTRO DE USUARIOS Y CURSOS

ITACA - Entrada al sistema ITACA: Describe como entrar al sistema y los problemas típicos asociados al acceso a un sistema informático

Administración Colaborativa de Riesgos

Proceso Unificado de Rational

INGENIERÍA DE SOFTWARE ADMINISTRACION DE CONFIGURACIONES Rubby Casallas, Juan Pablo Quiroga, Andrés Yie

AREAS FUNCIONALES DE LA ORGANIZACIÓN. Una connotación genérica

PROCEDIMIENTO ADMINISTRACIÓN REDES SOCIALES

MATERIA: DISCAPACIDAD E INTEGRACIÓN

Índice 1 Instalación de la herramienta 2 Descripción de la herramienta 2 Arranque de la aplicación 3 Proyecto 4 Diagrama de clases 5

Caso práctico de Cuadro de Mando con Tablas Dinámicas

(diciembre 13) <Fuente: Archivo interno entidad emisora> IMPRENTA NACIONAL DE COLOMBIA

Nivel Básico I Prof. Mariano Correa

Licenciatura en Computación

Es un software instalado en los equipos asignados a los Centros de Consulta con el objetivo de:

El Colegio Americano de Tabasco es una organización particular fundada en 1985.

CAPÍTULO 5. CONCLUSIONES. objetivo descrito inicialmente, el que consistió en establecer las bases necesarias para aplicar

Guía de Gestión de Software Educativo

PLANIFICACIÓN DE LA DOCENCIA UNIVERSITARIA GUÍA DOCENTE DISEÑO DE SOFTWARE Y METODOLOGÍAS DE DESARROLLO

Encuentro Internacional sobre

UNIVERSIDAD DE ORIENTE UNIVO FACULTAD DE CIENCIAS ECONÓMICAS

EXAV. Manejo del Ambiente Controlado. Versión 1.2

ARCHIVOS DE SONIDO, COMUNICACIÓN ORAL Y AUTOEVALUACIÓN Elisa Bernáldez 1 Halden vgs

Grupo de Trabajo del Tratado de Cooperación en materia de Patentes (PCT)

CIMA. MANUAL DE USUARIO

Historia de Higiene Oral

Motores Eléctricos Eficiencia, Factor de Potencia y Carga.

LECCIÓN 10 DASHBOARD. Cómo añadir Gráficos al Dashboard?

Aplicación de la metodología de las 5 S al diseño de tarjetas de

Dando nuestros primeros pasos con 3DS Max. 1. Objetivos

Política de Gestión Integral de Riesgos Compañía Sud Americana de Vapores S.A.

NORMA ISO 9001:2008. SISTEMAS DE GESTIÓN DE CALIDAD. REQUISITOS

SPW. HR Consulting. Workers. Especialistas en Productividad Laboral y Eficiencia Organizativa en RR.HH.

GESTIÓN EXCELENTE EN EL SECTOR SANITARIO 1.GESTIÓN DEL CONOCIMIENTO EN ORGANIZACIONES SANITARIAS

PREGUNTAS Y RESPUESTAS FRECUENTES

El objetivo principal del presente curso es proporcionar a sus alumnos los conocimientos y las herramientas básicas para la gestión de proyectos.

Gestión de proyectos

CAPITULO 01 Trabajando con -AMsi-

Visual Studio 2008 es el conjunto de herramientas de

Tema 8: Gestión de la Configuración

Programa de Apoyo a la Gestión del Clima y la Convivencia Escolar. Documento para la Asesoría Técnico Pedagógica

Cómo Desarrollar un plan Estratégico

caso de éxito Entrepids Entrepids y Peer 1 Hosting se unen para generar un gran impulso al ecommerce en Latinoamérica

Estudio de uso de Miríada X. Encuesta enero-febrero 2016 Muestra: 2760 alumnos

CÓMO LA MALA COMUNICACIÓN AFECTA EL BUEN DESARROLLO Y EL ÉXITO DE UNA EMPRESA? VALENTINA VELÁSQUEZ VALLEJO ASESOR: ALEXANDER VELÁSQUEZ

MANUAL DE GESTIÓN DEL PROCESO ENSEÑANZA-APRENDIZAJE Y EVALUACIÓN DEL DESEMPEÑO DOCENTE

Planificación en Team Foundation Server 2010

Jornada informativa Nueva ISO 9001:2008

Programa en Microsoft Visual Basic 6.0 para el análisis de riesgos eléctricos en oficinas y centros de cómputo. López Rosales, Juan Carlo.

INTELIGENTE Y VERSÁTIL

PROCEDIMIENTO ESPECÍFICO. Código G Edición 0

INTRODUCCION. Cómo. Ayudar. Estudiar. Nuestros. Hijos?

Indicaciones para los parques candidatos a la Carta

Estampador de la industria automotriz reemplaza seis sistemas independientes con un ERP completo basado en la nube

Transcripción:

Extreme Programming Practices Pair-Programming, Collective Code Ownership, Frequent Integration

12 Prácticas de XP 4 Prácticas de Codificación: estándares, vocabulario, refactoring, diseño simple. 4 Prácticas de Desarrollo Adoptar TDD Practicar Pair Programming. Adoptar propiedad colectiva del código. Integrar contínuamente. 4 Prácticas de Negocio: cliente al equipo, planificar, versiones regulares, trabajo a paso sostenible.

12 Prácticas de XP

Pair Programming Todo código destinado a producción es creado por dos personas trabajando juntas en un mismo computador. PP mejora la calidad del software sin impactar la fecha de entrega. Es contra-intuitivo, pero dos personas trabajando juntas agregarán tanta funcionalidad como dos trabajando por separado, excepto que la calidad será mucho mayor. La mejor manera es sentarse uno al lado del otro frente al monitor. Uno teclea y piensa tácticamente en el método que se está escribiendo (driver), mientras el otro piensa estratégicamente cómo ese método calza en la clase (navigator). Se van rotando en los roles continuamente. Dentro del equipo, los pares cambian continuamente.

Pair Programming Ventajas: Mejora la calidad del software desarrollado, tanto a nivel de diseño y limpieza (simple design & refactoring), como de funcionalidad correcta (TDD). Conocimiento compartido: respaldo si un desarrollador se ausenta. Refuerzo de buenas prácticas de programación y uso de los estándares definidos por el equipo. Facilita el conocimiento colectivo del código (otra práctica XP).

Pair Programming Referencia por excelencia: www.pairprogramming.com Otros: www.extremeprogramming.org/rules/pair.html Un ejercicio: PairDraw industriallogic.com/games/pairdraw.html

Collective Code Ownership Todo el código del sistema pertenece a todo el equipo. Responsabilidad compartida. Se evitan asignaciones personales, aún cuando en la práctica cada uno se focaliza en ciertos módulos. Si alguien requiere hacer un cambio a una clase, la puede hacer, pudiendo así conocerla. Obviamente, se soporta con TDD (pruebas unitarias). Reemplaza la dependencia de un arquitecto (quien igualmente puede tener una visión parcial e incluso errónea).

Collective Code Ownership Ventajas: Dado que todos conocen el código, fomenta el cumplimiento de estándares y de diseño simple. Fomenta refactoring: cuando alguien revisa código de otro, lo puede mejorar. Conocimiento compartido: respaldo si un desarrollador se ausenta. Fomenta la integración frecuente (otra práctica XP).

Frequent Integration Integrar nuevo código y tests al repositorio central apenas estén OK. Depende de estructura de control de código (version control). Las integraciones deben estar testeadas por desarrolladores. Los elementos integrados deben ser simples, de modo de siempre estar lo más cerca posible de la versión más actualizada funcionando.

Frequent Integration Ventajas: Evitar o disminuir procesos de integración tediosos cuando la frecuencia es baja. Evitar sorpresas de funcionalidades y/o diseño. Evitar desviaciones muy grandes cuando se realizan experimentos. Evitar los freezes : congelamiento de versiones para ser puestas en producción, perdiendo el potencial avance de los desarrolladores en funcionalidades importantes.

Version Control Repositorio que mantiene proyectos con su código fuente estructurado en los mismos módulos y jerarquía del proyecto. Funciones: Check Out. Check In. Show Differences. Get Current/Latest version. Manejo de vistas o workspaces (subconjuntos de código). Manejo de código en estructuras de árbol. Features: Control por usuario. Métricas.

Version Control Productos CVS, WinCVS (Code Version System) Visual Source Safe (Microsoft) SourceOffSite (SourceGear) aplic. cliente. VS Team System + Team Foundation Server (Microsoft). Perforce (P4).

Source Off Site

Daily Build El Daily Build es una compilación automática, diaria y completa del código completo de un sistema. Automática: porque se programa una compilación a una hora fija al día utilizando algún tipo de proceso calendarizado. Diaria: o aún más frecuentemente. Mientras más frecuente, más confiable. Completa: ya que es posible que el software tenga diferentes versiones. Versiones de múltiples lenguajes, o múltiples plataformas, o incluso versiones full y express o light. Hay que compilar todas las versiones y cada compilación debe partir desde cero, evitando la posibilidad de que el compilador juegue con compilaciones incrementales.

Daily Build Beneficios: Cuando se corrige un bug, los testers cuentan con una nueva versión rápidamente. Los desarrolladores pueden despreocuparse de preparar ellos las versiones de distintas plataformas y que sus cambios no romperán la compilación. Los cambios chequeados son más confiables y trazables. Roles externos (comercial, JP, ) siempre cuentan con la última versión disponible para demos. Al mantener un histórico de versiones, se pueden usar para rastrear un bug, descubriendo cuándo apareció. Permite rastrear el trabajo de los desarrolladores cuando un tester encuentra un error en alguna versión. Referencia: www.joelonsoftware.com/articles/fog0000000023.html