SlideShare una empresa de Scribd logo
Sleep Well Driven
Development
Mi experiencia sobre testing
Senior Software Engineer en Liferay

Tech Mentor en rviewer
• Desarrollador feliz, la mayor parte del
tiempo

• Padre x 2

• 8 años de experiencia

• 6 empresas

• Incontables bugs y errores
profesionales
Javier de Arcos
@JavierdeArcosTL
Objetivo
¿Por qué?
Motivación
#SleepWellDrivenDevelopment @JavierdeArcosTL
Muchos desarrolladores, en muchas lugares
“Si no haces tests, no eres un
desarrollador profesional”
#SleepWellDrivenDevelopment @JavierdeArcosTL
¿Por qué hacer tests?
Razones habituales de por qué hacer tests
#SleepWellDrivenDevelopment @JavierdeArcosTL
• Aumenta la satisfacción del cliente

• Reduce el coste del proyecto

• Aumenta la calidad y seguridad del producto

• Sirve como documentación

• Permite refactorizar

• …
Compartimos la foto de la cima
pero no el camino
#SleepWellDrivenDevelopment @JavierdeArcosTL
Mi camino
Episodio 1: Desconocimiento
#SleepWellDrivenDevelopment @JavierdeArcosTL
• Termino la carrera sin saber qué es el testing

• Empiezo a trabajar en una empresa de robótica

• Conozco la presión y el estrés

• Debe haber mejores formas de desarrollar
Episodio 2: Aprendizaje
#SleepWellDrivenDevelopment @JavierdeArcosTL
• Comienzo una nueva etapa en una startup

• Traspaso de conocimiento express de 48
horas

• Hay que seguir aprendiendo: 

Clean Code, The Pragmatic Programmer,
Extreme Programming Explained, …
Episodio 3: Frustración
#SleepWellDrivenDevelopment @JavierdeArcosTL
• Otro cambio en busca de lo que he estado
aprendiendo: metodología agile, equipos
transversales

• Equipo de QA pero sin tests en desarrollo 

• Mucha presión

• Teoría vs Realidad
Programming by Coincidence
@JavierdeArcosTL
#SleepWellDrivenDevelopment
Fear Driven Development
Programar con miedo a cambiar el código
#SleepWellDrivenDevelopment @JavierdeArcosTL
• Desconocimiento de la base de código

• Mucho código legacy

• Código que no se entiende qué hace y por qué está ahí

• Miedo a romper la build

• Efectos colaterales imprevisibles

• Falta de documentación y contexto

• Presión externa
Círculo vicioso de programar sin tests
#SleepWellDrivenDevelopment @JavierdeArcosTL
Menos productividad
Menos con
fi
anza
Más estrés
Bugs
Interrupciones, quejas
Más errores
BURNOUT
Episodio 4: Práctica
#SleepWellDrivenDevelopment @JavierdeArcosTL
• Nuevo cambio, esta vez por el sector, al
sector aeroespacial

• Conozco un proyecto real con una
cultura de calidad: tests, integración
continua

• De la frustración a la acción
Episodio 5: Hábito
#SleepWellDrivenDevelopment @JavierdeArcosTL
• Oportunidad de comenzar un producto
casi desde el inicio

• Prototipo sin tests pero con cultura de
calidad en la empresa

• Empeño en incluir buenas prácticas,
tests, integración continua

• Extiendo la cultura, enseño, mentorizo
Sleep Well Driven Development
#SleepWellDrivenDevelopment @JavierdeArcosTL
#SleepWellDrivenDevelopment @JavierdeArcosTL
Menos interrupciones
Más productividad
Más con
fi
anza
Tests
Menos bugs
Menos estrés
BIENESTAR
#SleepWellDrivenDevelopment @JavierdeArcosTL
TESTS + INTEGRACIÓN CONTINUA = CONFIANZA
FEEDBACK RÁPIDO
GRADO DE CONFIANZA
ESFUERZO
Aprendizajes
Los tests también son código
#SleepWellDrivenDevelopment @JavierdeArcosTL
La cobertura de los tests no es una buena
métrica… pero sí
#SleepWellDrivenDevelopment @JavierdeArcosTL
“¿Hacéis tests?” para la entrevista




