Uso de herramientas de validación: creación de prototipos, revisión de encuestas, revisión de documentos y requisitos del usuario

Publicado el 10 noviembre, 2020 por Rodrigo Ricardo

Introducción

Estoy trabajando en Pancake House, programando el robot Foober de Fred para que trabaje la parrilla allí. Durante mi reunión de requisitos para documentar las expectativas de Fred, obtuve una copia del menú, observé al cocinero y hablé directamente con Fred para conocer su visión de Foober. Tomaré lo que aprendo de estas actividades y escribiré un borrador de un documento de requisitos. Fred les dio a sus clientes una encuesta, que revisaremos al mismo tiempo que revisamos el documento de requisitos. Probablemente haré cambios en el documento de requisitos en función de mi conversación con Fred al respecto (la revisión), en las respuestas a las encuestas y en los comentarios de Fred sobre el pankcake-fu de Foober.

Validación de requisitos

La validación de requisitos es lo que hago para asegurarme de que entiendo lo que mi cliente quiere que haga el programa que estoy escribiendo. Para el proyecto Pancake House, esto significa revisar mi documento de requisitos con Fred y analizar las encuestas para ver qué cambios se deben realizar en el menú.

También escribí un programa prototipo usando mi robot, Foober, para probar y demostrar una pequeña parte de la fabricación robótica de panqueques. Todo esto es parte de lo que debería ser una conversación continua con el cliente. A medida que avanzamos en el proceso de validación de estos requisitos, pueden cambiar, lo que requiere que se realicen algunos ajustes.

Revisión de documentos de requisitos

Ahora es el momento de revisar mi documento de requisitos para asegurarme de que realmente represente lo que Fred quiere. Este es el primer lugar para comenzar en el proceso de validación porque el documento detalla lo que quiere el cliente. Si el documento de requisitos no coincide con las expectativas del cliente, el programa no será el correcto.

El borrador de mi documento de requisitos detalla cómo hacer de Foober un robot de parrilla competente. Él tendrá que:

  • Sepa cómo hacer cada plato de panqueques del menú.
  • Sepa cómo preparar otros platos a la parrilla en el menú, como huevos, salchichas o tocino.
  • Saber preparar y decorar cada plato del menú.
  • Sepa cómo realizar pedidos en la estación de recogida
  • Sepa cómo llamar al servidor correspondiente para recoger un pedido.

Adjunté un menú para documentar los platos de panqueques, los platos y la guarnición de los platos que Foober necesitará saber. Finalmente, he descrito cómo hacer pedidos y llamar al servidor correspondiente. Foober no estará programado para mezclar masa para panqueques ni para hacer ningún trabajo de preparación, como lavar y cortar frutas.

Fred está contento con la mayor parte del documento, pero quiere un par de cambios: ‘Me gustaría que Foober pudiera hacer el trabajo de preparación, en caso de que el chico de preparación no esté por alguna razón. Y creo que también debería poder mezclar masa para panqueques ‘.

Discutimos eso un poco para poder tener una mejor idea de los detalles. Incluirá no solo lavar y cortar frutas, sino también preparar otros ingredientes como chispas de chocolate, tocino precocido y los elementos para diferentes platos de panqueques.

Después de pensarlo, le digo a Fred: ‘Puedo programar a Foober para que haga el trabajo de preparación, pero me llevará más tiempo que los tres meses que me has dado y, por supuesto, eso costará más’. Aquí hay una sugerencia: déjeme programar a Foober como discutimos. Puedo hacer eso en los tres meses originales, al precio cotizado. Dado que la preparación de alimentos no es la máxima prioridad para usted, ¿por qué no revisamos eso después de que Foober esté haciendo, sirviendo, decorando y colocando pedidos?

Fred lo pensó un poco y estuvo de acuerdo en que el trabajo de preparación no era la prioridad en este momento, por lo que podía esperar. Esto es bastante típico de una reunión así. Cuanto antes podamos publicar este tipo de solicitudes, más fácil (y económico) será atenderlas.

