¿Existe una plantilla simple disponible que pueda ayudar a describir adecuadamente los requisitos de un nuevo proyecto de desarrollo de software?

Respuesta simple … no. He estado en desarrollo de software durante casi 20 años y puedo contar con una mano en los proyectos donde las especificaciones no fueron un problema.

Se han escrito innumerables libros y publicaciones sobre el tema, y ​​obtener una buena especificación es nada menos que una forma de arte. Peor aún, el tiempo que toma es significativo, de modo que nadie quiere invertirlo ANTES de aterrizar un proyecto Y AÚN … si tiene el proyecto, es muy probable que ya haya cerrado alguna cotización de precio, entonces …

Los métodos son muchos, pero esto es lo que he encontrado:

1. Comience con “historias de usuarios”. Estos deben ser no técnicos, escritos desde el punto de vista de los Usuarios sobre lo que quieren poder hacer.

Deben usar lenguaje descriptivo corto, viñetas, etc., no párrafos.

Pueden ser escritos por el cliente o descifrados a través de conversaciones, pero deberán elaborarse a través de intercambios significativos entre el cliente y el líder del proyecto. ¡Iterar!

2. Cree marcos de interfaz basados ​​en las Historias de usuario y vuelva a HABLAR con el cliente. ¡Iterar! Esta fase es invaluable para ayudar a todos a comprender lo que se espera y asegurar que haya un flujo de trabajo planificado para realmente acomodar los resultados esperados.

3. Cree una descripción técnica basada en los activos anteriores, nuevamente con lenguaje técnico conciso, viñetas y listas que cubran:

– estado comprendido del sistema, usuario, estado, etc. antes de la interacción

– todo el intercambio de datos durante, incluidos los requisitos, validaciones, casos de error y mensajes, cambios de interfaz, etc.

– estado comprendido después de la operación, incluida la persistencia de datos, estado, mensajes

Obviamente, desea reducir el tiempo dedicado a producir documentos SIN EMBARGO, es mi experiencia que:

A) el simple hecho de tener que pensar para producirlos es muy valioso

B) siempre que su equipo realmente aproveche estos documentos, se reducirán las confusiones y las malas interpretaciones

La verdadera pregunta es cuánto de esto se puede / se debe hacer ANTES de ofertar / aterrizar el proyecto y cuánto se puede hacer después.

Mi recomendación es hacer al menos un pase rápido en User Stories AND Wireframes antes de ofertar, ¡se ahorrará a usted y al cliente tiempo, dinero y dolores de cabeza!

El análisis y diseño orientado a objetos ( OOAD ) es un enfoque técnico popular para analizar, diseñar una aplicación, sistema o negocio mediante la aplicación del paradigma orientado a objetos y el modelado visual a lo largo de los ciclos de vida de desarrollo para fomentar una mejor comunicación con las partes interesadas y la calidad del producto.

El modelado orientado a objetos (OOM) es un enfoque común para modelar aplicaciones, sistemas y dominios empresariales mediante el uso del paradigma orientado a objetos a lo largo de todo el ciclo de vida del desarrollo. OOM es una técnica principal muy utilizada por las actividades de OOA y OOD en la ingeniería de software moderna.

Análisis y diseño orientado a objetos.

Conceptualmente, el análisis de requisitos incluye tres tipos de actividades:

  • Obtención de requisitos: (p. Ej., El estatuto o la definición del proyecto), la documentación del proceso comercial y las entrevistas con las partes interesadas. Esto a veces también se llama recolección de requisitos.
  • Análisis de requisitos: determinar si los requisitos establecidos son claros, completos, consistentes y sin ambigüedades, y resolver cualquier conflicto aparente.
  • Requisitos de grabación: los requisitos se pueden documentar en varias formas, que generalmente incluyen una lista resumida y pueden incluir documentos en lenguaje natural, casos de uso, historias de usuarios o especificaciones de procesos.

