Хто буде читати документацію? Для чого використовуватиметься документація? Це найважливіші запитання, на які потрібно відповісти. Наприклад, документація для розробників технічного обслуговування буде зосереджена більше на структурі, тоді як документація для розробників, що інтегруються з продуктом, буде зосереджена більше на веб-службах та структурі баз даних.
Загалом, робіть стільки документації, скільки потрібно, і не більше. Багато організацій потребують документації, оскільки хтось наполягав, що це найкраща практика, але документація закінчується збиранням пилу.
Припускаючи, що люди фактично будуть використовувати документацію, не намагайтеся захопити код і базу даних до найменшого рівня. Розробники подивляться код на деталі. Натомість зосередьтесь на деталях, які не видно в коді , наприклад:
- У випадках використання продукт відповідає. Це може бути складно з огляду на вік продукту, але відображення того, що продукт має на меті, дає життєво важливий контекст для нетехнічних читачів та тестерів. Хто такі конкуренти на ринку (якщо такі є)? Чи є щось, що виключається із сфери застосування товару?
- Будь-які чіткі нефункціональні вимоги . Наприклад, чи був написаний продукт для обробки певного обсягу? Скільки років можуть бути дані? Де використовується кешування? Як аутентифікуються користувачі? Як працює контроль доступу?
- Контекст схема , що показує взаємодію з іншими системами, такими як бази даних, джерела аутентифікації, резервне копіювання, моніторинг і так далі.
- (Якщо відомо) Ризики та способи їх зменшення разом з реєстром рішень . Зрештою, це, мабуть, складно, але часто існують критичні рішення, які впливають на дизайн. Захопіть будь-яке, що вам відомо.
- Загальні шаблони дизайну або інструкції щодо дизайну . Наприклад, чи існує стандартний спосіб доступу до бази даних? Чи є стандарт кодування чи іменування?
- Критичні кодові шляхи , як правило, використовуючи діаграми потоків або активність UML або діаграми послідовностей. У проекті їх може бути не було, але це, як правило, ті, хто бізнес-користувачів сформулював.
Навіть якщо вся ця інформація недоступна, починайте зараз . Розробники, які прийдуть за вами, будуть вам вдячні.
Хороші автоматизовані тестові одиниці або тестові справи також можуть бути корисною документацією, хоча і важкодоступною для менш технічних людей.
Це також здається, що вам потрібно внести культурні зміни, щоб включити документацію . Почніть з невеликого, але в ідеалі проект не слід «робити», поки він не має хоча б мінімального рівня документації. Це, мабуть, найважчий крок, тому що вище - це речі, якими ви можете керувати. Це те, що повинні купувати інші. Однак це також може бути найбільш корисним, особливо якщо наступний проект, який ви робите, має хорошу документацію.