60
Jorge Gamba Desarrollador de Software Web: http://jorgegamba.com Twitter: @ jorgegamba Correo: [email protected] BDD (Behavior-Driven Development) Descubriendo realmente qué requiere tu cliente

BDD: Descubriendo qué requiere realmente tu cliente

Embed Size (px)

Citation preview

Page 1: BDD: Descubriendo qué requiere realmente tu cliente

Jorge GambaDesarrollador de SoftwareWeb: http://jorgegamba.comTwitter: @jorgegambaCorreo: [email protected]

BDD (Behavior-Driven Development)Descubriendo realmente qué requiere tu cliente

Page 2: BDD: Descubriendo qué requiere realmente tu cliente

http://altnethispano.org/ http://agilescolombia.org/ http://mcscolombia.org/

BDD (Behavior-Driven Development)Descubriendo realmente qué requiere tu cliente

Page 3: BDD: Descubriendo qué requiere realmente tu cliente

BDD (Behavior-Driven Development)Descubriendo realmente qué requiere tu cliente

Agenda : Por qué Qué Cómo

Page 4: BDD: Descubriendo qué requiere realmente tu cliente

Por qué (BDD)

Page 5: BDD: Descubriendo qué requiere realmente tu cliente
Page 6: BDD: Descubriendo qué requiere realmente tu cliente

Los hombres son de MarteLas mujeres son de Venus

Page 7: BDD: Descubriendo qué requiere realmente tu cliente

Los desarrolladores son de MarteLos clientes son de Venus

Page 8: BDD: Descubriendo qué requiere realmente tu cliente

¿ Y cuál es el problema ?

Page 9: BDD: Descubriendo qué requiere realmente tu cliente

¿ Y cuál es el problema ?

No me cumpliste

como yo quería

Page 10: BDD: Descubriendo qué requiere realmente tu cliente

¿ Y cuál es el problema ?

No me cumpliste

como yo quería

Pero ¿quién te entiende?

Page 11: BDD: Descubriendo qué requiere realmente tu cliente

¿ Y cuál es el problema ?

No me cumpliste

como yo quería

Pero ¿quién te entiende?

Nunca cumples con los tiempos

esperados

Page 12: BDD: Descubriendo qué requiere realmente tu cliente

¿ Y cuál es el problema ?

No me cumpliste

como yo quería

Pero ¿quién te entiende?

Nunca cumples con los tiempos

esperadosAyer lo querías de una manera y hoy de otra

Page 13: BDD: Descubriendo qué requiere realmente tu cliente

djfhdjhfjdhfdhfjdhjfdEl problema es: Comunicación …No se están entendiendo [los requerimientos]

Page 14: BDD: Descubriendo qué requiere realmente tu cliente

Core / BusinessStakeholders(ejecutivos)

IncidentalStakeholders

(usuarios)

Business Analysts(BAs)

QAs(Testers)

Desarrolladores(Devs)

ClienteEquipo de Desarrollo

El teléfono roto

Page 15: BDD: Descubriendo qué requiere realmente tu cliente

Qué (BDD)

Page 16: BDD: Descubriendo qué requiere realmente tu cliente

Gestión de Proyectos

Desarro

llo de So

ftware

SCRUM XP

BDD

Desarrollo Ágil de Software

Page 17: BDD: Descubriendo qué requiere realmente tu cliente

Agile es acerca de …minimizar el tiempo para obtener feedback

Page 18: BDD: Descubriendo qué requiere realmente tu cliente

http://agilemanifesto.org/iso/es/

Page 19: BDD: Descubriendo qué requiere realmente tu cliente

“Behaviour-driven developmentis about implementing an application by describing its behaviourfrom the perspective of itsstakeholders”

http://dannorth.net/

Page 20: BDD: Descubriendo qué requiere realmente tu cliente

“BDD is a second-generation, outside-in, pullbased, multiple-stakeholder, multiple-scale, high-automation, agile methodology.

