¿Cuál es la forma adecuada de manejar los requisitos implícitos?

8

Estoy en I + D trabajando en un nuevo producto de software.

Comprensiblemente, la administración se enfoca en las características principales que obviamente le dan una ventaja al cliente. Pero hay muchos requisitos que también pueden considerarse importantes (por ejemplo , rendimiento, extensibilidad futura, trazabilidad de datos, seguridad, interfaz de usuario fluida ). Estos requisitos implícitos son probablemente los más grandes en número de cualquier producto, y si no se cumplen pueden dar lugar a un cliente insatisfecho.

Me temo que de alguna manera se espera que durante el desarrollo estas cosas se implementen automáticamente. Sin embargo, para mí, todo es un aspecto atómico que requiere atención y esfuerzo de desarrollo.

Tengo la sensación de que la gerencia puede estar demasiado ocupada para prestar demasiada atención a tales aspectos. Por mi propio orgullo de desarrollador, control de calidad y poder dar cuenta del esfuerzo que gasto, ¿ cuándo y cómo debo documentar y comunicar los requisitos implícitos?

(es decir, características que existen en un producto, pero que no se han mencionado explícitamente ni con el cliente ni con la administración)


Aclaración

Gracias por el interés en la pregunta, la esencia de las respuestas hasta ahora parece ser:

"Debe hacer explícitos los requisitos implícitos".

Ratas ... eso no se me ocurrió.

Los requisitos que quiero decir pueden ser de los siguientes tipos:

  • El cliente no puede escuchar sobre estos requisitos, porque presentaré una larga lista de formas en que el producto puede fallar, en lugar de hablar sobre cómo los hará felices.
  • La gerencia ocupada siente que estoy perdiendo su tiempo, cuando hablo de características "obvias".
  • Solo podré describir algunos de estos requisitos durante la implementación. Durante la planificación, puedo tener la sensación de que un problema en particular puede requerir un esfuerzo centrado durante el desarrollo.
  • No estoy a la altura necesaria en el tótem de la compañía para dictar mis condiciones de trabajo.

Estoy pidiendo pautas sobre cómo semi-formalizar los requisitos [implícitos], mientras hago menos esfuerzo que los requisitos completos, pero me mantengo preparado para el día del juicio, para que no me atrapen con las manos vacías.

Rafael Emshoff
fuente
55
¿Sus "requisitos implícitos" se traducen en algo que sea procesable? Y si es procesable, ¿tiene una manera de determinar si las acciones tomadas han tenido éxito? Es un poco tonto hacer algo o tratar de hacer que la gente haga algo si no tienes idea de cómo saber si la acción ha sido exitosa.
Vietnhi Phuvan
55
Para el registro, tanto el rendimiento como la seguridad no deben ser requisitos implícitos bajo ninguna circunstancia. Hacerlos implícitos es la razón por la cual tantos sistemas tienen mala seguridad y peor rendimiento.
HLGEM
¿Cuál es tu papel aquí? ¿Eres el escritor de requisitos?
@ Joe Strazzere Soy el desarrollador
Rafael Emshoff

Respuestas:

3

Hacer explícitos los requisitos implícitos es la respuesta correcta.

Sobre sus restricciones de seguimiento:

El cliente no puede escuchar sobre estos requisitos, porque presentaré una larga lista de formas en que el producto puede fallar, en lugar de hablar sobre cómo los hará felices.

Imagina que eres arquitecto, diseñas edificios para grandes empresas.

Big Co. Inc. le pide que construya un rascacielos para ellos en la orilla. Tiene que tener una piscina en el techo y otra piscina en el décimo piso. Tiene que tener un jardín de pared que cubra la pared exterior desde el piso 15 hasta el 17.

Estos son los requisitos del cliente. ¿Dudaría en agregar a la lista de requisitos los requisitos para que el edificio soporte su propio peso más dos piscinas llenas de agua y un jardín de pared hughe?

¿Dudaría en agregar que debe tener plomería, cableado eléctrico y un sistema para llenar la piscina con agua y mantenerla limpia?

Usted es el arquitecto, sabe lo que es necesario para un edificio, eso es lo que le están pagando.

Sabes que un edificio con más de tres pisos necesitará un ascensor, no necesitas que nadie te lo diga.

La gerencia ocupada siente que estoy perdiendo su tiempo, cuando hablo de características "obvias".

Entonces el ascensor es obvio. Tan obvio como es, todavía tiene un impacto en el costo general, la fuerza laboral general requerida, la ETA para el proyecto y probablemente otros aspectos.

Solo podré describir algunos de estos requisitos durante la implementación. Durante la planificación, puedo tener la sensación de que un problema en particular puede requerir un esfuerzo centrado durante el desarrollo.

Aquí es donde se rompe la analogía del arquitecto, principalmente debido a la naturaleza fluida de TI. Mi único consejo aquí es que puede beneficiarse de un proceso iterativo que le permite planificar lo no planificado. Ágil parece bastante popular.

No estoy a la altura necesaria en el tótem de la compañía para dictar mis condiciones de trabajo.

Su empresa debe tener a alguien responsable de asegurarse de que la lista de requisitos esté completa.

  • Si no lo hacen, tienen un gran problema, intenta que lo arreglen o comienza a pulir tu currículum.
  • Si lo hacen pero esa persona no hizo bien su trabajo, llámelo y escale según sea necesario.
  • Si lo hacen y esa persona eres tú, pero no se te dio la autoridad para hacer tu trabajo, entonces te están pidiendo que hagas algo imposible, tu mejor jugada es no jugar (es decir, tratar de hacer que lo arreglen o comienza a pulir tu currículum).
GnP
fuente
11

