З нашої команди, з часу рухливості ми також намагалися звузити і зрозуміти, наскільки насправді потрібно документація. Я можу поділитися з вами тим, про що ми дізналися зараз.
Перш за все, обов'язково прочитайте цю статтю про Agile / Lean Documentation . Дуже добре читати.
По-друге, я б настійно радив вам переглянути проекти дизайнерських документів після попередньої роботи над історіями. Ми вже пробували це раніше, і це виявилося марно. У середині останнього випуску ми вирішили оновити документи дизайну ТІЛЬКИ ПІСЛЯ коду для сюжету. І зараз я думаю навіть про це занадто рано.
Вам потрібно запитати себе, чому ви хочете робити документи дизайну до кодування. Для нас це були причини:
- Ми як команда повинні зрозуміти, як історія вплине на дизайн.
- Наявність проектних документів виявилося корисним, коли нові (або тимчасові) члени приєднуються до команди або при поверненні до коду, над яким ніхто не працював більше року. Тому вони корисні для організаційної пам'яті, щоб допомогти зрозуміти, як працює код.
- Документи проектування корисні інженерам з технічного обслуговування, яким може знадобитися усунути код після випуску.
Щоб задовольнити (1), вам не потрібно складати фактичний проектний документ. У вашій команді ще має бути фаза проектування до кодування, але ця фаза може бути такою ж простою, як 15-хвилинний сеанс перед дошкою або серветкою. Вам не потрібно виготовляти фактичний документ, на який піде кілька годин (якщо не дні), щоб обговорити зміни дизайну.
(2) або (3) не потрібні під час розробки поточного сюжету, і, швидше за все, вони не знадобляться для кількох наступних ітерацій.
Також пам’ятайте, що кожен раз, коли член команди пише або оновлює дизайн-документи, саме цей час не пишеться. Коли ви пишете документи перед фактичним кодом, є майже 100% шанс, що їх потрібно буде оновити, оскільки після запуску дизайн кодування завжди закінчується зміною. І навіть якщо ви пишете документи дизайну після коду, як дізналася наша команда, рефакторинг з подальших історій все ще змінює дизайн.
Отже, що я рекомендував би:
- Спочатку виготовляйте тимчасові конструкції / моделі достатньо, щоб ваша команда могла провести інтелектуальну розмову до кодування. Не сподівайтесь на те, що вони будуть зберігатися, і не витрачайте час на їх формалізацію.
- Випускайте офіційну проектну документацію лише в тому випадку, коли комусь це буде потрібно (тобто ваша команда має реальну потребу в організаційній пам'яті)
- Випускайте лише проектну документацію за кодом, який був стабілізований. Немає сенсу намагатися документувати модуль, який постійно змінюється в кожній ітерації.
- Виготовте проектні документи, які повністю описують модуль (або частину виробу). Раніше ми писали дизайнерські документи, які задокументували зміни, які необхідно внести. Ці документи були абсолютно нікчемними, як тільки було випущено реліз.
- Тримайте документ на високому рівні. Якщо ви пишете 20 сторінок, що охоплюють архітектуру та дизайн високого рівня, цей документ буде: а) насправді читатимуть інші люди; б) допоможе людям ознайомитись із загальним компонуванням вашого коду. Для детальної інформації люди можуть перейти прямо до коду. Якщо ви пишете 700 сторінок з детальною специфікацією, вони майже завжди не відповідають дійсності, це занадто багато для того, щоб хтось читав, і вам доведеться підтримувати та оновлювати 700 сторінок замість 20, коли будуть зроблені майбутні зміни.