¿Cómo se escribe una hoja de especificaciones para desarrolladores web?

Nuestros clientes a menudo vienen a nosotros con una consulta similar a esta. Tienen en mente su aplicación web o idea de producto digital y desean compartirla con un equipo de desarrollo para que puedan obtener una cotización y un cronograma.

(Descargo de responsabilidad Soy el fundador de Strategic Path, una red de más de 2500 ingenieros independientes que crean productos digitales).

La buena noticia es que no necesita perder un tiempo precioso tratando de definir cada cosa posible que hará su aplicación, y francamente a nadie le gusta escribir (o leer) documentos detallados de requisitos.

A continuación se muestra el proceso que hemos desarrollado y las instrucciones que proporciono a nuestros clientes sobre cómo escribir un documento de requisitos que sea lo suficientemente bueno como para obtener una estimación razonablemente precisa de nosotros u otra tienda de desarrollo. He encontrado que es el equilibrio correcto entre estar preparado y ser ágil. En otras palabras, el mínimo esfuerzo necesario para comenzar a construir un gran producto.

También tenemos una Plantilla de requisitos de producto gratuita para acompañar estas instrucciones.

EL MARCO “DESCUBIERTO MÍNIMO”

A menudo, el propietario de un producto tendrá grandes ideas para su proyecto y todas las características que pueda tener en el futuro. Soñar en grande es genial, pero es extremadamente importante desde el principio reducir su enfoque al conjunto mínimo de características que necesita en la primera versión. Esto se llama el producto mínimo viable. Después de lanzar su producto y recibir comentarios de sus usuarios, puede decidir qué características adicionales desea agregar. Pero mientras escribe su documento de requisitos, aclare todas esas posibles características futuras y simplemente defina las que se incluirán en la primera versión de su producto.

Nota: Por supuesto, si hay una característica futura que debe conocerse desde el principio, entonces el equipo de desarrollo debe saber que se acerca y hablaré sobre cómo incluirla.

Preámbulo suficiente, a continuación se presentan las secciones que sugiero para un documento de requisitos simple:

  1. Metas
  2. Personas de usuario
  3. Historias de usuarios
  4. Mapa del sitio
  5. Descripciones de página
  6. Wireframes (opcional)
  7. Requerimientos no funcionales
  8. Riesgos
  9. Iteraciones futuras

METAS

Las metas y objetivos comerciales sirven como contexto, mostrando al equipo de desarrollo por qué están construyendo lo que están construyendo.

Aquí hay algunas preguntas comunes que puede hacerse al desarrollar esta sección:

  • ¿Cuál es el propósito de este proyecto?
  • ¿Cuáles son los problemas que resolverá?
  • ¿Cómo racionalizará o mejorará el proceso actual o facilitará un nuevo proceso?
  • ¿Cuál es la visión del producto?

Consulte nuestra Plantilla de requisitos de productos gratuitos para obtener más ejemplos.

PERSONAS DE USUARIO

Las Personas de usuario son individuos hipotéticos que coinciden con su audiencia deseada o real. Pensar en los antecedentes de estos usuarios mejorará su capacidad para crear un producto que se adapte a sus necesidades.

Los usuarios son una de las áreas en las que las personas tienden a ahogarse. Así que establezcamos algunas reglas para mantenerlo a flote.

  • Cubre los tipos principales de usuarios. No necesita crear una persona para cada tipo de usuario, solo lo suficiente para ilustrar los grupos principales que utilizarán su producto. Para aplicaciones simples, 3 buenos perfiles cubrirán más del 80% de su base de usuarios, pero si su aplicación es compleja, es posible que necesite más.
  • Concéntrate en lo que sabes. Inventar detalles para simplemente llenar un perfil de usuario final es contraproducente.
  • Comience con estas 5 métricas. Ocupación, edad, género, ubicación, educación. Serán el marco para su perfil.
  • Nombre a sus usuarios finales. Es más fácil relacionarse con “David el Ejecutivo” que con el “Usuario final D”.
  • Dale a cada perfil un objetivo. Cada usuario necesita un objetivo que se ajuste a su perfil. Esta será su razón de ser.

Básicamente, todo se reduce a esto: sus personajes deben ser lo suficientemente detallados como para permitirle ver el producto a través de sus ojos. Cada perfil debe funcionar como otra persona en la sala al tomar una decisión. “¿David iniciaría sesión para leer su mensaje o deberíamos enviárselo por correo electrónico?”