El análisis de requisitos puede ser un proceso largo y agotador durante el cual intervienen muchas habilidades psicológicas delicadas. Los nuevos sistemas cambian el entorno y las relaciones entre las personas, por lo que es importante identificar a todos los interesados, tener en cuenta todas sus necesidades y asegurarse de que comprenden las implicaciones de los nuevos sistemas. Los analistas pueden emplear varias técnicas para obtener los requisitos del cliente. Estos pueden incluir el desarrollo de escenarios (representados como historias de usuarios en métodos ágiles), la identificación de casos de uso, el uso de observación o etnografía en el lugar de trabajo, la realización de entrevistas o grupos focales (más apropiadamente nombrados en este contexto como talleres de requisitos, o requisitos sesiones de revisión) y la creación de listas de requisitos. La creación de prototipos se puede utilizar para desarrollar un sistema de ejemplo que se pueda demostrar a las partes interesadas. Cuando sea necesario, el analista empleará una combinación de estos métodos para establecer los requisitos exactos de las partes interesadas, de modo que se produzca un sistema que satisfaga las necesidades del negocio. La calidad de los requisitos se puede mejorar mediante estos y otros métodos.

  • Visualización. Uso de herramientas que promueven una mejor comprensión del producto final deseado, como la visualización y la simulación.
  • Uso constante de plantillas. Producir un conjunto consistente de modelos y plantillas para documentar los requisitos.
  • Documentando dependencias. Documentar las dependencias e interrelaciones entre los requisitos, así como cualquier suposición y congregación.

Todo el crédito va a Wikipedia, es simple y factual.

En cuanto a mis dos centavos,

Si aplica el mismo enfoque que OOAD dentro de cada paso iterativo que aplica un algoritmo recursivo, puede desarrollar aproximadamente una “plantilla” que uno solo necesitaría para llenar los vacíos, sin embargo, algunos requisitos de diseño pueden quedar fuera de lo típico o estandarizado sistema que está tratando de desarrollar, la tarea simple sería identificar esto en el proceso de recopilación de requisitos y crear cada función de rama que manejaría cualquier excentricidad.

Pregúntele a un diseñador de automóviles si hay una plantilla de documentos de requisitos simple disponible que funcione para trazar el Dodge Neon 2015, una Retroexcavadora Terex 2016 y un Porsche 911 Turbo 2020.

Pregúntele a un arquitecto si hay una plantilla simple disponible que funcione para designar los requisitos para una escuela en una remota China, un rascacielos en la ciudad de Nueva York y una casa unifamiliar en Boise.

Lamentablemente, tendrás que pasar por esto tú mismo. La mejor manera de hacerlo será dibujar bocetos a mano de cada página del sitio usted mismo, luego escribir descripciones de cómo funcionan. Luego trabaje iterativamente con alguien que haya implementado algo parecido a lo que usted ha diseñado.

More Interesting

Cómo conseguir un trabajo de software en Google India

Como estudiante de informática, ¿el trabajo independiente es una opción realista para mantenerme?

Para usar AngularJS en mi aplicación, tengo que exponer una API públicamente, y los datos son el USP de mi aplicación. No quiero que alguien use fácilmente todos los datos. ¿Hay alguna alternativa?

¿Qué haría falta para que otro idioma destrone a JavaScript como la lengua franca de la web?

¿Qué consejos y hechos fundamentales debería saber todo programador, entusiasta o principiante absoluto acerca de la programación? ¿Cuáles son los conceptos erróneos más comunes?

¿Qué debo hacer para conseguir un trabajo en Silicon Valley como ingeniero de software? ¿Qué tipo de antecedentes o experiencia / educación se requiere?

¿Cuáles son algunos de los mejores auriculares para ingenieros de software que trabajan en un entorno de oficina abierta?

¿Cuáles son los mejores softwares de desarrollo rápido de aplicaciones?

¿Cuáles son TODAS las ramas separadas de los programadores de software (frontend, back-end, sistema, paralelo, cuántico, webdev, etc.)?

¿Cómo desarrollo más habilidades gerenciales orgánicas en lugar de un enfoque de Comando y Control?

¿Qué deben saber todos los ingenieros de software sobre Python?

¿Una variable de función siempre se elimina de la memoria cuando la función existente está en Java?

¿Hay alguna forma de programar un documento de Google Drive para actualizar un documento de unidad existente y no romper el enlace?

¿Quién gestiona el caso de negocio en un entorno de desarrollo ágil?

¿Cuáles son algunos ejemplos prácticos de decoradores Python?