Este documento presenta una introducción a las prácticas ágiles de desarrollo de software, en particular al enfoque eXtreme Programming (XP). Explica brevemente conceptos clave de XP como desarrollo incremental, tests de cliente, programación en parejas y planificación iterativa. También resume técnicas como análisis causal, refactorización y Behavior Driven Development y proporciona ejemplos ilustrativos de su aplicación. Por último, menciona la gestión de entornos de desarrollo ágiles y métricas de calidad de có
Introducción al framework Scrum para la gestión de productos TIC: defunciones, roles, proceso Scrum, ceremonias, controles visuales, composición de los equipos de desarrollo.
Introducción al framework Scrum para la gestión de productos TIC: defunciones, roles, proceso Scrum, ceremonias, controles visuales, composición de los equipos de desarrollo.
Introducción al framework Scrum enfocado a la gestión de proyectos de desarrollo de producto software: principios, roles, artefactos, ceremonias, proceso y gestión de riesgos en Scrum.
Introducción al marco de gestión ágil Scrum. Presentación de los valores, principios, roles, ceremonias y ciclo de vida de gestión del proyecto en Scrum.
Especializado en Gestión de Proyectos bajo las buenas practicas del PMBOK(PMI®) , metodología PRINCE2® y Gestión de servicios enfocados a ITIL.
Cuento con la siguientes certificaciones a nivel internacional :
PRINCE2® Practitioner Certificate in Project Management, Scrum Fundation Certified (SFC), Scrum Developer Certified(SDC), Scrum Master Certified (SMC), Scrum Product Owner Certified (SPOC) SCRUMstudy Certified Trainer (SCT), Cobit5 Foundation ,Agile Service Projects, Agile Scrum, Cloud Computing, ITIL® Service Strategy , ITIL® Service Design, ITIL® Service Transition, ITIL® Service Operation, ITIL® Continual Service Improvement, ITIL® Managing Across the Lifecycle, ITIL® Expert, Information Security ISO/IEC 27002, Secure Cloud Services, Diplomado en Gestión de Proyectos bajo las buenas practicas del PMBoK.
Charla introductoria sobre Scrum que di como parte del Conversatorio Agil organizado por la Comunidad Agile Peru, realizado en las instalaciones de la RENIEC el 3 de junio de 2009
Shift Left: En busca del éxito del softwareMarco Avendaño
Las organizaciones en la actualidad se encuentran en el reto de prosperar en un mundo digital y generar soluciones que satisfagan necesidades de las personas que son cada vez más exigentes. Ante esta situación, se hace necesario un enfoque de servicio que acerque el conocimiento a sus clientes, que reduzca los costes, mejore la experiencia de los clientes y, lo que es más importante, que equilibre la tecnología y la conexión humana. Adoptar una estrategia basada en "Shift Left" brinda la posibilidad de responder a estas necesidades.
“Shift Left” es considerada una práctica originada en el software delivery, cuyo objetivo es mejorar la calidad y la rentabilidad trasladando las actividades críticas lo antes posible en el ciclo de vida del desarrollo de un producto. En la presente charla se dará a conocer las principales características, beneficios y prácticas de “Shift Left”.
Una experiencia práctica de Scrum a través del aprendizaje basado en proyecto...Sergio Yazyi
Scrum es un marco de trabajo para la gestión ágil de proyectos de creciente interés en distintos campos de aplicación. Para asimilar sus principios y prácticas no basta una formación conceptual sino que es necesario utilizar un enfoque práctico que permita ejercitarlo a través del “aprender haciendo”.
En el presente trabajo se analiza una experiencia de taller en línea, donde se simula la aplicación de Scrum en un proyecto de alcance limitado mediado por TIC con un equipo distribuido. Se fundamentan conceptualmente los distintos elementos que convergen en la misma: la metodología de aprendizaje basado en proyectos, el trabajo en equipo distribuido y el marco de trabajo Scrum. Seguidamente, se presenta el estudio de caso de la experiencia desarrollada extrayendo de la misma un patrón pedagógico en el que se identifican los elementos clave que determinaron su éxito con el fin de facilitar su reproducción.
El resultado de este análisis permitirá apreciar el potencial para trasladar esta modalidad de aprendizaje a otras situaciones con objetivos diferentes pero con igual necesidad de interacción grupal y contexto distribuido, al mismo tiempo que percibir el potencial de Scrum para ser incorporado dentro de una estrategia didáctica de aprendizaje basado en proyectos, por su simplicidad y sus importantes efectos para el aprendizaje en equipo y desarrollo de competencias transversales.
Design QA: las grandes experiencias no ocurren por accidente Lucía Bustamante
Resumen de la charla:
Cómo impacta el rol del Diseñador UX en el resultado del desarrollo y cómo deben trabajar los equipos para producir experiencias de calidad.
Para conocer un poco más de la trayectoria de
Lucía Bustamante:
Diseñadora de Productos Digitales con más de 6 años de experiencia en la industria del software, es también Diseñadora Industrial por lo cual tiene una constante visión centrada en el usuario. Actualmente trabaja para una startup de UK como Product Designer, siempre buscando crear soluciones que agreguen claro valor al negocio y a los usuarios y una mirada enfocada a desarrollo de equipos y mejora de procesos.
Lidera las comunidades MujeresIT y Dribbble Meetup Montevideo.
LinkedIn: https://www.linkedin.com/in/luciabustamante/
Twitter: @lubustaman
Abstracta en redes:
YouTube: https://www.youtube.com/c/AbstractaUS
Twitter Abstracta Tech Talk: https://twitter.com/AbstractaTech
Twitter Abstracta Company: https://twitter.com/AbstractaUS
LinkedIn: https://www.linkedin.com/company/abstracta/
Prototipado Agil por Mateu Batle SastreIPAE_INNOVA
Prototipado Agil, por Mateu Batle Sastre en el Seminario Avanzado Modelos de Gestión de la Innovación durante la Semana de la Innovación - Innotec 2014 organizado por el Centro de Innovación de IPAE
Introducción al framework Scrum enfocado a la gestión de proyectos de desarrollo de producto software: principios, roles, artefactos, ceremonias, proceso y gestión de riesgos en Scrum.
Introducción al marco de gestión ágil Scrum. Presentación de los valores, principios, roles, ceremonias y ciclo de vida de gestión del proyecto en Scrum.
Especializado en Gestión de Proyectos bajo las buenas practicas del PMBOK(PMI®) , metodología PRINCE2® y Gestión de servicios enfocados a ITIL.
Cuento con la siguientes certificaciones a nivel internacional :
PRINCE2® Practitioner Certificate in Project Management, Scrum Fundation Certified (SFC), Scrum Developer Certified(SDC), Scrum Master Certified (SMC), Scrum Product Owner Certified (SPOC) SCRUMstudy Certified Trainer (SCT), Cobit5 Foundation ,Agile Service Projects, Agile Scrum, Cloud Computing, ITIL® Service Strategy , ITIL® Service Design, ITIL® Service Transition, ITIL® Service Operation, ITIL® Continual Service Improvement, ITIL® Managing Across the Lifecycle, ITIL® Expert, Information Security ISO/IEC 27002, Secure Cloud Services, Diplomado en Gestión de Proyectos bajo las buenas practicas del PMBoK.
Charla introductoria sobre Scrum que di como parte del Conversatorio Agil organizado por la Comunidad Agile Peru, realizado en las instalaciones de la RENIEC el 3 de junio de 2009
Shift Left: En busca del éxito del softwareMarco Avendaño
Las organizaciones en la actualidad se encuentran en el reto de prosperar en un mundo digital y generar soluciones que satisfagan necesidades de las personas que son cada vez más exigentes. Ante esta situación, se hace necesario un enfoque de servicio que acerque el conocimiento a sus clientes, que reduzca los costes, mejore la experiencia de los clientes y, lo que es más importante, que equilibre la tecnología y la conexión humana. Adoptar una estrategia basada en "Shift Left" brinda la posibilidad de responder a estas necesidades.
“Shift Left” es considerada una práctica originada en el software delivery, cuyo objetivo es mejorar la calidad y la rentabilidad trasladando las actividades críticas lo antes posible en el ciclo de vida del desarrollo de un producto. En la presente charla se dará a conocer las principales características, beneficios y prácticas de “Shift Left”.
Una experiencia práctica de Scrum a través del aprendizaje basado en proyecto...Sergio Yazyi
Scrum es un marco de trabajo para la gestión ágil de proyectos de creciente interés en distintos campos de aplicación. Para asimilar sus principios y prácticas no basta una formación conceptual sino que es necesario utilizar un enfoque práctico que permita ejercitarlo a través del “aprender haciendo”.
En el presente trabajo se analiza una experiencia de taller en línea, donde se simula la aplicación de Scrum en un proyecto de alcance limitado mediado por TIC con un equipo distribuido. Se fundamentan conceptualmente los distintos elementos que convergen en la misma: la metodología de aprendizaje basado en proyectos, el trabajo en equipo distribuido y el marco de trabajo Scrum. Seguidamente, se presenta el estudio de caso de la experiencia desarrollada extrayendo de la misma un patrón pedagógico en el que se identifican los elementos clave que determinaron su éxito con el fin de facilitar su reproducción.
El resultado de este análisis permitirá apreciar el potencial para trasladar esta modalidad de aprendizaje a otras situaciones con objetivos diferentes pero con igual necesidad de interacción grupal y contexto distribuido, al mismo tiempo que percibir el potencial de Scrum para ser incorporado dentro de una estrategia didáctica de aprendizaje basado en proyectos, por su simplicidad y sus importantes efectos para el aprendizaje en equipo y desarrollo de competencias transversales.
Design QA: las grandes experiencias no ocurren por accidente Lucía Bustamante
Resumen de la charla:
Cómo impacta el rol del Diseñador UX en el resultado del desarrollo y cómo deben trabajar los equipos para producir experiencias de calidad.
Para conocer un poco más de la trayectoria de
Lucía Bustamante:
Diseñadora de Productos Digitales con más de 6 años de experiencia en la industria del software, es también Diseñadora Industrial por lo cual tiene una constante visión centrada en el usuario. Actualmente trabaja para una startup de UK como Product Designer, siempre buscando crear soluciones que agreguen claro valor al negocio y a los usuarios y una mirada enfocada a desarrollo de equipos y mejora de procesos.
Lidera las comunidades MujeresIT y Dribbble Meetup Montevideo.
LinkedIn: https://www.linkedin.com/in/luciabustamante/
Twitter: @lubustaman
Abstracta en redes:
YouTube: https://www.youtube.com/c/AbstractaUS
Twitter Abstracta Tech Talk: https://twitter.com/AbstractaTech
Twitter Abstracta Company: https://twitter.com/AbstractaUS
LinkedIn: https://www.linkedin.com/company/abstracta/
Prototipado Agil por Mateu Batle SastreIPAE_INNOVA
Prototipado Agil, por Mateu Batle Sastre en el Seminario Avanzado Modelos de Gestión de la Innovación durante la Semana de la Innovación - Innotec 2014 organizado por el Centro de Innovación de IPAE
Buenas prácticas para la construcción de softwareIker Canarias
Esta presentación sobre "buenas prácticas en la construcción de software" se basa principalmente en los "Principios de buena programación" de Christopher Diggins. Consejos generales sobre buenas prácticas, pero centrados en Java al final de la presentación.
Las organizaciones que desarrollan software que han adoptado métodos ágiles, se encuentran con un fuerte cambio de paradigma que afecta a las otras funciones de la organización. ¿Qué podemos hacer para enfrentarlo?
Vision práctica del BDD (Behaviour Driven Design) para agilizar el proceso de...Software Guru
En esta ponencia vamos a presentar en la práctica el uso de BDD en el desarrollo, discutiremos cómo implementar BDD y presentar los beneficios alcanzados con su uso.
Presentada por: Marcelo Nascimiento
24 Horas Español 2014 - ALM para el desarrollo de base de datos SQL ServerJohn Bulla
El método de Microsoft para administrar el ciclo de vida de las aplicaciones (Application Lifecycle Management, ALM) proporciona un entorno flexible y ágil que se adapta a las necesidades del equipo, elimina barreras entre roles y optimiza los procesos, de manera que puede centrarse en ofrecer software de gran calidad de un modo más rápido y eficiente. En esta sesión nos concentraremos en los proyectos de base de datos que toman una gran importancia en un mundo en el que el desarrollo de software es cada vez más importante para el éxito de un negocio.
Caminando hacia la agilidad con Visual Studio 2010Rodrigo Corral
En esta sesión veremos, en base a escenarios reales, como TFS facilita la adopción de una metodología ágil de desarrollo de software y lleva a los equipos de desarrollo buenas prácticas de ingeniería del software que proporcionan un claro retorno de la inversión y una ventaja competitiva basada en el control explícito de los proyectos y la detección temprana de las fugas de rendimiento por problemas de calidad, evitando la burocracia y facilitando las tareas que el desarrollador realiza.
Los Modelos Prescriptivos de Proceso definen un conjunto distinto de actividades, acciones, tareas, flujo de trabajo, fundamentos y productos de trabajo que se requieren para software de alta calidad.
Sesión 3: Modelos prescriptivos de proceso de softwareLuis Fernández
Los Modelos Prescriptivos de Proceso definen un conjunto distinto de actividades, acciones, tareas, flujo de trabajo, fundamentos y productos de trabajo que se requieren para software de alta calidad.
Proyecto de negocio de AddHunters, un modelo de negocio de marketing movil basado en advergaming. Presentado como fin de Master MBA Executive en grupo.
1. David de Francisco Marcos
Msc, MBA, PMP y CSM
XP y Entornos
de Desarrollo
Ágil
Máster en Informática
Universidad de Valladolid
2014-2015
Sesión 3
david.de.fco@gmail.com
www.linkedin.com/in/daviddefco
3. Desarrollar
Análisis Incremental
Tests de Cliente
TDD
Refactorización
Diseño Simple
Desarrollo Incremental
Spikes
Optimización
Tests Exploratorios
Prácticas XP
Pensar
Programación Pares
Trabajo con Energía
Controles Visuales
Análisis Causa – Efecto
Retrospectivas
Colaborar
Confianza
Sentarse Juntos
Cliente Involucrado
Daily Meetings
Estándares de Código
Demos Continuas
Informar y Comunicar
Planificar
Visión
Planificar Entregas
Juegos de Planificación
Gestión de Riesgos
Historias
Backlogs
Entregar
Definición de Hecho
No Bugs
Control de Versiones
Build en 10 Minutos
Autoría Compartida
Documentación
4. Desarrollar
Análisis Incremental
Tests de Cliente
TDD
Refactorización
Diseño Simple
Desarrollo Incremental
Spikes
Optimización
Tests Exploratorios
Prácticas XP
Pensar
Programación Pares
Trabajo con Energía
Controles Visuales
Análisis Causa – Efecto
Retrospectivas
Colaborar
Confianza
Sentarse Juntos
Cliente Involucrado
Daily Meetings
Estándares de Código
Demos Continuas
Informar y Comunicar
Planificar
Visión
Planificar Entregas
Juegos de Planificación
Gestión de Riesgos
Historias
Backlogs
Entregar
Definición de Hecho
No Bugs
Control de Versiones
Build en 10 Minutos
Autoría Compartida
Documentación
5. Análisis Causa - Efecto
5 Whys
Para llegar al fondo de algo
continuar preguntando por qué
hasta que llegamos a un motivo
de peso
Diagrama de Raspa de Pez
1) Dibujar el problema a resolver
2) Categorizar las causas
3) Detallar las causas
4) Analizar causas principales
5) Buscar correlaciones entre ellas
6. Ejemplo Cucumber
Característica: Proceso de login de mi tienda online
Como cliente de la tienda online
Quiero poder autenticarme en la tienda
De forma que pueda acceder al contenido de la aplicación y mi
autenticación quede registrada a lo largo de toda la sesión
Antecedentes:
Dado que me encuentro en la vista de autenticacion de la Web
Y que no estoy autenticado dentro de la aplicación
Escenario: proceso de autenticación
Esquema del escenario: autenticación
Cuando relleno el campo de identificador de usuario con el valor
<username>
Y relleno el campo de password con el valor <password>
Entonces al pulsar en el botón de acción debería estar en la
pagina <page>
Ejemplos:
| username | password | page |
| user01 | claveerronea | LoginPage |
| inexistente| user01pass | LoginPage |
| super | user01pass | RootPage |
TDD y BDD
TDD: Ciclo rápido de:
Prueba
Desarrollo
Refactorización
Reduce el efecto de errores y
mejora el diseño del código
Behaviour Driven Development
Lleva TDD un paso más allá, al
diseño guiado por dominio,
involucrando a los BSE en los
procesos de test / aceptación
7. Refactorización
Refactorizar es cambiar el
código fuente sin alterar su
funcionalidad.
Beneficios
Mejora el diseño del software
Contribuye a detectar errores
Facilita la comprensión del SW
Ayuda a programar más rápido
Imagen obtenida de
www.flickr.com/photos/danisarda
8. Ejemplo Refactorización
public class CalcSal {
private static final int meses = 12;
private static final double ss = 6.3;
private static final double imp = 14;
public static double calcSalNet(double s) {
if (s < 0) throw new IllegalArgumentException();
double sMens = s/meses;
return sMens - (s/meses * (ss/100)) - (sMens * (imp/100));
}
}
9. Ejemplo Refactorización
public class Salario {
private static final int CUOTAS_ANUALES_DE_SEGURIDAD_SOCIAL = 12;
private static final int NUMERO_DE_PAGAS_ANUALES = 12;
private static final double PORCENTAJE_RETENCION_SEGURIDAD_SOCIAL = 6.3;
private static final double PORCENTAJE_RETENCION_IRPF = 14;
public static double calcularSalarioMensualNeto(double salarioAnualBruto) {
validarCifraDeSalario(salarioAnualBruto);
double salarioMensualBruto = salarioAnualBruto / NUMERO_DE_PAGAS_ANUALES;
return salarioMensualBruto
- getRetencionesMensualesSeguridadSocial(salarioAnualBruto)
- getRetencionesMensualesIrpf(salarioMensualBruto);
}
private static void validarCifraDeSalario(double salarioParaValidar) {
if (salarioParaValidar < 0) throw new IllegalArgumentException(
"El valor de un salario no puede ser menor que 0"
);
}
private static double getRetencionesMensualesSeguridadSocial(double salarioAnualBruto) {
double decimalRetencionSeguridadSocial = PORCENTAJE_RETENCION_SEGURIDAD_SOCIAL / 100;
return (salarioAnualBruto / CUOTAS_ANUALES_DE_SEGURIDAD_SOCIAL) * decimalRetencionSeguridadSocial;
}
private static double getRetencionesMensualesIrpf(double salarioMensualBruto) {
double decimalRetencionIrpf = PORCENTAJE_RETENCION_IRPF / 100;
return (salarioMensualBruto * decimalRetencionIrpf);
}
}
15. Próximos Pasos:
1) Encuesta: https://es.surveymonkey.com/s/WJSJVNS
2) Bibliografía y PPTs en la plataforma y Slideshare
3) Cualquier duda / comentario es bienvenido
David de Francisco Marcos
Msc, MBA, PMP y CSM
david.de.fco@gmail.com
www.linkedin.com/in/daviddefco
Gracias por la Atención