“It describes a cycle of interactions with welldefined outputs, resulting in the delivery of working, tested softwarethat matters.”

http://dannorth.net/

Page 21: BDD: Descubriendo qué requiere realmente tu cliente

BDDTDD

ATDD

DDD

Page 22: BDD: Descubriendo qué requiere realmente tu cliente

Cómo (BDD)

Page 23: BDD: Descubriendo qué requiere realmente tu cliente

El ciclo• Outside-In• Pull-based• Fractal• Decomposition• Deriving scope

from goalshttp://www.infoq.com/articles/pulling-power

Page 24: BDD: Descubriendo qué requiere realmente tu cliente

http://www.infoq.com/articles/pulling-power

Divide y vencerás

Page 25: BDD: Descubriendo qué requiere realmente tu cliente

Business Value

• Factor diferenciador• Se hace software por– Hacer dinero– Ahorrar dinero– Proteger dinero

• Core Stakeholders

Page 26: BDD: Descubriendo qué requiere realmente tu cliente

“Obtener ganancias producto de la financiación en la modalidad de microcrédito”

Page 27: BDD: Descubriendo qué requiere realmente tu cliente

Vision

• Todo proyecto necesita una única visión, de un mejor futuro– Por qué es importante– Qué esperamos lograr– Cómo se reconocerá el logro

• Debe ser transmitida al equipo• Es la definición general de “Done”• Es el mayor punto de referencia• Core Stakeholders

Busi

ness

Val

ue

Page 28: BDD: Descubriendo qué requiere realmente tu cliente

Personas y comunidades con proyectos productivos no pueden realizarlos debido a la falta de apoyo financiero, son un mercado desaprovechado por las entidades financieras.

La aplicación “Te prestamos” evalúa, mediante un proceso muy sencillo, el otorgamiento de créditos, con facilidades de pago, a personas de escasos recursos, concediéndoles beneficios de acuerdo a su condición social.

La atención de cada caso se resuelve en pocos minutos y al final de este procedimiento ya es claro si se otorga el crédito y sus condiciones.

Page 29: BDD: Descubriendo qué requiere realmente tu cliente

Personas y comunidades con proyectos productivos no pueden realizarlos debido a la falta de apoyo financiero, son un mercado desaprovechado por las entidades financieras.

La aplicación “Te prestamos” evalúa, mediante un proceso muy sencillo, el otorgamiento de créditos, con facilidades de pago, a personas de escasos recursos, concediéndoles beneficios de acuerdo a su condición social.

La atención de cada caso se resuelve en pocos minutos y al final de este procedimiento ya es claro si se otorga el crédito y sus condiciones.

Por q

uéQ

uéCó

mo

Page 30: BDD: Descubriendo qué requiere realmente tu cliente

Personas y comunidades con proyectos productivos no pueden realizarlos debido a la falta de apoyo financiero, son un mercado desaprovechado por las entidades financieras.

La aplicación “Te prestamos” evalúa, mediante un proceso muy sencillo, el otorgamiento de créditos, con facilidades de pago, a personas de escasos recursos, concediéndoles beneficios de acuerdo a su condición social.

La atención de cada caso se resuelve en pocos minutos y al final de este procedimiento ya es claro si se otorga el crédito y sus condiciones.

Por q

uéQ

uéCó

mo

Cliente

Page 31: BDD: Descubriendo qué requiere realmente tu cliente

Personas y comunidades con proyectos productivos no pueden realizarlos debido a la falta de apoyo financiero, son un mercado desaprovechado por las entidades financieras.

La aplicación “Te prestamos” evalúa, mediante un proceso muy sencillo, el otorgamiento de créditos, con facilidades de pago, a personas de escasos recursos, concediéndoles beneficios de acuerdo a su condición social.

La atención de cada caso se resuelve en pocos minutos y al final de este procedimiento ya es claro si se otorga el crédito y sus condiciones.