Debido a que la cocinera de Fred se jubilará en tres meses, el objetivo más importante es reemplazarla por Foober. El trabajo de preparación ya lo hace otra persona, por lo que no es tan importante como el trabajo a la parrilla. Además, el presupuesto de Fred no asigna fondos para programación adicional en este momento. (¡Y no trabajaré solo por panqueques!)

Revisión de la encuesta

Lo siguiente que debía hacer era revisar las encuestas. La revisión de la encuesta nos permite ver posibles cambios en el negocio, que pueden (o no) afectar el proyecto de programación.

Encontramos sugerencias sobre la decoración y el horario de atención, que no afectaron mi trabajo. También encontramos sugerencias de menú, que sí afectaron mi trabajo. Fred me dijo: ‘Parece que el chucrut y los panqueques de cebolla no son un gran éxito. Sigamos adelante y eliminemos esos del menú. (¿Por qué no me sorprendió?)

Fred también recibió algunas solicitudes interesantes de nuevos sabores. Una sugerencia fue Banana Split Pancakes: panqueques con rodajas de plátano, fresas y chispas de chocolate con crema batida, con una selección de almíbares. ¡Otro fue panqueques de mantequilla de maní y plátano con crema batida y tal vez un poco de jarabe de chocolate! Fred pensó que podrían ser algo para probar. Le dije que inventara recetas y las agregaría a la programación de Foober.

Hasta ahora, en nuestra revisión y validación, hemos agregado una posible segunda fase del proyecto para enseñar el trabajo de preparación de Foober, en lugar de extender el proyecto más allá de la fecha en que se necesitaba el nuevo cocinero. Las encuestas no tuvieron mucho efecto en lo que necesitaba programar, además de eliminar una receta del menú y agregar dos nuevas.

Creación de prototipos

A lo largo de los años, he descubierto que incluso los requisitos escritos, revisados ​​varias veces, pueden tener agujeros y malentendidos. A veces, son el resultado de suposiciones tácitas. A veces, son el resultado de un malentendido de lo que significa un término.

Una de las mejores formas que he encontrado para salir de este tipo de trampa es construir un prototipo simple para demostrar cuáles son los requisitos que entiendo. El prototipo pretende ser un modelo simple de lo que hará el programa real. Una vez que se construye el prototipo, consigo que ingresen tantos usuarios como sea posible y, como decimos en el negocio, lo golpeo para ver cómo funciona y darnos su opinión. Ese es el objetivo de la creación de prototipos : demostrar los elementos centrales de lo que debe hacer un programa para obtener comentarios de los usuarios.

Mientras Fred revisaba el documento de requisitos y las encuestas, hice algunos trabajos preliminares en casa con Foober. Lo programé lo suficiente para poder hacer panqueques simples y ponerlos en un plato. Mi idea de hacer esa parte del programa primero fue simple: si Foober no podía hacer panqueques simples y ponerlos en un plato, no podría hacer los más complicados, y mucho menos adornar y prepararlos para recogerlos.

Para mi prototipo, Foober no iba a adornar ni salir a recoger. Solo iba a hacer panqueques simples y ponerlos en un plato. Mi código fue francamente rápido y sucio, e hice un poco de manipulación. Por ejemplo, debido a que estos eran panqueques simples, no tuve que codificar Foober para agregar trozos adicionales como chispas de chocolate o arándanos. Eso significaba que no tenía que hacer que Foober hablara con una base de datos de recetas, lo que habría llevado mucho más tiempo y estaba fuera del alcance de mi prototipo. Necesitaba demostrar las habilidades para hacer panqueques de Foober y nada más.

Una vez que tuve el código hecho, pasé a Foober a través de sus pasos. Estaba feliz con los panqueques que hizo, ¡así que le dije a Fred que Foober estaba listo para demostrar su dominio del panqueque-fu! Fred nos invitó a Pancake House una tarde cuando todo iba lento. Podría haber ido mejor …

Cuando llegamos allí, Fred tenía parte de la cocina preparada para la demostración, la masa de panqueques lista y algunos platos para que Foober pudiera poner panqueques en ellos. Foober se acercó a la parrilla, tomó la espátula y la jarra de masa y … se detuvo.