“¿Hago tests?” para el trabajo
#SleepWellDrivenDevelopment @JavierdeArcosTL
Tú controlas cuando la tarea está hecha
#SleepWellDrivenDevelopment @JavierdeArcosTL
Del “Yo contra Ellos” al “Todos”
#SleepWellDrivenDevelopment @JavierdeArcosTL
Conclusiones
Programar sin tests es posible (e incluso
profesional) pero mucho más difícil
#SleepWellDrivenDevelopment @JavierdeArcosTL
El testing es un conjunto de herramientas
muy poderoso para mejorar tu bienestar
#SleepWellDrivenDevelopment @JavierdeArcosTL
Las prácticas de testing nacen en el
entorno adecuado, y la creación de ese
entorno empieza con una persona
#SleepWellDrivenDevelopment @JavierdeArcosTL
Dejemos de defender el testing y
empecemos a promoverlo
#SleepWellDrivenDevelopment @JavierdeArcosTL
Kent Beck
“I’m not a great programmer; I’m
just a good programmer with
great habits”
Referencias
• Libros

• The Pragmatic Programmer: From Journeyman to Master - Andrew Hunt y
David Thomas

• Extreme Programming Explained: Embrace Change - Kent Beck

• Artículos

• Fear Driven Development and How To Tackle It - Sam Davies

• Testing Iceberg - Francisco Moreno
#SleepWellDrivenDevelopment @JavierdeArcosTL
¡Muchas gracias…

Y a hacer tests!
@JavierdeArcosTL

Más contenido relacionado

La actualidad más candente

1º Webinar EXIN en Castellano: EXIN DevOps Master certification: where Agile ...
1º Webinar EXIN en Castellano: EXIN DevOps Master certification: where Agile ...1º Webinar EXIN en Castellano: EXIN DevOps Master certification: where Agile ...
1º Webinar EXIN en Castellano: EXIN DevOps Master certification: where Agile ...
EXIN
 
065 Testing Automatizado Hagamos Que Las Maquinas Trabajen Por Nosotros
065 Testing Automatizado Hagamos Que Las Maquinas  Trabajen Por Nosotros065 Testing Automatizado Hagamos Que Las Maquinas  Trabajen Por Nosotros
065 Testing Automatizado Hagamos Que Las Maquinas Trabajen Por Nosotros
GeneXus
 
Dev ops e infraestructura – acompañando nuestro software a producción
Dev ops e infraestructura – acompañando nuestro software a producciónDev ops e infraestructura – acompañando nuestro software a producción
Dev ops e infraestructura – acompañando nuestro software a producción
Kleer Agile Coaching & Training
 
LEAN software development
LEAN software developmentLEAN software development
LEAN software development
ricardoroldan
 
Introducción a Test Driven Development en PHPSevilla
Introducción a Test Driven Development en PHPSevillaIntroducción a Test Driven Development en PHPSevilla
Introducción a Test Driven Development en PHPSevilla
Jesús López de la Cruz
 
Presentación Agile Testing
Presentación Agile TestingPresentación Agile Testing
Presentación Agile Testing
tbaires
 
SEMINARIO WEB EN VIVO: INTRODUCCIÓN AL AGILE TESTING
SEMINARIO WEB EN VIVO: INTRODUCCIÓN AL AGILE TESTINGSEMINARIO WEB EN VIVO: INTRODUCCIÓN AL AGILE TESTING
SEMINARIO WEB EN VIVO: INTRODUCCIÓN AL AGILE TESTING
tbaires
 
Acelerando la cultura DevOps mediante Entrega Continua
Acelerando la cultura DevOps mediante Entrega ContinuaAcelerando la cultura DevOps mediante Entrega Continua
Acelerando la cultura DevOps mediante Entrega Continua
Eduardo Ferro Aldama
 
¿Y qué pinta la Integración Continua en un sitio como éste?
¿Y qué pinta la Integración Continua en un sitio como éste?¿Y qué pinta la Integración Continua en un sitio como éste?
¿Y qué pinta la Integración Continua en un sitio como éste?
Ana María del Carmen García Oterino
 
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
betabeers
 
Openspacesevilla2012
Openspacesevilla2012Openspacesevilla2012
Openspacesevilla2012
amunizmartin
 
Calidad en Agile - EducacionIT
Calidad en Agile - EducacionITCalidad en Agile - EducacionIT
Calidad en Agile - EducacionIT
GlobalLogic Latinoamérica
 

La actualidad más candente (12)

1º Webinar EXIN en Castellano: EXIN DevOps Master certification: where Agile ...
1º Webinar EXIN en Castellano: EXIN DevOps Master certification: where Agile ...1º Webinar EXIN en Castellano: EXIN DevOps Master certification: where Agile ...
1º Webinar EXIN en Castellano: EXIN DevOps Master certification: where Agile ...
 