Si tiene un sitio web existente, use Google Analytics para ayudarlo a crear estos perfiles. Le brinda información invaluable, puede ver de dónde provienen sus visitantes, qué palabras clave usaron para encontrarlo y qué contenido y comportamientos exhiben en línea. Si este es un producto nuevo, Alexa (y otros sitios similares como Similar Web) le proporcionarán datos similares para su competencia.

HISTORIAS DE USUARIOS

Las historias de usuario son descripciones breves de una característica, contadas desde la perspectiva de uno de sus perfiles de usuario final recién creados. Por lo general, están estructurados de la siguiente manera:

Como [tipo de usuario], quiero [algún objetivo] para que [alguna razón].

Las historias de usuarios son un punto de partida, no un destino. A menudo es mejor pensar en ellos como indicadores de sus eventuales requisitos. Estas historias son vitales porque las discusiones que comienzan ayudarán a dar forma a su arquitectura y diseño de contenido.

Entonces, ¿cómo puede usar este concepto para hacer avanzar su producto sin atascarse en cientos de historias e ideas destacadas?

  • Limítese a historias de alto nivel (y debe tener). Estas historias de alto nivel se conocen como épicas y se pueden dividir posteriormente en historias más pequeñas y manejables.
  • Tus historias deben ser cortas y específicas.
  • Deben describir quién necesita qué y por qué.
  • Deben estar centrados en el usuario. Recuerda que puedes usar tus personajes.

Aquí hay un ejemplo enfocado en un rol de usuario:

  • Como administrador, quiero poder ver nuevos productos y categorías de productos a medida que se solicitan para poder escribir contenido para el sitio web.

Y aquí hay uno más centrado en la persona del usuario:

  • Como usuario del sitio web, es vital elegir el producto correcto. Quiero ver mis opciones de productos una al lado de la otra para poder tomar una decisión informada rápidamente.

No tiene que escribir una historia de usuario para cada pequeña funcionalidad en su aplicación por adelantado. Debería centrarse en las epopeyas porque los detalles se desarrollarán cuando se creen estructuras y diseños. Épicas y desglosadas en historias más pequeñas en las sesiones de preparación de pedidos pendientes. Recuerde, en este momento está escribiendo para brindar a los diseñadores y desarrolladores la información mínima necesaria para iniciar una conversación productiva sobre cómo crear su aplicación.

MAPA DEL SITIO

Una vez que se definen sus historias de usuario principales, debe tener una idea sólida de qué páginas o pantallas se ubicarán en su aplicación. El mapa del sitio es el primer paso para documentar esto.

Un buen mapa del sitio incluye lo siguiente:

  • Una lista completa de todas las páginas o pantallas. Esto incluye todo, desde páginas que detallan información sobre productos y servicios hasta una página “Acerca de nosotros” y una política de privacidad. Dedique un poco de lluvia de ideas para asegurarse de que se enumere todo lo que desea en su aplicación.
  • La jerarquía entre estas páginas (opcional). Si tiene una idea de cómo sus páginas se relacionan entre sí jerárquicamente, entonces comunicar esto será útil para diseñar la navegación. Sin embargo, este paso no es obligatorio, y una lista completa de todas las páginas es suficiente por lo mínimo.

Figura 1: Ejemplo de mapa del sitio

Writemaps.com es una buena solución para crear rápidamente un mapa del sitio que pueda compartir fácilmente con sus partes interesadas. O simplemente use uno de los complementos gratuitos para Google Docs.

DESCRIPCIONES DE LA PÁGINA

Una vez que tenga una lista de todas las páginas o pantallas en su aplicación, puede dar el siguiente paso y definir qué habrá en cada página. Haga una lista simple y numerada de los elementos principales que se incluirán en cada página y coloque los elementos más importantes en la parte superior de la lista (esto transmitirá la importancia relativa de cada elemento que informará el diseño). Aquí hay algunos ejemplos simples de un sitio web de comercio electrónico.

NOTA: Si desea hacer un esfuerzo adicional, puede definir la URL de cada página, que a menudo ayuda a organizar las cosas.

MARCOS DE ALAMBRE

Los wireframes son diseños de página simples que describen el tamaño y la ubicación de elementos, características en una página. Generalmente carecen de color, estilos de fuente, logotipos o cualquier elemento de diseño.

Piense en una estructura alámbrica como un plano que le muestra la ubicación de los elementos separados del diseño de esos elementos. A menudo surgen problemas que solo pueden notarse a través de una herramienta visual. A menudo me encuentro moviendo, o incluso eliminando, las características de un sitio web cuando llego a la etapa de tramado.

Debido a la naturaleza iterativa del proceso, esbozaré los primeros intentos en un bloc de notas y luego pasaré a una herramienta de creación de prototipos simple como Balsamiq. Las siguientes figuras muestran la progresión de mis wireframes de bocetos en papel a una versión más final.

