¿El desarrollo dirigido por el comportamiento (BDD) es apropiado para una startup?

Como startup, desea moverse rápidamente para llegar al mercado de productos en forma. Encontrar el nicho correcto e innovar constantemente una vez que encuentra ese nicho es la única forma de convertir con éxito su producto en un negocio sostenible.

Al innovar rápidamente, desea asegurarse de no tener un impacto negativo en el producto para sus clientes existentes. No tienes tantos, así que asegurarte de poder conservarlos es extremadamente importante. Y no se trata solo de mantenerlos, sino de asegurarse de que les digan a los demás cuán bueno y estable es su producto para que el boca a boca comience a difundirse.

Aquí es donde el desarrollo impulsado por el comportamiento es perfecto. Usted define los flujos de trabajo que sus clientes siguen para las características más importantes de su producto. Los pasos Dado, Cuándo, Entonces de BDD son una excelente manera de ponerse en el lugar de sus clientes y ver su aplicación desde su perspectiva.

Esto asegura que sus pruebas automatizadas realmente evalúen lo más importante: ¿Funciona esta función para mis clientes? Entonces, mientras que las pruebas de unidad o controlador tienen su lugar, las pruebas de comportamiento son lo que realmente responde a la pregunta más importante.

En Codeship hemos estado usando BDD con éxito durante mucho tiempo y hemos escrito sobre cómo comenzar un par de veces

* Comienza con las pruebas de arriba a abajo,
* Testing Tuesday # 2: del desarrollo basado en pruebas al desarrollo basado en el comportamiento
* Prueba de Codeship Martes # 3: Desarrollo Conducido por el Comportamiento con Pepino

No es tan difícil comenzar y vale la pena de inmediato.

Esta pregunta es demasiado amplia para responder simplemente sí o no.

BDD es una de las herramientas que el equipo de desarrollo profesional puede usar si es necesario. El uso de Behavior Driven Development para todos los requisitos suele ser una pérdida de tiempo.

Me encanta explicar cuándo usar Behavior Driven Development explicando el concepto de Cynefin Framework.

Tiene cinco áreas / categorías de problemas / categorías de requisitos para su producto : Obvio, Complicado, Complejo, Caos y Trastorno.

En este artículo, Liz Keogh describió 5 niveles de ignorancia para los requisitos de software. Puede asignar estos niveles en Cynefin Framework:

  • 1er nivel en Obvio: todos saben cómo se debe implementar este requisito
  • 2do nivel entre Obvio y Complicado: algunas personas de nuestro equipo saben cómo se debe implementar.
  • 3er nivel en la esquina superior derecha de Complicado: hay algunos expertos en nuestra organización que ya saben cómo debería funcionar y qué debería hacer, pero solo unos pocos.
  • Cuarto nivel de ignorancia, en algún lugar entre Complicado y Complejo: alguien, en algún lugar ya lo hizo pero no en nuestra organización, por lo que no sabemos cómo debería funcionar.
  • 5to nivel en la esquina superior izquierda, en la zona compleja; ninguno lo había hecho antes.

Cuando suelo trabajar con equipos, empiezo con la clasificación de requisitos. Hacemos eso para elegir el método y las herramientas adecuadas para implementarlos. El proceso comienza con el mapeo del trabajo acumulado en Cynefin y esos 5 niveles de ignorancia.

Las cosas que están en el primer y segundo nivel de ignorancia generalmente no necesitan especificarse y aclararse, por lo que no perdemos el tiempo para escribir historias de usuarios y escenarios en pepinillo para ellas. No debería haber ningún problema para comprender esos requisitos, ya que la mayoría de los miembros del equipo saben lo que hay que hacer. (Tenga en cuenta que Obvious está cerca del Caos y si ese tipo de requisitos no se gestionan en absoluto, pronto se volverá caótico y problemático).

Nivel 3: donde tenemos acceso limitado al dominio de los expertos, el conocimiento sobre cómo deberían funcionar las cosas es un lugar perfecto para usar BDD. Aquí el valor es más alto y los costos de BDD (ningún BDD no viene gratis) están justificados por los beneficios. BDD como herramienta de comunicación funciona perfectamente cuando buscamos un intercambio rápido de conocimientos y una comprensión común de los requisitos.

Nivel quinto y, a veces, cuarto: usar BDD aquí es más como adivinar. No sabemos cómo debería funcionar y no sabemos si es posible implementar requisitos particulares de la forma en que lo describimos en nuestras Historias de usuarios y Escenarios / Ejemplos. Para este tipo de requisitos, primero estamos haciendo un trabajo de investigación y desarrollo o ingeniería inversa. Al crear algunos prototipos o picos, descubrimos cómo se pueden cumplir los requisitos. Lo que realmente sucede después de la I + D es que al crear prototipos y experimentar, obtenemos el conocimiento y pocos expertos (antiguos investigadores) aparecen en nuestra organización. Por lo tanto, los requisitos se mueven del 4to y 5to nivel al 3er nivel donde podríamos implementarlos exitosamente usando BDD.

Usar BDD en 5to y 4to nivel es a menudo confuso. Usarlo en el primer y segundo nivel es una pérdida de tiempo porque simplemente no es necesario allí.

Entonces, responda su pregunta: BDD podría usarse con éxito para nuevas empresas (así como para otros tipos de productos) pero no para todos los requisitos.

PD: Mantener su cartera de pedidos como notas adhesivas en el gráfico de Cynfin puede ser una buena idea que vale la pena probar.

PPS: Por cierto, el enfoque dogmático y apegarse al único método / enfoque de desarrollo para todo es, en mi opinión, la causa principal de la mayoría de los problemas en el desarrollo de software moderno.

“Si todo lo que tienes es un martillo, todo parece un clavo

More Interesting

¿Cuáles son los patrones de diseño más utilizados para juegos móviles en la actualidad?

¿Qué debe saber después de graduarse como ingeniero de software para obtener un trabajo fácilmente?

Para usar AngularJS en mi aplicación, tengo que exponer una API públicamente, y los datos son el USP de mi aplicación. No quiero que alguien use fácilmente todos los datos. ¿Hay alguna alternativa?

¿Qué cosas son importantes en los servicios de desarrollo de software offshore?

Cómo mostrar en mi currículum que soy un experimentado de 25 años, en lugar de un normal de más de 30 años

¿Los estudiantes de ciencias de la computación e ingeniería de software aprenden muchas matemáticas en la universidad?

¿Cuáles son algunos rasgos de personalidad o psicológicos que simultáneamente harían que alguien sea más mago, escéptico y trabajador en un campo STEM?

¿Cómo seguirías para inventar un software o una aplicación que no existe? ¿Qué categoría de aplicaciones / softwares aún no se ha visto?

¿Cómo manejan las personas grandes proyectos cuando todo lo que tienes es VI, ED y un terminal Unix?

¿Cuál es la diferencia entre defecto, error, error y falla en las pruebas de software?

¿Quién es tu genio favorito en estos campos, física, matemática, química e ingeniería? ¿Qué ha dicho él / ella sobre cómo aprenderlos?

¿Cuáles son los pros y los contras del desarrollo de software de outsourcing / offshoring a Vietnam (en comparación con otras ubicaciones de outsourcing / offshoring)?

¿Qué hace que un desarrollador front-end sea 'senior'?

Como estudiante de pregrado, ¿cómo puedo comenzar con Computer Vision?

¿Qué tan importante es el GPA en Silicon Valley para los empleados experimentados?