065 Testing Automatizado Hagamos Que Las Maquinas Trabajen Por Nosotros
065 Testing Automatizado Hagamos Que Las Maquinas  Trabajen Por Nosotros065 Testing Automatizado Hagamos Que Las Maquinas  Trabajen Por Nosotros
065 Testing Automatizado Hagamos Que Las Maquinas Trabajen Por Nosotros
 
Dev ops e infraestructura – acompañando nuestro software a producción
Dev ops e infraestructura – acompañando nuestro software a producciónDev ops e infraestructura – acompañando nuestro software a producción
Dev ops e infraestructura – acompañando nuestro software a producción
 
LEAN software development
LEAN software developmentLEAN software development
LEAN software development
 
Introducción a Test Driven Development en PHPSevilla
Introducción a Test Driven Development en PHPSevillaIntroducción a Test Driven Development en PHPSevilla
Introducción a Test Driven Development en PHPSevilla
 
Presentación Agile Testing
Presentación Agile TestingPresentación Agile Testing
Presentación Agile Testing
 
SEMINARIO WEB EN VIVO: INTRODUCCIÓN AL AGILE TESTING
SEMINARIO WEB EN VIVO: INTRODUCCIÓN AL AGILE TESTINGSEMINARIO WEB EN VIVO: INTRODUCCIÓN AL AGILE TESTING
SEMINARIO WEB EN VIVO: INTRODUCCIÓN AL AGILE TESTING
 
Acelerando la cultura DevOps mediante Entrega Continua
Acelerando la cultura DevOps mediante Entrega ContinuaAcelerando la cultura DevOps mediante Entrega Continua
Acelerando la cultura DevOps mediante Entrega Continua
 
¿Y qué pinta la Integración Continua en un sitio como éste?
¿Y qué pinta la Integración Continua en un sitio como éste?¿Y qué pinta la Integración Continua en un sitio como éste?
¿Y qué pinta la Integración Continua en un sitio como éste?
 
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
 
Openspacesevilla2012
Openspacesevilla2012Openspacesevilla2012
Openspacesevilla2012
 
Calidad en Agile - EducacionIT
Calidad en Agile - EducacionITCalidad en Agile - EducacionIT
Calidad en Agile - EducacionIT
 

Similar a Sleep well driven development

Charla TestingUy 2019 - Compartiendo el sombrero del testing
Charla TestingUy 2019 - Compartiendo el sombrero del testingCharla TestingUy 2019 - Compartiendo el sombrero del testing
Charla TestingUy 2019 - Compartiendo el sombrero del testing
TestingUy
 
Conceptos de desarrollo ágil
Conceptos de desarrollo ágilConceptos de desarrollo ágil
Conceptos de desarrollo ágil
Guino Henostroza
 
Charla Testing Chile 2019: Desafíos y lecciones aprendidas al incorporar el t...
Charla Testing Chile 2019: Desafíos y lecciones aprendidas al incorporar el t...Charla Testing Chile 2019: Desafíos y lecciones aprendidas al incorporar el t...
Charla Testing Chile 2019: Desafíos y lecciones aprendidas al incorporar el t...
Claudia Badell
 
Introducción a automatización de pruebas web
Introducción a automatización de pruebas webIntroducción a automatización de pruebas web
Introducción a automatización de pruebas web
Francisco Moreno Sanz
 
Proyectos agiles, Proyectos tradicionales
Proyectos agiles, Proyectos tradicionalesProyectos agiles, Proyectos tradicionales
Proyectos agiles, Proyectos tradicionales
Irwin Franco
 
Charla Mendoza Testing Day: Incorporando las pruebas como parte de la cultura...
Charla Mendoza Testing Day: Incorporando las pruebas como parte de la cultura...Charla Mendoza Testing Day: Incorporando las pruebas como parte de la cultura...
Charla Mendoza Testing Day: Incorporando las pruebas como parte de la cultura...
Claudia Badell
 
Desarrollo ágil Webprendedor UC 2010
Desarrollo ágil Webprendedor UC 2010Desarrollo ágil Webprendedor UC 2010
Desarrollo ágil Webprendedor UC 2010
Sebastián Gamboa
 
How to start a tech company (for non-tech CEOs) - In Spanish
How to start a tech company (for non-tech CEOs) - In SpanishHow to start a tech company (for non-tech CEOs) - In Spanish
How to start a tech company (for non-tech CEOs) - In Spanish
MarsBased
 