Figura 2: Una estructura metálica esbozada de la tabla de comparación de productos en el sitio web

Wireframing es probablemente el paso más lento de este proceso y para algunos proyectos simples puede ser excesivo. Para proyectos complejos en los que es necesario pensar seriamente en el diseño, los wireframes son una herramienta indispensable.

Como propietario del producto, es posible que no tenga experiencia con la estructura de alambre, pero le animo a que intente hacerlo usted mismo. Hacer bocetos en papel y tomar una foto con su teléfono puede funcionar notablemente bien. Encuentro que cuando los emprendedores se toman el tiempo de aprender a trazar y pensar profundamente cómo funcionará su producto, sus proyectos de desarrollo se han desarrollado sin problemas.

Dicho esto, los wireframes son una parte opcional del marco de referencia ‘mínimo mínimo’ porque se puede cambiar a la fase de diseño de un proyecto. Cuando un Propietario del producto nos proporciona toda la otra información en este artículo, tenemos suficiente información para preparar una estimación razonablemente precisa del esfuerzo que tomará construir el producto y comenzar.

Figura 3: un mapa del sitio creado en un software de creación de prototipos.

REQUERIMIENTOS NO FUNCIONALES

Si bien la mayor parte del documento de requisitos define cómo funcionará el software (requisitos funcionales), esta parte del documento define los requisitos que pueden ser importantes para su negocio, pero no se trata de cómo funciona el software en sí. Este es un lugar donde puede comunicar cualquier parámetro especial que los desarrolladores deberán tener en cuenta. Aquí hay unos ejemplos:

  • La aplicación debe estar construida en Ruby on Rails
  • La aplicación debe estar alojada en AWS
  • La aplicación debe usar Stripe para el procesamiento de pagos
  • La aplicación debe funcionar en todos los navegadores modernos.
  • La aplicación debe ser receptiva (funciona bien y se ve bien en todos los tamaños de pantalla)
  • La aplicación debe ser compatible con 1000 usuarios simultáneos.

Riesgos

Si hay riesgos significativos conocidos que enfrenta el proyecto, es una buena idea documentarlos. Con frecuencia, es una buena idea que un equipo de desarrollo intente abordar primero las partes riesgosas de un proyecto de software para que pueda saber desde el principio antes de invertir demasiado tiempo y dinero si una característica en particular no es factible.

Aquí hay unos ejemplos:

  • Nuestro motor de recomendación predictiva, que es un diferenciador clave para nuestro inicio, puede ser difícil de codificar.
  • Nuestra cuenta comercial puede no ser aprobada con Stripe.

FUTURAS ITERACIONES

Mientras escribe el documento de requisitos, debe pensar constantemente “¿Es esto absolutamente necesario para mi MVP?” . Si una característica es una buena idea e importante para el plan a largo plazo para el negocio, pero no se incluye en el MVP, debe documentarla brevemente en la sección de iteraciones futuras para que no se olvide y los desarrolladores puedan asegurarse La aplicación se puede ampliar en el futuro para admitir estas características clave.

Un buen documento de requisitos del producto ahorrará tiempo y dinero durante toda la vida de un proyecto. Para acelerar aún más el proceso, aquí hay un enlace para descargar la plantilla de documento de requisitos real que utilizamos en la ruta escalable. También he agregado algunos ejemplos útiles que se relacionan con este artículo.

Recomendaría abordar su especificación desde la perspectiva del flujo de usuarios y escribir pruebas de aceptación en lugar de una simple especificación verbal. Después de haber trabajado tanto en la gestión del diseño / producto como en el lado del desarrollo del espectro, me he convertido en un gran admirador del marco de trabajo de Cucumber para desarrollar especificaciones.

Con Cucumber, usted escribe su especificación como un conjunto de escenarios en inglés simple y luego lo entrega al desarrollador. Cada escenario describe los pasos que el usuario toma para lograr un objetivo específico. Se pueden usar tal cual como una secuencia de comandos para el control de calidad manual, o puede ir a la distancia y hacer que el desarrollador escriba pruebas automatizadas que se pueden ejecutar para verificar que la aplicación esté funcionando como se esperaba. Y cuando se combina con Selenium, sus pruebas para que pueda ver las interacciones especificadas en sus escenarios mientras se ejecutan en un navegador en vivo. Aquí hay un ejemplo de cómo escribiría un escenario para iniciar sesión. Escenario: debería poder iniciar sesión desde la página de inicio. Dado que tengo un usuario con la dirección de correo electrónico ” [correo electrónico protegido] ,” contraseña “w00w00” y nombre de usuario “bubbrubb” Cuando visito la página de inicio Y hago clic en el enlace “Iniciar sesión” en el encabezado de la página Entonces debería estar en el inicio de sesión página Y debería ver el encabezado “Iniciar sesión” Y rellenar “Correo electrónico” con ” [correo electrónico protegido] ” Y rellenar “Contraseña” con “w00w00” Y presionar el botón “Iniciar sesión” Entonces debería estar en mi página de inicio Entonces debería ver “Hola, bubbrubb” Compara eso con la especificación funcional
En la especificación: “El usuario debe poder iniciar sesión en el sitio con su dirección de correo electrónico y contraseña”.

