Scrum - это итеративная и инкрементная модель, основанная на гибких значениях . Это означает, что у вас нет отдельной фазы проектирования. Идея состоит в том, что вы должны постоянно иметь дело с дизайном, так же, как вы постоянно имеете дело с анализом, внедрением, тестированием и интеграцией на протяжении всего проекта.
Вам нужно немного планирования, чтобы это работало. Введите совещание по планированию спринта , где команда оценивает задачи для спринта впереди. Большинство людей не понимают, что это не только оценочная встреча, но и проектная работа. Например, задачей может быть «Добавить код для новой модели автомобиля». Вы еще не можете оценить это, вам нужно знать немного больше. Таким образом, команда обсуждает дизайн и предлагает широкое решение («Автомобиль подкласса?») И добавляет это как напоминание к задаче. Вам редко нужно больше формальностей, чем это. Теперь у вас есть идея, как решить проблему. У вас еще нет всех деталей, и это хорошо, вы достаточно знаете дизайн, чтобы иметь возможность сделать комфортную оценку. Без необходимости создавать какие-либо диаграммы вообще (на данный момент).
Для реальной физической документации я рекомендую создать обзорную схему системы на стене, чтобы все могли ее увидеть. В обзор должны быть включены только самые важные классы и модули, и его редко нужно обновлять. Также очень полезно создать несколько диаграмм состояний для наиболее важных классов в системе. Посыпьте несколько избранных диаграмм последовательности типичных сценариев использования, чтобы люди могли быстро увидеть, как все связано. Я предполагаю, что вы можете генерировать диаграммы иерархии классов из своего кода, так что эта проблема легко решается.
Обратите внимание, что все диаграммы создаются после фактической реализации. Это согласуется с «рабочим программным обеспечением над всеобъемлющей документацией» и своевременным проектированием.
И да, читаемый код - это определенно документация.