RMyA - workshop testing - v1.1
RMyA - workshop testing - v1.1RMyA - workshop testing - v1.1
RMyA - workshop testing - v1.1
Pilar Barrio
 
¿Qué es eso llamado agilidad?
¿Qué es eso llamado agilidad?¿Qué es eso llamado agilidad?
¿Qué es eso llamado agilidad?
Sergio Pola
 
Evolución del tester nov 2016
Evolución del tester nov 2016Evolución del tester nov 2016
Evolución del tester nov 2016
Marcela Mellado
 
Introducción al emprendimiento ágil
Introducción al emprendimiento ágilIntroducción al emprendimiento ágil
Introducción al emprendimiento ágil
Karen Da Cruz
 
10 lecciones construyendo aplicaciones en startups con Wizeline
10 lecciones construyendo aplicaciones en startups con Wizeline10 lecciones construyendo aplicaciones en startups con Wizeline
10 lecciones construyendo aplicaciones en startups con Wizeline
Product School
 
Lean manufacturing 6 sigma
Lean manufacturing 6 sigmaLean manufacturing 6 sigma
Lean manufacturing 6 sigma
Pedro Garza
 
FUNDAMENTOS_DE_GESTION_14.pptx
FUNDAMENTOS_DE_GESTION_14.pptxFUNDAMENTOS_DE_GESTION_14.pptx
FUNDAMENTOS_DE_GESTION_14.pptx
DashaImpresiones
 
1. Fundamentos de Lean.pdf
1. Fundamentos de Lean.pdf1. Fundamentos de Lean.pdf
1. Fundamentos de Lean.pdf
DarioRoncal
 
Seis en 75 - Víctor Gómez Adán
Seis en 75 - Víctor Gómez AdánSeis en 75 - Víctor Gómez Adán
Seis en 75 - Víctor Gómez Adán
Víctor Gómez Adán
 
Lean StartUp y Agile Software Development
Lean StartUp y Agile Software DevelopmentLean StartUp y Agile Software Development
Lean StartUp y Agile Software Development
Johnny Ordóñez
 
Los principios ágiles (Madrid)
Los principios ágiles (Madrid)Los principios ágiles (Madrid)
Los principios ágiles (Madrid)
Jose Manuel Beas
 
GPE-GRUP6.pptx
GPE-GRUP6.pptxGPE-GRUP6.pptx
GPE-GRUP6.pptx
ZorayaXimenaVillanue
 

Similar a Sleep well driven development (20)

Charla TestingUy 2019 - Compartiendo el sombrero del testing
Charla TestingUy 2019 - Compartiendo el sombrero del testingCharla TestingUy 2019 - Compartiendo el sombrero del testing
Charla TestingUy 2019 - Compartiendo el sombrero del testing
 
Conceptos de desarrollo ágil
Conceptos de desarrollo ágilConceptos de desarrollo ágil
Conceptos de desarrollo ágil
 
Charla Testing Chile 2019: Desafíos y lecciones aprendidas al incorporar el t...
Charla Testing Chile 2019: Desafíos y lecciones aprendidas al incorporar el t...Charla Testing Chile 2019: Desafíos y lecciones aprendidas al incorporar el t...
Charla Testing Chile 2019: Desafíos y lecciones aprendidas al incorporar el t...
 
Introducción a automatización de pruebas web
Introducción a automatización de pruebas webIntroducción a automatización de pruebas web
Introducción a automatización de pruebas web
 
Proyectos agiles, Proyectos tradicionales
Proyectos agiles, Proyectos tradicionalesProyectos agiles, Proyectos tradicionales
Proyectos agiles, Proyectos tradicionales
 
Charla Mendoza Testing Day: Incorporando las pruebas como parte de la cultura...
Charla Mendoza Testing Day: Incorporando las pruebas como parte de la cultura...Charla Mendoza Testing Day: Incorporando las pruebas como parte de la cultura...
Charla Mendoza Testing Day: Incorporando las pruebas como parte de la cultura...
 
Desarrollo ágil Webprendedor UC 2010
Desarrollo ágil Webprendedor UC 2010Desarrollo ágil Webprendedor UC 2010
Desarrollo ágil Webprendedor UC 2010
 
How to start a tech company (for non-tech CEOs) - In Spanish
How to start a tech company (for non-tech CEOs) - In SpanishHow to start a tech company (for non-tech CEOs) - In Spanish
How to start a tech company (for non-tech CEOs) - In Spanish
 
