Dearrollo web a medida con BDD: Escenarios


En nuestro capitulo anterior vimos como empezar una nueva configuración de un entorno Symfony 3 con Behat, Mink y Selenium.

En esta ocasión vamos a dentenernos en los escenarios, esas pequeñas frases que con ayuda de Jerkins podemos usar como test de comportamiento.

Análisis de requisitos para una web a medida

Antes de escribir una sola linea de código es fundamental hacer un buen análisis de lo que se pretende lograr.  Un buen analisis ayuda a entender la idea del cliente y lo más importante, un buen análisis ayuda a tener un lenguaje con el que hablar con el cliente.

Podemos diferenciar dos tipos de clientes: Los que saben lo que quieren y los que no. El desarrollo de una aplicación web a medida es un proceso complejo y delicado que necesita de buenos factores para llegar a buen puerto.

Como tarea laboriosa y compleja no podemos empezarla sin tener unos planos de lo que vamos ha hacer. "¿Se imaginan construir Edificio de 30 plantas vanguardista sin planos?". Pues eso.

En ocasiones un cliente quiere una página web económica pero que haga exctamente lo que el quiere. Yo personalmente evitaria este tipo de clientes. Solo aceptan presupuestos muy ajustados y durante el desarrollo tratarán de incoporar cosas que se los iran ocurriendo dando como resultado una aplicación inestable y con cambios de última hora. Rápidamente nos pasaremos del presupuesto y plazos previsotos y el proyecto web termina siendo un fracaso. Para este tipo de clientes recomiendo CMS Y solo comenzar un proceso de desarrollo web a medida con un cliente que sabe lo que quiere lo que vale y es consciente que el desarrollo web a medida es un proceso y no un producto. 

En el proceso de desarrollo web a medida mediante BDD no escribimos una sóla linea de código hasta tener todos los escenarios preparados y aprobados por el cliente. Por lo que el cliente tiene claro que se va a desarrollar y lo que su aplicación web a medida será capaz de hacer. Sin ambiguedades.

Para poder conocer lo que el cliente quiere lograr en su futura página web a medida es normal encontrarnos clientes que pretenden contarte todo por telefono en 5 minutos y que con eso les des un presupuesto cerrado. Evidentemente es un gran error. Presupuestar en base a una conversación telefónica de 5 minutos, Va a generar a posterior fustración en la relación comercial. Ya que no se han analizado en profundidad los requisitos de la aplicación. Es en este punto donde un buen profesional debe imponerse y empezar a marcar los plazos y fases al cliente para el desarrollo a medida. 

La primero será tener una reunión con el cliente donde tomaremos notas sobre los escenarios que será necesario implementar.

Sobre el ejemplo de una aplicación de encuestas que haciamos en el post anterior. El cliente podría llegar con una idea vaga:

Necesito enviar encuestas a mis clientes y poder exportar posteriormente esos resultados a un archivo de excel.

O podríamos tener un cliente que tiene más claro lo que quiere.

Necesito poder crear encuestas cargando un archivo en formato excel, en el que están las preguntas, Ademas quiere tener varios usuarios. 1 administrador y 3 normales. No es neceario administrar o modificar los usuarios. El usuario administrador es el único que podrá borrar o crear encuestas. Los otros usuarios sólo podrán obtener enlaces para enviar a los clientes las encuestas. Las respuestas de preguntas de las encuestas pueden ser de dos tipos, númerico o de texto.

El menú del sitio tiene que ser parecido al menú pricipal.

Cuanta más información tengamos de un principio mejor. Hay que animar a acudir a nuestra entrevista con la información mejor desarrollada posible de su idea. Arrancar con una buena idea  es más facil que arrancar con una idea corta. En cualquier caso es la hora de recoger requisitos así que de la primera idea del cliente iremos descubriendo que más cosas necesita la aplicación web a medida que el cliente todavía no sabe que quiere.

Toma de requisitos.

El cliente suele tener claro lo que quiere, en su cabeza, nos lo contará lo mejor que pueda. Pero seguramente al no ser el desarrollo web su area de especialización utilizará un lenguaje coloquial y no técnico, podrá dar por sentado cosas que nosotros no o viceversa. He aquí el inicio del proceso de toma de requisitos. Es importante tener paciencia y no dar nada por sentado.

