En primer lugar, casi nada en la respuesta de @ DXM coincide con mi experiencia con Agile, y especialmente con Scrum.
El Manifiesto Ágil afirma que si bien la documentación completa es valiosa, el software de trabajo es MÁS valioso. Entonces, la documentación ciertamente no es algo malo, pero realmente debería estar al servicio de la creación de software de trabajo.
Individuos e interacciones sobre procesos y herramientas.
Software de trabajo sobre documentación completa
Colaboración del cliente sobre negociación de contrato
Responder al cambio sobre seguir un plan
Es decir, si bien hay valor en los elementos de la derecha, valoramos más los elementos de la izquierda.
Determinar cada detalle antes de comenzar a codificar ha demostrado ser un desperdicio una y otra vez, por lo que la documentación generalmente se trata de manera JIT (justo a tiempo). Es decir, documenta lo que realmente va a codificar.
Una de las formas populares de hacer Scrum es usar Historias de usuarios, que son mantenidas por el Propietario del producto y se guardan en el Registro del producto. El Product Backlog es una lista de bastante alto nivel de todas las cosas que una solución necesita hacer, y una historia de usuario es generalmente una forma muy agradable de describir cada cosa en la lista. Las Historias de usuarios no son obligatorias, pero parecen ser una buena manera de no exagerar los detalles e inspirar la colaboración.
Entonces, de todos modos, cuando se hace una historia: el equipo ha creado, probado y desplegado algo que cumple con los criterios de aceptación, la historia no está CHUCKED, simplemente está marcada como hecha en el backlog, por lo que el backlog tiene alguna indicación de lo que se hizo en cada sprint: historias y los puntos asociados con ellas. Esto es lo que le permite calcular la velocidad, y es una documentación valiosa en sí misma.
Dicho todo esto, una historia de usuario puede ser toda la documentación necesaria para comprender un requisito, pero lo más probable es que sea algo para generar una conversación entre el cliente y el equipo de desarrollo. Como tal, hay muchas cosas que puede hacer en torno a esa conversación. Si se trata de una cuestión ad hoc cara a cara, como suele ser, el analista / desarrollador puede (y posiblemente, según su organización, debería) escribir cualquier decisión que se haya tomado y guardarla en algún lugar, como un Wiki o un repositorio de documentación. Si se trata de una conversación por correo electrónico, puede guardar los correos electrónicos. Si es una sesión de pizarra, tome una foto de la pizarra con su dispositivo móvil y guárdela. El punto es que estas cosas son las que lo ayudan a completar el código y podrían ayudarlo más adelante si necesita averiguar cómo o por qué lo hizo de la manera en que lo hizo.
Otro método para capturar los requisitos es incrustarlos de inmediato en casos de prueba (que creo que es a lo que DXM se refería). Esto puede ser realmente eficiente, ya que de todos modos debe probar cada requisito. En este caso, puede almacenar efectivamente sus requisitos en su herramienta de prueba.
Si se completa una historia (y se acepta) y luego el usuario cambia su necesidad, bueno, entonces probablemente deba crear una nueva historia. Si utiliza un wiki para su documentación, puede vincular la nueva historia con la original, y también vincular esa historia original con las nuevas cosas para que alguien que la vea sepa que las cosas cambiaron. Eso es lo bueno de los wikis: es fácil y bastante sencillo vincular cosas. Si está haciendo el enfoque basado en pruebas, actualizaría el caso de prueba para hacer frente al cambio o crearía nuevos casos de prueba para la nueva historia si lo nuevo y lo antiguo no son mutuamente excluyentes.
Al final, depende de cuál sea su necesidad. Si lo principal es hacer que la gente se ponga al día rápidamente, probablemente sea una buena idea que alguien escriba un documento de incorporación para ayudarlos. Entonces, que alguien haga eso. Como mencioné, los Wiki son una gran herramienta para mantener este tipo de cosas, por lo que puede considerar las soluciones de Atlassian que pueden integrar Confluence Wiki con Jira y Greenhopper para rastrear sus historias / tareas / defectos y administrar su proyecto en general. También hay muchas otras herramientas para elegir.