RMyA - workshop testing - v1.1
RMyA - workshop testing - v1.1RMyA - workshop testing - v1.1
RMyA - workshop testing - v1.1
 
¿Qué es eso llamado agilidad?
¿Qué es eso llamado agilidad?¿Qué es eso llamado agilidad?
¿Qué es eso llamado agilidad?
 
Evolución del tester nov 2016
Evolución del tester nov 2016Evolución del tester nov 2016
Evolución del tester nov 2016
 
Introducción al emprendimiento ágil
Introducción al emprendimiento ágilIntroducción al emprendimiento ágil
Introducción al emprendimiento ágil
 
10 lecciones construyendo aplicaciones en startups con Wizeline
10 lecciones construyendo aplicaciones en startups con Wizeline10 lecciones construyendo aplicaciones en startups con Wizeline
10 lecciones construyendo aplicaciones en startups con Wizeline
 
Lean manufacturing 6 sigma
Lean manufacturing 6 sigmaLean manufacturing 6 sigma
Lean manufacturing 6 sigma
 
FUNDAMENTOS_DE_GESTION_14.pptx
FUNDAMENTOS_DE_GESTION_14.pptxFUNDAMENTOS_DE_GESTION_14.pptx
FUNDAMENTOS_DE_GESTION_14.pptx
 
1. Fundamentos de Lean.pdf
1. Fundamentos de Lean.pdf1. Fundamentos de Lean.pdf
1. Fundamentos de Lean.pdf
 
Seis en 75 - Víctor Gómez Adán
Seis en 75 - Víctor Gómez AdánSeis en 75 - Víctor Gómez Adán
Seis en 75 - Víctor Gómez Adán
 
Lean StartUp y Agile Software Development
Lean StartUp y Agile Software DevelopmentLean StartUp y Agile Software Development
Lean StartUp y Agile Software Development
 
Los principios ágiles (Madrid)
Los principios ágiles (Madrid)Los principios ágiles (Madrid)
Los principios ágiles (Madrid)
 
GPE-GRUP6.pptx
GPE-GRUP6.pptxGPE-GRUP6.pptx
GPE-GRUP6.pptx
 

Último

DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
Maria Celeste Trujillo Cruz
 
Buscador de Eventos y Fiestas en España - Buscafiesta
Buscador de Eventos y Fiestas en España - BuscafiestaBuscador de Eventos y Fiestas en España - Buscafiesta
Buscador de Eventos y Fiestas en España - Buscafiesta
holabuscafiesta
 
primer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporteprimer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporte
eliersin13
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
micarnavaltupatrimon
 
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcelherramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
Eduardo455921
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
micarnavaltupatrimon
 
Introduccion al Lenguaje de Programación C++
Introduccion al Lenguaje de Programación  C++Introduccion al Lenguaje de Programación  C++
Introduccion al Lenguaje de Programación C++
PaulDelgadoSoto
 
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptxTARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
dayronfabricioruizmo
 

Último (8)

DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
 
Buscador de Eventos y Fiestas en España - Buscafiesta
Buscador de Eventos y Fiestas en España - BuscafiestaBuscador de Eventos y Fiestas en España - Buscafiesta
Buscador de Eventos y Fiestas en España - Buscafiesta
 
primer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporteprimer manual de nuestra compañía de soporte
primer manual de nuestra compañía de soporte
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
 
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcelherramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
 
Introduccion al Lenguaje de Programación C++
Introduccion al Lenguaje de Programación  C++Introduccion al Lenguaje de Programación  C++
Introduccion al Lenguaje de Programación C++
 
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptxTARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
 