Por q

uéQ

uéCó

mo

ClienteD

esarrollador

Page 32: BDD: Descubriendo qué requiere realmente tu cliente

Personas y comunidades con proyectos productivos no pueden realizarlos debido a la falta de apoyo financiero, son un mercado desaprovechado por las entidades financieras.

La aplicación “Te prestamos” evalúa, mediante un proceso muy sencillo, el otorgamiento de créditos, con facilidades de pago, a personas de escasos recursos, concediéndoles beneficios de acuerdo a su condición social.

La atención de cada caso se resuelve en pocos minutos y al final de este procedimiento ya es claro si se otorga el crédito y sus condiciones.

Por q

uéQ

uéCó

mo

ClienteAm

bosD

esarrollador

Page 33: BDD: Descubriendo qué requiere realmente tu cliente

Feature Sets(Epics)

• Lo que necesitamos para implementar la visión

• Son Stories muy grandes para manejar y estimar, deben ser divididas

• Pueden corresponder con los subsistemas de la aplicación

• Se deben mantener en un alto nivel de abstracción

• Incidental Stakeholders

Visi

ón

Page 34: BDD: Descubriendo qué requiere realmente tu cliente

Para que el proceso sea sencillo y rápidoComo un analista de créditosYo quiero capturar solo los datos relevantes usando una interfaz de usuario muy simple

Personas y comunidades con proyectos productivos no pueden realizarlos debido a la falta de apoyo financiero, son un mercado desaprovechado por las entidades financieras.

La aplicación “Te prestamos” evalúa, mediante un proceso muy sencillo, el otorgamiento de créditos, con facilidades de pago, a personas de escasos recursos, concediéndoles beneficios de acuerdo a su condición social.

La atención de cada caso se resuelve en pocos minutos y al final de este procedimiento ya es claro si se otorga el crédito y sus condiciones.

Page 35: BDD: Descubriendo qué requiere realmente tu cliente

Para que el proceso sea sencillo y rápidoComo un analista de créditosYo quiero capturar solo los datos relevantes usando una interfaz de usuario muy simple

Para apoyar el desarrollo económico de comunidades de escasos recursosComo un directivo del bancoYo quiero otorgar descuentos y facilidades de pago según la condición socioeconómica

Personas y comunidades con proyectos productivos no pueden realizarlos debido a la falta de apoyo financiero, son un mercado desaprovechado por las entidades financieras.

La aplicación “Te prestamos” evalúa, mediante un proceso muy sencillo, el otorgamiento de créditos, con facilidades de pago, a personas de escasos recursos, concediéndoles beneficios de acuerdo a su condición social.

La atención de cada caso se resuelve en pocos minutos y al final de este procedimiento ya es claro si se otorga el crédito y sus condiciones.

Page 36: BDD: Descubriendo qué requiere realmente tu cliente

Para que el proceso sea sencillo y rápidoComo un analista de créditosYo quiero capturar solo los datos relevantes usando una interfaz de usuario muy simple

Para apoyar el desarrollo económico de comunidades de escasos recursosComo un directivo del bancoYo quiero otorgar descuentos y facilidades de pago según la condición socioeconómica

Para reducir el riesgo de pérdida de carteraComo un director financieroYo quiero apoyo para decidir el otorgamiento y condiciones de crédito

Personas y comunidades con proyectos productivos no pueden realizarlos debido a la falta de apoyo financiero, son un mercado desaprovechado por las entidades financieras.

La aplicación “Te prestamos” evalúa, mediante un proceso muy sencillo, el otorgamiento de créditos, con facilidades de pago, a personas de escasos recursos, concediéndoles beneficios de acuerdo a su condición social.

La atención de cada caso se resuelve en pocos minutos y al final de este procedimiento ya es claro si se otorga el crédito y sus condiciones.

