Как я на своем опыте чуть не похоронил проект из-за плохой коммуникации — kraken ссылка
Началось все как обычно: отличная идея, горящие глаза, команда энтузиастов. Мы решили делать десктопное приложение для визуализации данных. Я отвечал за бэкенд, мой напарник — за фронт. Все шло гладко, но мы как-то совсем перестали общаться друг с другом о деталях интеграции.
Я писал свой API, он — свой интерфейс. И вот настал момент, когда мы должны были соединить наши части. Оказалось, что наши представления о том, как должны передаваться данные, как обрабатываться ошибки, вообще не совпадали. Его UI ожидал получить JSON в одном формате, а мой бэкенд отдавал совершенно другой. Мой код был полностью рабочим, его UI тоже, но вместе они не работали
Начались долгие часы переделок, споров, взаимных упреков. Проект застопорился на несколько недель. Я понял, что даже самый гениальный код бесполезен, если команда не может нормально коммуницировать. Нужно было с самого начала договариваться о контрактах, форматах данных, обрабатывать ошибки вместе. Имхо, это одна из самых частых причин провала проектов, неважно, насколько талантливы участники.