Sleep well driven development

  • 1. Sleep Well Driven Development Mi experiencia sobre testing
  • 2. Senior Software Engineer en Liferay
 Tech Mentor en rviewer • Desarrollador feliz, la mayor parte del tiempo • Padre x 2 • 8 años de experiencia • 6 empresas • Incontables bugs y errores profesionales Javier de Arcos @JavierdeArcosTL
  • 7. Muchos desarrolladores, en muchas lugares “Si no haces tests, no eres un desarrollador profesional” #SleepWellDrivenDevelopment @JavierdeArcosTL
  • 8. ¿Por qué hacer tests? Razones habituales de por qué hacer tests #SleepWellDrivenDevelopment @JavierdeArcosTL • Aumenta la satisfacción del cliente • Reduce el coste del proyecto • Aumenta la calidad y seguridad del producto • Sirve como documentación • Permite refactorizar • …
  • 9. Compartimos la foto de la cima pero no el camino #SleepWellDrivenDevelopment @JavierdeArcosTL
  • 11. Episodio 1: Desconocimiento #SleepWellDrivenDevelopment @JavierdeArcosTL • Termino la carrera sin saber qué es el testing • Empiezo a trabajar en una empresa de robótica • Conozco la presión y el estrés • Debe haber mejores formas de desarrollar
  • 12. Episodio 2: Aprendizaje #SleepWellDrivenDevelopment @JavierdeArcosTL • Comienzo una nueva etapa en una startup • Traspaso de conocimiento express de 48 horas • Hay que seguir aprendiendo: 
 Clean Code, The Pragmatic Programmer, Extreme Programming Explained, …
  • 13. Episodio 3: Frustración #SleepWellDrivenDevelopment @JavierdeArcosTL • Otro cambio en busca de lo que he estado aprendiendo: metodología agile, equipos transversales • Equipo de QA pero sin tests en desarrollo • Mucha presión • Teoría vs Realidad
  • 15. Fear Driven Development Programar con miedo a cambiar el código #SleepWellDrivenDevelopment @JavierdeArcosTL • Desconocimiento de la base de código • Mucho código legacy • Código que no se entiende qué hace y por qué está ahí • Miedo a romper la build • Efectos colaterales imprevisibles • Falta de documentación y contexto • Presión externa
  • 16. Círculo vicioso de programar sin tests #SleepWellDrivenDevelopment @JavierdeArcosTL Menos productividad Menos con fi anza Más estrés Bugs Interrupciones, quejas Más errores BURNOUT
  • 17. Episodio 4: Práctica #SleepWellDrivenDevelopment @JavierdeArcosTL • Nuevo cambio, esta vez por el sector, al sector aeroespacial • Conozco un proyecto real con una cultura de calidad: tests, integración continua • De la frustración a la acción
  • 18. Episodio 5: Hábito #SleepWellDrivenDevelopment @JavierdeArcosTL • Oportunidad de comenzar un producto casi desde el inicio • Prototipo sin tests pero con cultura de calidad en la empresa • Empeño en incluir buenas prácticas, tests, integración continua • Extiendo la cultura, enseño, mentorizo
  • 19. Sleep Well Driven Development #SleepWellDrivenDevelopment @JavierdeArcosTL #SleepWellDrivenDevelopment @JavierdeArcosTL Menos interrupciones Más productividad Más con fi anza Tests Menos bugs Menos estrés BIENESTAR
  • 20. #SleepWellDrivenDevelopment @JavierdeArcosTL TESTS + INTEGRACIÓN CONTINUA = CONFIANZA FEEDBACK RÁPIDO GRADO DE CONFIANZA ESFUERZO
  • 22. Los tests también son código #SleepWellDrivenDevelopment @JavierdeArcosTL
  • 23. La cobertura de los tests no es una buena métrica… pero sí #SleepWellDrivenDevelopment @JavierdeArcosTL
  • 24. “¿Hacéis tests?” para la entrevista 
 
 “¿Hago tests?” para el trabajo #SleepWellDrivenDevelopment @JavierdeArcosTL
  • 25. Tú controlas cuando la tarea está hecha #SleepWellDrivenDevelopment @JavierdeArcosTL
  • 26. Del “Yo contra Ellos” al “Todos” #SleepWellDrivenDevelopment @JavierdeArcosTL
  • 28. Programar sin tests es posible (e incluso profesional) pero mucho más difícil #SleepWellDrivenDevelopment @JavierdeArcosTL
  • 29. El testing es un conjunto de herramientas muy poderoso para mejorar tu bienestar #SleepWellDrivenDevelopment @JavierdeArcosTL
  • 30. Las prácticas de testing nacen en el entorno adecuado, y la creación de ese entorno empieza con una persona #SleepWellDrivenDevelopment @JavierdeArcosTL
  • 31. Dejemos de defender el testing y empecemos a promoverlo #SleepWellDrivenDevelopment @JavierdeArcosTL
  • 32. Kent Beck “I’m not a great programmer; I’m just a good programmer with great habits”
  • 33. Referencias • Libros • The Pragmatic Programmer: From Journeyman to Master - Andrew Hunt y David Thomas • Extreme Programming Explained: Embrace Change - Kent Beck • Artículos • Fear Driven Development and How To Tackle It - Sam Davies • Testing Iceberg - Francisco Moreno #SleepWellDrivenDevelopment @JavierdeArcosTL
  • 34. ¡Muchas gracias…
 Y a hacer tests! @JavierdeArcosTL