Page 37: BDD: Descubriendo qué requiere realmente tu cliente

Para que el proceso sea sencillo y rápidoComo un analista de créditosYo quiero capturar solo los datos relevantes usando una interfaz de usuario muy simple

Para apoyar el desarrollo económico de comunidades de escasos recursosComo un directivo del bancoYo quiero otorgar descuentos y facilidades de pago según la condición socioeconómica

Para reducir el riesgo de pérdida de carteraComo un director financieroYo quiero apoyo para decidir el otorgamiento y condiciones de crédito

Personas y comunidades con proyectos productivos no pueden realizarlos debido a la falta de apoyo financiero, son un mercado desaprovechado por las entidades financieras.

La aplicación “Te prestamos” evalúa, mediante un proceso muy sencillo, el otorgamiento de créditos, con facilidades de pago, a personas de escasos recursos, concediéndoles beneficios de acuerdo a su condición social.

La atención de cada caso se resuelve en pocos minutos y al final de este procedimiento ya es claro si se otorga el crédito y sus condiciones.

Page 38: BDD: Descubriendo qué requiere realmente tu cliente

Stories

• Es una manera de capturar y describir una feature del sistema, algo que el usuario quiere

• Constituye una unidad de entrega, algo que habrá que implementar

• Debe ser tan pequeña como sea posible sin perder significado para el negocio

• Business Analysts (BAs)

Feat

ure

Sets

Page 39: BDD: Descubriendo qué requiere realmente tu cliente

Para que el proceso sea sencillo y rápidoComo un analista de créditosYo quiero capturar solo los datos relevantes usando una interfaz de usuario muy simple

Para apoyar el desarrollo económico de comunidades de escasos recursosComo un directivo del bancoYo quiero otorgar descuentos y facilidades de pago según la condición socioeconómica

Para reducir el riesgo de pérdida de carteraComo un director financieroYo quiero apoyo para decidir el otorgamiento y condiciones de crédito

Personas y comunidades con proyectos productivos no pueden realizarlos debido a la falta de apoyo financiero, son un mercado desaprovechado por las entidades financieras.

La aplicación “Te prestamos” evalúa, mediante un proceso muy sencillo, el otorgamiento de créditos, con facilidades de pago, a personas de escasos recursos, concediéndoles beneficios de acuerdo a su condición social.

La atención de cada caso se resuelve en pocos minutos y al final de este procedimiento ya es claro si se otorga el crédito y sus condiciones.

Para que el proceso sea sencillo y rápidoComo un analista de créditosYo quiero limitar la información solicitada al cliente financiera y social

Para que el proceso sea sencillo y rápidoComo un analista de créditosYo quiero usar un solo formulario que no requiera navegar a diferentes ventanas

Page 40: BDD: Descubriendo qué requiere realmente tu cliente

Para que el proceso sea sencillo y rápidoComo un analista de créditosYo quiero capturar solo los datos relevantes usando una interfaz de usuario muy simple

Para apoyar el desarrollo económico de comunidades de escasos recursosComo un directivo del bancoYo quiero otorgar descuentos y facilidades de pago según la condición socioeconómica

Para reducir el riesgo de pérdida de carteraComo un director financieroYo quiero apoyo para decidir el otorgamiento y condiciones de crédito

Personas y comunidades con proyectos productivos no pueden realizarlos debido a la falta de apoyo financiero, son un mercado desaprovechado por las entidades financieras.

La aplicación “Te prestamos” evalúa, mediante un proceso muy sencillo, el otorgamiento de créditos, con facilidades de pago, a personas de escasos recursos, concediéndoles beneficios de acuerdo a su condición social.

La atención de cada caso se resuelve en pocos minutos y al final de este procedimiento ya es claro si se otorga el crédito y sus condiciones.

Para apoyar el desarrollo económico de comunidades de escasos recursosComo un directivo del bancoYo quiero conceder una tasa de interés más baja a personas desfavorecidas

