В нашей команде, начиная с гибкой разработки, мы также пытались сузить круг и понять, сколько документации на самом деле требуется. Я могу поделиться с вами тем, что мы узнали до сих пор.
Прежде всего, обязательно прочитайте эту статью о гибкой / бережливой документации . Очень хорошо читаю.
Во-вторых, я настоятельно рекомендую вам пересмотреть вопрос о разработке проектной документации после предварительной работы над историями. Мы пробовали это раньше, и это оказалось пустой тратой. В середине последнего релиза мы решили обновить документацию по дизайну ТОЛЬКО ПОСЛЕ кода для этой истории. И теперь я думаю, что это слишком рано.
Вы должны спросить себя, почему вы хотите сделать дизайн документа до кодирования. Для нас это были причины:
- Мы, как команда, должны понимать, как история повлияет на дизайн.
- Наличие проектных документов оказалось полезным, когда новые (или временные) члены присоединяются к команде или возвращаются к коду, над которым никто не работал более года. Таким образом, они полезны для организационной памяти, чтобы помочь понять, как работает код.
- Проектная документация полезна для инженеров по техническому обслуживанию, которым может потребоваться устранить неполадки в коде после выпуска.
Для удовлетворения (1) вам не нужно предъявлять фактический проектный документ. Ваша команда должна все еще иметь фазу проектирования до кодирования, но эта фаза может быть такой простой, как 15-минутная сессия перед доской или салфеткой. Вам не нужно создавать фактический документ, который займет часы (если не дни), чтобы написать только для обсуждения изменений дизайна.
(2) или (3) не нужны во время разработки текущей истории и, скорее всего, они не понадобятся для нескольких последующих итераций.
Также имейте в виду, что каждый раз, когда член команды пишет / обновляет проектные документы, это время, когда код не пишется. Когда вы пишете документы перед реальным кодом, существует почти 100% вероятность того, что они потребуют обновления, потому что как только вы начинаете кодирование, дизайн всегда заканчивается изменением. И даже если вы пишете документы по дизайну после кода, как узнала наша команда, рефакторинг из последующих историй по-прежнему меняет дизайн.
Итак, что я бы порекомендовал:
- Сначала создайте временные проекты / модели, чтобы ваша команда смогла поговорить до написания кода. Не надейтесь сохранить их и не тратьте время на их оформление.
- Выпускать официальную проектную документацию можно только в том случае, если она кому-то понадобится (т. Е. Ваша команда действительно нуждается в организационной памяти)
- Создавайте проектную документацию только по коду, который был стабилизирован. Нет смысла пытаться задокументировать модуль, который постоянно меняется на каждой итерации.
- Подготовить проектную документацию, которая полностью описывает модуль (или часть продукта). В прошлом мы писали документы по дизайну, в которых документировались изменения, которые должны быть сделаны. Эти документы были совершенно бесполезны, как только релиз был сделан.
- Держите документ на очень высоком уровне. Если вы напишите 20 страниц, посвященных архитектуре и дизайну очень высокого уровня, этот документ а) будет фактически прочитан другими людьми и б) поможет людям ознакомиться с общим макетом вашего кода. За подробностями люди могут перейти прямо в код. Если вы напишите 700 страниц подробных спецификаций, они почти всегда не будут соответствовать действительности, это будет слишком много для всех, и вам придется поддерживать и обновлять 700 страниц вместо 20, когда будут внесены будущие изменения.