Agile Venture - Proyecto de mejora de los procesos de desarrollo del software.

15
Agile Venture Propuesta sobre cómo evolucionar y mejorar los procesos de desarrollo del software Juan José del Campo Bécares

description

Agile Venture - Presentación de un proyecto de mejora de procesos basado en la Aplicación de metodologías ágiles y la automatización del ciclo de vida del software.

Transcript of Agile Venture - Proyecto de mejora de los procesos de desarrollo del software.

Page 1: Agile Venture - Proyecto de mejora de los procesos de desarrollo del software.

Agile Venture

Propuesta sobre cómo evolucionar y mejorar

los procesos de desarrollo

del software

Juan José del Campo Bécares

Page 2: Agile Venture - Proyecto de mejora de los procesos de desarrollo del software.

Definición del proyecto poco precisa.

El alcance y objetivos del proyecto podrían variar una vez iniciado el proyecto.

… a qué nos recuerda ésto?

Especificaciones del cliente: “ … Control de versiones.

Entorno de integración continua.

Metodologías ágiles, ver como incorporar en nuestra organización.

… … Es lo que tenemos que decidir, el viernes te paso un correo con las opciones que estamos planteando ...”

AV: El Proyecto

Juan José del Campo Bécares

Page 3: Agile Venture - Proyecto de mejora de los procesos de desarrollo del software.

AV: Enfoque…

Obj: Ayudar a decidir.

Obj: Refinar las opciones.

Demostración para transmitir conocimiento .

Conseguir el “WOW!”.

Presentación y Preparación cortas. Priorizar.

Pablo está malito…

Divertirme. Éxito: Un segundo encuentro.

Enfoque AV

Juan José del Campo Bécares

Page 4: Agile Venture - Proyecto de mejora de los procesos de desarrollo del software.

Metodologías Ágiles

Obj: Ayudar a decidir.

Obj: Refinar las opciones.

Demostración para transmitir conocimiento .

Conseguir el “WOW!”.

Presentación y Preparación cortas. Priorizar.

Pablo está malito…

Divertirme. Éxito: Un segundo encuentro.

AV: Enfoque Ágil

Prioridad: satisfacer al cliente.

Aceptamos que los requisitos cambien.

Entregamos software funcional frecuentemente. Medida de progreso.

Excelencia técnica. Mejora continua.

La simplicidad, maximizar el valor del trabajo no realizado.

Desarrollo sostenible en el tiempo.

Individuos motivados. Comunicación personal.

Enfoque AV

Juan José del Campo Bécares

Page 5: Agile Venture - Proyecto de mejora de los procesos de desarrollo del software.

Metodologías ágiles (Frameworks)

SCRUM

DSDM

KANBAN

DevOps

Nuevos Desarrollos. Control Visual 5-10 personas

SCRUM + Preproyecto + Postproyecto

Mantenimiento, Operaciones Reducir tareas “En proceso”

CI, CD, CM, Automatización, Configuration as

Software

FDD

Lean S D

XP Cristal

AUP

Juan José del Campo Bécares

Page 6: Agile Venture - Proyecto de mejora de los procesos de desarrollo del software.

Metodologías ágiles: SCRUM

Sencilla: Corto alcance, estructura de equipo simple, escasa documentación...

Concreta: Pocos principios claros y fáciles de seguir.

Visible: Control visual: “Visual Radiators”.

Efectiva: Resultados desde el primer mes de aplicación.

Juan José del Campo Bécares

Page 7: Agile Venture - Proyecto de mejora de los procesos de desarrollo del software.

SCRUM: Implantación

• Big Bang!!!!

• Progresiva Horizontalmente.

• Progresiva Verticalmente. Iterativa.

Estrategia

• Nuevo equipo.

• Nuevos desarrollos, equipo experto y motivado.

• Necesidad de alineamiento con producto.

• Proyecto con alta incertumbre.

• Necesidad de innovación en sus procesos.

Candidato

Juan José del Campo Bécares

Page 8: Agile Venture - Proyecto de mejora de los procesos de desarrollo del software.

SCRUM Tradicional

SCRUM: Cambio Organización

• Microgestión, baja eficiencia. • Falta de compromiso. • Falta de motivación. • Desarrollo no accede a producto. • Calidad tarde.

• Seguimiento visual. • Equipo autogestionado,

motivación y compromiso. • Desarrollo accede a producto. • Calidad desde incepción. • Proceso: Scrum Master Juan José del Campo Bécares

Page 9: Agile Venture - Proyecto de mejora de los procesos de desarrollo del software.

Integración Continua: Fases

• Continuous Delivering

• Deploy Automation

• Acceptance Tests (BDD)

• Integration Tests

• Code Review

• Metrics

• Build + UT (TDD)

• Fase 3: Escalabilidad

• Fase 2: Soporte a Produto

• Fase 1: • Calidad del código

Juan José del Campo Bécares

Page 10: Agile Venture - Proyecto de mejora de los procesos de desarrollo del software.

Integración Continua: Herramientas

•Tuenti – “Flow”, CloudBees, Atlassian *

•Chef, Puppet, Ansible, Vagrant

•jBehave, Cucumber, Lettuce

•TestNG, SOAPUI, Mocha, Selenium WebDriver

•Gerrit, Reviewboard

•Cobertura, Checkstyle,PMD, FindBugs, CPD…

•Jenkins (CIAAS), Nexus, JUNIT, Mockito,

• Continuous Delivering

• Deploy Automation

• Acceptance Tests (BDD)

• Integration Tests

• Code Review

• Metrics

• Build + UT (TDD) Juan José del Campo Bécares

Page 11: Agile Venture - Proyecto de mejora de los procesos de desarrollo del software.

Integración Continua: Fase 1

• Continuous Delivering

• Deploy Automation

• Acceptance Tests (BDD)

• Integration Tests

• Code Review

• Metrics

• Build + UT (TDD)

Database

Database

Juan José del Campo Bécares

Page 12: Agile Venture - Proyecto de mejora de los procesos de desarrollo del software.

Integración Continua: Fase 2

• Continuous Delivering

• Deploy Automation

• Acceptance Tests (BDD)

• Integration Tests

• Code Review

• Metrics

• Build + UT (TDD) Juan José del Campo Bécares

Page 13: Agile Venture - Proyecto de mejora de los procesos de desarrollo del software.

Integración Continua: Fase 3

• Continuous Delivering

• Deploy Automation

• Acceptance Tests (BDD)

• Integration Tests

• Code Review

• Metrics

• Build + UT (TDD) Juan José del Campo Bécares

Page 14: Agile Venture - Proyecto de mejora de los procesos de desarrollo del software.

Control de Versiones: Alternativas

Distribución

Riqueza

Juan José del Campo Bécares

Page 15: Agile Venture - Proyecto de mejora de los procesos de desarrollo del software.

Historial: cada commit es un snapshot, no un incremental

Trabajo offline. Repositorio local y remoto.

Flexibilidad de las Ramas: colaboración, REFACTORING

Rapidez de descarga

Control de Versiones: GIT

Juan José del Campo Bécares