¿Cómo debe escribir un gerente de producto los requisitos para su equipo de ingeniería donde el entregable es un conjunto de servicios web?

Si entregable es de hecho un conjunto de servicios web, entonces consideraría esto como un ejercicio de diseño de API. Probablemente no desee hacer una especificación adecuada, ya que esto es algo que debería ser el rol de un arquitecto de software. Lo que debe hacer es describir los casos de uso de cómo se utilizará la API y dejar los detalles técnicos. Incluso en este caso, es posible que desee agregar algunos requisitos genéricos en las propiedades de la API (algunos pueden considerarse como elementos para los que el equipo de desarrollo debería tener respuestas):

  1. Requisitos de seguridad : deberá decidir quién y cómo puede acceder a su servicio web, cómo se proporciona y verifica el acceso, cuáles son los derechos potenciales, si desea proporcionar una capacidad de auditoría, etc.
  2. ACIDIDAD de sus transacciones: para cada caso de uso, será importante comprender si la operación es: atómica, consistente, aislada y duradera.
  3. Requisitos de rendimiento y calidad de servicio : los casos de uso deben incluir requisitos de rendimiento. ¿Se supone que esta función procesa 1 línea o 100 millones, qué tan rápido debe ser el procesamiento?
  4. Manejo de errores / excepciones : asegúrese de que los errores / excepciones se manejen de manera adecuada y coherente
  5. Registro : en algún momento inevitablemente sucederá algo malo, los registros deben estar allí
  6. SECO : no se repita: una cosa / entidad / función debe definirse solo una vez
  7. Actualizaciones : en algún momento su API se actualizará, asegúrese de que tanto la API como su cliente estén listos para ello, piense en la coexistencia y / o la compatibilidad con versiones anteriores. A veces uno debe prepararse para una actualización antes de que suceda.
  8. Licencias : ¿se utilizará la API dependiendo de algún tipo de licencia? ¿De qué manera se verifican los parámetros de licencia? etc.
  9. Documentación : cualquier API es algo que se utilizará más adelante, por lo que debe documentarse adecuadamente y la documentación debe ser uno de los entregables.
  10. Nombres y coherencia : API es algo que será utilizado por otros, por lo que es importante que sea fácil de entender y seguir. Asegúrese de especificar convenciones de nomenclatura como uno de los requisitos

Y el más importante: cualquier API (servicio web en nuestro caso) es un producto donde los clientes son desarrolladores (ya sea dentro o fuera de su organización). Trátelos como tal . (Realice revisiones, recopile comentarios, cree varios (no menos de 3) clientes de su API para probarlos y recopile comentarios nuevamente e, incluso, implemente algunos de ellos).

Par de enlaces:

  • Aquí se puede encontrar una gran discusión sobre el diseño adecuado de API (algo técnico) por Joshua Bloch de Google: http://lcsd05.cs.tamu.edu/slides…
  • Enfoque de la FAA para las especificaciones de servicios web (mucho más formalizado): http://www.faa.gov/about/office_…

No es diferente en el frente que cualquier otro producto. Responda estas preguntas antes de definir cualquier producto o requisitos técnicos.

  1. ¿Quiénes son nuestros clientes objetivo?
  2. ¿Qué están tratando de lograr – panorama general?
  3. ¿Qué los detiene y por qué?
  4. Qué tiene que cambiar, por función laboral, y por qué. Compile una lista de escenarios de usuario en formato de historia de usuario sin ninguna implicación técnica.

una vez que tenga el contexto comercial, defina el producto y los requisitos técnicos.

Escribir requisitos para un servicio web es difícil. Debe anticipar los servicios que necesitará un producto final eventual, pero el producto final no puede existir hasta los servicios. Como gerente de producto, debe definir uno o más productos finales hipotéticos que usarían los servicios. Imagina que eres el gerente de producto de esos productos. Escriba casos de uso, wireframes, etc. Elija los productos finales que probablemente serán los primeros clientes de sus servicios. Esto forzará la priorización de qué servicios deben construirse primero. Luego, deje que el equipo de ingeniería abstraiga los servicios necesarios para construir los productos finales. También es una buena idea construir los productos finales hipotéticos como implementaciones de referencia para validar y demostrar los servicios.

Para agregar a lo que dijo Lev Kurts, los servicios web se pueden utilizar para lograr objetivos más grandes. Si puede anticipar los casos de uso de los servicios web (como el orden de uso, rutas felices, rutas de error) capturar esos usos previstos proporciona muchos beneficios. Primero, puede compartir esos casos de uso más grandes con la comunidad de partes interesadas para obtener su validación. Esos escenarios también pueden usarse para probar el sistema. He visto casos de uso capturados en palabras, diagramas de secuencia UML, incluso diagramas de actividad. Algunos de estos métodos pueden funcionar para usted. Dos enlaces que pueden ser de su interés: Página en ibm.com y Ayuda –

Trato de escribir requisitos centrados en para quién es el producto, qué necesita hacer y por qué debe existir.

Para un servicio web, describo cuál debería ser la experiencia del usuario, qué proporcionará el usuario y qué tipo de datos debe proporcionar el servicio a cambio. Al hacer esto, proporciono el “Quién”, el “Por qué” y el “Qué”: para quién es el producto, qué se supone que debe hacer, por qué lo hace, y dejo que el equipo de ingeniería determine el cómo. (Múltiples servicios, un servicio, toda la arquitectura y la plomería necesarias, lo que sea que necesiten construir para obtener el qué para el que satisface el por qué).

1.) Contrata grandes ingenieros
2.) Dígales que el problema del mercado está siendo resuelto por la necesidad de API
3.) Dispara PM cuando los ingenieros resolvieron el problema sin su aporte
4.) Prosper