A partir de la idea inicial del cliente tendremos que empezar a poner en duda su idea. No con animo de desanimarle si no todo lo contrario con animo de mejorar su idea. El cliente en este punto esta abierto a criticas constructivas y esta es nuestra herramienta para terminar de sacar de su cabeza lo que el cliente no sabe contarnos. Sobre su propia idea iremos detallando los sustantivos y vervos. Los sustantivos son candidatos a vonvertirse en entidades u objetos de información. Los vervos son candidatos a convertirse en test de aceptación de comportamiento. Por ejemplo: Sobre la idea inicial:

Necesito enviar encuestas a mis clientes y poder exportar posteriormente esos resultados a un archivo de excel.

Sustantivos: clientes, encuestas, resultados, excel.

Vervos: Enviar, exportar

Empezando con el primer sustantivo tendremos que preguntar al cliente sobre esta palabra, que hace, COmo lo hace, Que información tiene, De que se compone...

Podríamos hacer algunas preguntas al cliente:

Analista: Que son sus clientes:

Cliente: Los clientes están en una aplicación externa representan clientes de mi empresa.

Analista: Como desea que enviar las encuestas.

Cliente: Por email.

Analista programador: Desea que le respondan una encuesta por email.?

Cliente: Si... o como se hace si no?

En este punto podriamos descubrir como la intención del cliente es enviar un formulario con la encuesta por email. El no lo sabe, le llegan correos spam y publicidad a diario y hasta conoce un poco de HTML y sabe que muchos están en HTML por lo desde su punto de vista le parece correcto esta aproximación. Pero nosotros como expertos si sabemos la cantidad inumerable de problemas que puede suponer enviar un formluario a través de un correo electrónico y responder del mismo modo al formulario para guardar sus datos en una base de datos). A caso es posible esto en un contexto de seguridad adecuada?

Tambien podemos usar páginas web parecidas a lo que quiere lograr o módulos y librerias ya creados para descubrir más preguntas pertinentes para el cliente y de este modo más requisitos ocultos en su cabeza.

Podriamos  preguntarle sobre los usuarios. Si va a necesitar modificarlos. Si se quiere que se puedan logar con redes sociales.

Podriamos preguntarle tambien sobre requisitos no funcionales, tratar de averiguar por ejemplo. Que pasa si no se responde una encuesta. Podríamos descubrir con sorpresa que el cliente quiere de forma fundamental para su negocio poder identificar que usuarios no responden a la encuesta. O podríamos descubrir que no quiere que se respondan encuestas por usuarios menos de edad. O que desea incluir en las encuestas un campo con el que poder incluir un texto personalizado para cada encuesta.

Después de esta reunión con el cliente deberemos tener claro las siguientes cuestiones:

El objetivo (Que se pretende lograr): Crear y enviar encuestas a los clientes, podría haber varios objetivos

Quien (Usuarios que se benefician del objetivo): Adminisitrador

Para que se quiere lograr el objetivo: Comprobar satiscacción de los clientes con el producto comprado.

Escenarios (Comportamientos de la aplicación o requisitos. Una lista de funcinalidades que debe cumplir la aplicación para cumplir con las exigencias del cliente.):

  • Ver indice encuestas.
  • Crear una encuesta desde un archivo excel
  • Borrar encuesta
  • Crear enlace de acceso a la encuesta para determinado cliente
  • Expertar respuestas de la encuesta a excel
  • Responder encuestas.
  • Responder encusesta en blanco.

Esta lista conformará los escenarios que se deberán incoporar a nuestros test, el cliente debe aceptar estos escenarios, Confirmar que no falta nada que piense que tenga que poder hacer su aplicación y que no haya nada que haga su aplicación y no debiera.

A partir de este punto podremos dejar más tranquilo al cliente y empezar a desarrollar cada escenario. Esto es, escribir una serie de pasos que se tienen que cumplir para poder dar por cumplido el requisito.

Por ejemplo "Ver indice encuestas":

Podríamos empezar escribiendo un test que escriba alguna encuesta, navegue hasta la página de encuestas y compruebe que se ven las encuesta que escribimos al principio del test.

Esta parte trataré de desarrollarla más en profundidad en el siguiente post.

Gracias por estar aquí,

Un saludo.

Joao

 

Publicado el 03/03/2016 a las 16:58

Comentarios en el post


Esta web utiliza cookies, puedes ver nuestra la política de cookies, aquí Si continuas navegando estás aceptándola
Política de cookies +