Formas de mejorar la comunicación entre los miembros de un equipo de software [cerrado]

A medida que el equipo en el que trabajo trabaja para formalizar y establecer más prácticas de desarrollo, encuentro que la comunicación parece fallar en los siguientes puntos:

Durante una conversación informal sobre un proyecto, un momento de chispa cerebral se convierte en una nueva característica / requisito. Estos "complementos" parecen fallar a través de las grietas o los detalles se vuelven borrosos después de un tiempo.

En las reuniones donde los objetivos o tareas no se delegan claramente, los miembros involucrados en la reunión tienen diferentes cuentas de lo que realmente se discutió.

Como equipo, estamos constantemente desafiados (más aún ahora que aspiramos a escribirlos) para generar especificaciones de calidad y documentos técnicos que detallen exactamente qué características deben estar en los proyectos.

Mi pregunta es: ¿Cuáles son algunas sugerencias y enfoques para abordar estos cuellos de botella e ineficiencias en la comunicación? A ningún programador le gusta escribir documentación, pero es de esperar que haya una manera de centralizar la comprensión y mantener esa información más visible y disponible durante el ciclo de vida de un proyecto ...

¡Gracias por tu ayuda!