Para apoyar el desarrollo económico de comunidades de escasos recursosComo un directivo del bancoYo quiero permitir que los clientes tengan al inicio un período de gracia razonable

Para apoyar el desarrollo económico de comunidades de escasos recursosComo un directivo del bancoYo quiero que las personas puedan elegir el número y valor de cuotas

Page 41: BDD: Descubriendo qué requiere realmente tu cliente

Para que el proceso sea sencillo y rápidoComo un analista de créditosYo quiero capturar solo los datos relevantes usando una interfaz de usuario muy simple

Para apoyar el desarrollo económico de comunidades de escasos recursosComo un directivo del bancoYo quiero otorgar descuentos y facilidades de pago según la condición socioeconómica

Para reducir el riesgo de pérdida de carteraComo un director financieroYo quiero apoyo para decidir el otorgamiento y condiciones de crédito

Personas y comunidades con proyectos productivos no pueden realizarlos debido a la falta de apoyo financiero, son un mercado desaprovechado por las entidades financieras.

La aplicación “Te prestamos” evalúa, mediante un proceso muy sencillo, el otorgamiento de créditos, con facilidades de pago, a personas de escasos recursos, concediéndoles beneficios de acuerdo a su condición social.

La atención de cada caso se resuelve en pocos minutos y al final de este procedimiento ya es claro si se otorga el crédito y sus condiciones.

Para reducir el riesgo de pérdida de carteraComo un director financieroYo quiero obtener un cálculo de la capacidad de pago del cliente

Para reducir el riesgo de pérdida de carteraComo un director financieroYo quiero poder consultar centrales de riesgo que me den información acerca del cliente

Para reducir el riesgo de pérdida de carteraComo un director financieroYo quiero recibir indicaciones sobre las condiciones que debe cumplir el cliente

Page 42: BDD: Descubriendo qué requiere realmente tu cliente

Scenarios

• Constituyen o detallan los criterios de aceptación

• Son ejemplos, así de sencillo• Deben incluir contexto, acción

y verficación• Given / When / Then• Se pueden automatizar• Qas / Testers [ + Bas + devs]

Stor

ies

Page 43: BDD: Descubriendo qué requiere realmente tu cliente

Para que el proceso sea sencillo y rápidoComo un analista de créditosYo quiero capturar solo los datos relevantes usando una interfaz de usuario muy simple

Para apoyar el desarrollo económico de comunidades de escasos recursosComo un directivo del bancoYo quiero otorgar descuentos y facilidades de pago según la condición socioeconómica

Para reducir el riesgo de pérdida de carteraComo un director financieroYo quiero apoyo para decidir el otorgamiento y condiciones de crédito

Personas y comunidades con proyectos productivos no pueden realizarlos debido a la falta de apoyo financiero, son un mercado desaprovechado por las entidades financieras.

La aplicación “Te prestamos” evalúa, mediante un proceso muy sencillo, el otorgamiento de créditos, con facilidades de pago, a personas de escasos recursos, concediéndoles beneficios de acuerdo a su condición social.

La atención de cada caso se resuelve en pocos minutos y al final de este procedimiento ya es claro si se otorga el crédito y sus condiciones.

Para apoyar el desarrollo económico de comunidades de escasos recursosComo un directivo del bancoYo quiero conceder una tasa de interés más baja a personas desfavorecidas

Para apoyar el desarrollo económico de comunidades de escasos recursosComo un directivo del bancoYo quiero permitir que los clientes tengan al inicio un período de gracia razonable

Para apoyar el desarrollo económico de comunidades de escasos recursosComo un directivo del bancoYo quiero que las personas puedan elegir el número y valor de cuotas

Dado que el cliente es desplazado por la violenciaCuando se calcule su interésEntonces deberían descontársele 5 puntosY el total no debería exceder 10