Define todo. El único potencial negativo para hacerlo es que puede recuperar algo quejándose de que sienten que estás diciendo lo obvio.

Indique lo obvio entonces.

Esta es la clave: cualquier cosa que no defina puede volver a su cara con "nunca nos dijo ..."

Cualquier cosa que no esté definida puede explotar en tu cara. "Más vale prevenir que curar" son excelentes palabras para vivir.

Chris E
fuente
1
Para ampliar esto: Obvio para una persona no es necesariamente obvio para los demás. Esto se vuelve mucho más importante cuando se trata de desarrolladores subcontratados y aumenta algunas muescas más cuando se llega a desarrolladores offshore. Explica todo explícitamente y no asumas nada. Como ejemplo, recientemente me ocupé de un problema en el que las edades se calculaban de manera incorrecta (un error fuera de lugar). Todo se redujo a un problema cultural en cómo la gente "contaba" la edad al hablar: "en su décimo octavo año" (nacido en algún lugar entre 17 y 18 años) frente a "18 años" (ha completado 18 órbitas del sol).
alroc
9

El término de la industria para los requisitos que usted describe se llama:

Requerimientos no funcionales

En todos los aspectos, deben identificarse mediante recursos técnicos y agregarse al plan del proyecto como unidades atómicas de trabajo. Si está haciendo un proyecto ágil, se escribirán en forma de historia de usuario y se agregarán a la cartera de pedidos a tratar. Como recurso técnico, debe abogar por el tiempo necesario para trabajar en ellos y asegurarse de que tengan la prioridad adecuada durante su sesión de planificación de sprint o de proyecto con la empresa. Además, el control de calidad también debe diseñar un plan de prueba apropiado para estas unidades de trabajo.

maple_shaft
fuente
4

Como sucede, tuvimos algunos de esos requisitos implícitos que nos mordieron porque no estaban definidos y, por lo tanto, el control de calidad no los probó y los errores se pusieron en producción y no se encontraron durante algún tiempo, lo que causó no solo la molestia de explicar a los clientes el problema y por qué no se encontró antes, sino un problema legal real para nuestra empresa. (Era un informe que trataba sobre información que tenía que ser reportada al gobierno).

Si es lo suficientemente importante como para hacerlo, debe ser probado y, por lo tanto, debe ser parte de los requisitos.

HLGEM
fuente
1
Yikes Las dependencias legales siempre deben ser explícitas, nunca implícitas.
La parte implícita tenía que ver con cómo manejábamos las excepciones y cuáles deberían haber sido realmente. Las personas que lo hicieron pensaron que tenían sentido común, pero desde que introdujeron un error ...
HLGEM
2

Los requisitos pueden provenir de cualquier fuente, siempre que se puedan rastrear hasta su origen y no entren en conflicto entre sí. Los clientes pueden proporcionar sus requisitos, pero los requisitos también provienen de leyes y reglamentos, estándares de la industria, necesidades comerciales e incluso experiencias previas aprendidas al entregar productos similares a otros clientes.

Cada uno de estos requisitos debe capturarse en cualquier método que utilice para capturar los requisitos para que no se olvide. Hacer esto también les permitirá compararlos para garantizar que un requisito adicional no esté realmente en conflicto con un requisito del cliente o un requisito del cliente no esté en conflicto con las regulaciones, por ejemplo.

Debería capturar estos requisitos y administrarlos desde el inicio del proyecto y transmitirlos al personal que está diseñando, implementando y probando el software. Hacer esto asegurará que todos entiendan completamente lo que se supone que es el software entregado.

Sin embargo, cuando agrega uno de estos requisitos, debe verificarlo con las partes interesadas apropiadas. No puede simplemente agregar requisitos sin asegurarse de que aún puede entregar el software dentro del cronograma y presupuesto previstos.

Thomas Owens
fuente
1

Esto es cuando entra en juego un equipo diverso que tiene personas que se especializan en diferentes áreas. También requiere más sr. personas en el equipo para liderar el resto.

Por ejemplo, el rendimiento, la extensibilidad futura y la trazabilidad de los datos deberían ser cosas que se piensan desde el principio. No son una casilla de verificación que puede volver atrás y agregar más tarde, deben estar en la base de su diseño.

En cuanto a la seguridad, esto es cuando tener a alguien que esté familiarizado con esta área esté en su equipo desde el principio para ayudarlo con el proceso de diseño.

El diseño de la interfaz de usuario tiene la tendencia a morder un producto si no se hace correctamente. Tener una persona UX en el equipo haciendo maquetas y flujos de pantalla para el equipo es donde entra en juego. Pero, de nuevo, esto es algo que debe hacerse por adelantado.

Sus requisitos pueden ser un sitio web que permita a los usuarios consultar el inventario actual de una tienda local. La forma en que diseñas ese sistema es donde esos requisitos implícitos entran en juego.

Desde el punto de vista de la gestión de proyectos, esto significa que debe haber un tiempo de diseño en el presupuesto, así como un tiempo de prueba adecuado. También debe haber registros con el cliente para mostrarle lo que se ha hecho para asegurarse de que está en el camino correcto.

Tyanna
fuente
0

Cualquier requisito implícito que termine causando trabajo para el equipo debe hacerse explícito.
Si no, terminarán tampoco

  1. mordiéndote más tarde cuando la gente los críe de todos modos, causando desbordamientos en el desarrollo
  2. ignorado y luego reportado como errores
  3. implementado de todos modos, a pesar de no haber sido programado, causando desbordamientos e informes de errores porque no se implementaron como el cliente había pensado que deberían haber sido pero nunca se mencionaron.

Entonces, al hacer explícitos los requisitos implícitos, te ahorras muchos dolores de cabeza.

jwenting
fuente