En la cabeza del desarrollador: De acuerdo, el usuario debe iniciar sesión de alguna manera … pero ¿debería estar en una barra de herramientas en el encabezado de la aplicación? En una página separada? En un cuadro de diálogo emergente?

Cualquier imprecisión reduce su control sobre la experiencia del usuario, dejando que toda la experiencia del usuario que rodea al usuario de inicio de sesión fluya hasta la interpretación del desarrollador … y eso es un gran riesgo. Adoptar un enfoque más explícito basado en el flujo de usuarios para sus especificaciones disminuye la probabilidad de falta de comunicación y expectativas no satisfechas, y lo hará a usted y a su equipo de desarrollo más felices y productivos a largo plazo. Tendrás que asegurarte de que tu equipo de desarrollo tenga experiencia con Cucumber, lo que requiere conocimiento de Ruby … en teoría, puedes usar Cucumber para probar aplicaciones escritas en otros idiomas además de Ruby, pero no puedo dar fe de eso personalmente. Si opta por las pruebas automatizadas desde el principio, puede aumentar un poco el precio de sus esfuerzos de desarrollo, pero si su aplicación tiene algún grado de complejidad, terminará ahorrándole mucho dinero a largo plazo.

En cualquier caso, la referencia menos centrada en el desarrollador que he encontrado hasta ahora es http://blog.spritecloud.com/2010 … Por supuesto, esto no resuelve los problemas del diseño de la interfaz visual: pepino puede ayudar con eso en un grado limitado en este momento, pero si optas por píxeles perfectos, tu ruta más segura sería desarrollar un conjunto completo de maquetas … ¡y quiero decir integral! Asegúrese de que el antes , el durante y el después de cada paso descrito en sus características se puedan asignar a una región designada de una maqueta (por ejemplo, ¿cómo se ve el botón “Iniciar sesión” cuando se presiona? ¿Qué aspecto tiene el campo de correo electrónico? como antes de que se haya escrito algún texto?).

Una vez más, cuanto más preciso sea sobre lo que desea, más fácil (y más barato) será para usted obtenerlo.

More Interesting

¿Cuál es la mejor manera de escribir una especificación de producto que pueda usarse para ayudar a los usuarios y definir la capacidad del producto para las propuestas de ventas?

¿Por qué es importante el desarrollo de productos en una organización?

¿Cuáles son algunos algoritmos de aprendizaje automático utilizados para construir Duolingo?

¿Se les da a los graduados de IIM trabajos solo en administración o se los ubicará también en el desarrollo de productos (I + D) en una industria?

Como gerente de producto, ¿qué métricas considera para evaluar el éxito de su producto de software?

¿Cómo debería un equipo de producto evaluar el impacto de un nuevo producto? ¿Cuáles son algunos buenos ejemplos?

¿Cuál sería un posible JD para el rol de 'hacker de crecimiento' de una empresa de desarrollo de productos que busca a alguien con experiencia en ingeniería y excelentes habilidades de codificación?

¿Qué influencia tienen los gerentes de ingeniería de Facebook en la hoja de ruta del producto?

¿Dónde se cruzan finalmente la gestión de productos y UX en el proceso de desarrollo de productos?

Desarrollo de producto: ¿Qué CEO de startups escriben código?

Me pusieron a cargo de convertir los datos que mi empresa genera en un producto. ¿Qué necesito saber?

¿Existe un enfoque Zen para la gestión de productos?

¿En qué idiomas / plataformas debo aprender a desarrollar para crear un producto en el mercado actual?

Tengo un concepto de aplicación de alto potencial, pero el desarrollador que tengo no es el mejor. Tiene que aprender ciertas características en el camino. A este ritmo, podría tomar 3 meses más para completar el V1 (ya llevamos 2 meses en desarrollo). ¿Qué tengo que hacer?

¿Cuál es el alcance y el futuro de los trabajos de gestión de productos en India?