Dado que el cliente es madre cabeza de hogarCuando se calcule su interésEntonces deberían descontársele 4 puntosY el total no debería exceder 10

Dado que el cliente no es desplazado ni madre cabeza de hogarCuando se calcule su interésEntonces no deberían realizarse descuentos a su tasa de interés

Page 44: BDD: Descubriendo qué requiere realmente tu cliente

Executable Specifications

• No son scripts, son especificaciones• Son mejores que la documentación

tradicional– Especifican qué hay que hacer– Pruebas de aceptación y regresión– Documentación dinámica

• Son el artefacto más durable en el proyecto

• Son tan confiables como el código pero más legibles

• Devs (desarrolladores)

Scen

ario

s

Page 45: BDD: Descubriendo qué requiere realmente tu cliente

Beneficios• Win-Win• Clientes felices• Equipo feliz• Calidad• Menos bugs• Documentación• Pruebas• Etc.

http://www.infoq.com/articles/pulling-power

Page 46: BDD: Descubriendo qué requiere realmente tu cliente

Demo

Page 47: BDD: Descubriendo qué requiere realmente tu cliente

Feature Set Feature Set Feature Set

Visión

Story Story Story

Page 48: BDD: Descubriendo qué requiere realmente tu cliente

Feature Set Feature Set Feature Set

Visión

Story Story Story

Scenario Scenario Scenario

Page 49: BDD: Descubriendo qué requiere realmente tu cliente

Scenario Scenario Scenario

Feature Set Feature Set Feature Set

Visión

Story Story Story

Page 50: BDD: Descubriendo qué requiere realmente tu cliente

Scenario Scenario Scenario

Feature Set Feature Set Feature Set

Visión

Story Story Story

Page 51: BDD: Descubriendo qué requiere realmente tu cliente

Scenario Scenario Scenario

Feature Set Feature Set Feature Set

Visión

Story Story Story

Page 52: BDD: Descubriendo qué requiere realmente tu cliente

Scenario Scenario Scenario

Feature Set Feature Set Feature Set

Visión

Story Story Story

Page 53: BDD: Descubriendo qué requiere realmente tu cliente

Scenario Scenario Scenario

Feature Set Feature Set Feature Set

Visión

Story Story Story

Scenario Scenario Scenario

Page 54: BDD: Descubriendo qué requiere realmente tu cliente

Scenario Scenario Scenario

Feature Set Feature Set Feature Set

Visión

Story Story Story

Scenario Scenario Scenario

Scenario Scenario Scenario

Page 55: BDD: Descubriendo qué requiere realmente tu cliente

Scenario Scenario Scenario

Feature Set Feature Set Feature Set

Visión

Story Story Story

Scenario Scenario Scenario

Scenario Scenario Scenario

Page 56: BDD: Descubriendo qué requiere realmente tu cliente

Scenario Scenario Scenario

Feature Set Feature Set Feature Set

Visión

Story Story Story

Scenario Scenario Scenario

Scenario Scenario Scenario

Page 57: BDD: Descubriendo qué requiere realmente tu cliente

Scenario Scenario Scenario

Feature Set Feature Set Feature Set

Visión

Story Story Story

Scenario Scenario Scenario

Scenario Scenario Scenario

Page 58: BDD: Descubriendo qué requiere realmente tu cliente

Referencias• Dan North - http://dannorth.net/• Liz Keogh - http://lizkeogh.com/• Jorge Gamba - http://jorgegamba.com/• Skills Matter - http://skillsmatter.com/• InfoQ - http://www.infoq.com/

Page 59: BDD: Descubriendo qué requiere realmente tu cliente

¿ Preguntas ?

Page 60: BDD: Descubriendo qué requiere realmente tu cliente

Jorge GambaDesarrollador de SoftwareWeb: http://jorgegamba.comTwitter: @jorgegambaCorreo: [email protected]

http://altnethispano.org/ http://agilescolombia.org/ http://mcscolombia.org/