‘Tonterías’, dije, ‘es hora de hacer panqueques’.
Nada.
‘¡Foober, enséñale a Fred cómo haces panqueques!’
Código Postal.
‘Foober, ¡¿vas a hacer panqueques o no ?!’
‘¡No puedo, jefe!’ respondió.
‘¿Por qué no?’
¡La plancha está demasiado fría y no puedo subirla lo suficiente!
‘¿Que qué?’
‘La plancha está puesta a 260 grados. ¡Debe estar a 500 grados y solo sube a 300 grados! ‘

Miré a Fred, quien se echó a reír. “Todo el equipo de mi cocina es europeo, lo que significa que todos los controles están en grados Celsius, no en Fahrenheit”.

‘Oh’, dije. Conecté mi computadora portátil a Foober y cambié la temperatura requerida a 260 grados. Debido a que a Foober no le importaba la diferencia entre Celsius y Fahrenheit, todo lo que tenía que saber ahora era para qué debería estar preparada la parrilla. Una vez hecho esto, comenzó a preparar algunos panqueques, uno a la vez.

Fred puso una mirada de preocupación en su rostro. ¿Es esa la única forma en que puede hacerlos, un panqueque a la vez? preguntó.

‘Bueno’, dije, ‘en este punto, solo quiero que haga panqueques decentes. Cuando empiece a programarle el menú, sabrá cuántos panqueques se necesitan para cada plato y se encargará de tantos platos como haya asientos para los clientes, todo a la vez.

‘¿Qué sucede cuando nos golpean con una casa llena y pedidos para llevar? ¿Qué hará entonces?

Miré a Fred a los ojos y le dije: ‘¿Qué quieres que haga?’

Después de las revisiones

Entonces, llevé a Foober a Pancake House para cocinar algunos panqueques y descubrí que, como la NASA, tenía un problema de ‘unidades de medida’, lo que causó cierta confusión a Foober hasta que modifiqué su programa. Fred también expresó su preocupación cuando Foober comenzó a hacer un panqueque a la vez, lo que me llevó a descubrir que necesitaba aumentar la cantidad de platos que Foober necesitaba para dar cuenta de una casa llena y pedidos para llevar.

El resultado de las reuniones y la demostración fue que volvería y actualizaría el documento de requisitos para reflejar lo que Fred y yo habíamos aprendido. También actualizaré la programación del prototipo para demostrar que Foober gestiona varios pedidos.

Resumen de la lección

Entonces, para resumir: la recopilación de requisitos y la validación de requisitos debe ser una conversación continua entre usted y su cliente. Trabajará con su cliente para validar lo que entiende que son sus requisitos. Esta conversación probablemente tomará varias vueltas a lo largo del ciclo, actualizando y cambiando su documento de requisitos.

Las herramientas que utilizará para obtener esta validación son:

  • Revisión del documento de requisitos para verificar que su documento de requisitos describe con precisión lo que el cliente quiere que haga el programa. En nuestro caso, Fred decidió que quería que Foober hiciera el trabajo de preparación además de cocinar.
  • Revisión de encuestas para analizar los resultados de las encuestas dadas a su cliente y / o sus clientes. Estas encuestas no se limitan necesariamente a temas sobre su programa. Pueden incluir otras preguntas relacionadas con la empresa que no afectarán directamente a su código. La encuesta de Fred encontró algunos posibles elementos nuevos en el menú, pero también tenía otros datos sobre el horario y la decoración. Tendré que programar los nuevos elementos del menú, pero no tendré que preocuparme por el horario de la tienda o por volver a decorar el lugar.
  • La creación de prototipos es, con mucho, mi herramienta favorita porque puedo poner una muestra del programa en manos del cliente y generar comentarios mucho más valiosos que la revisión de un documento. ¡Mi prototipo con Foober hizo exactamente eso!

Y, ahora que parece que tenemos los principales requisitos definidos, necesito comenzar a hacer un análisis serio.

Resultado de aprendizaje

Después de ver esta lección, podrá explicar cómo utilizar una serie de herramientas de validación, incluida la revisión de documentos de requisitos, revisión de encuestas, requisitos de usuario y creación de prototipos.

Articulos relacionados