У вас есть несколько видов документации, один из них - ваша ответственность:
Документирование каждой функции, класса, структуры, члена по мере ее выполнения
В идеале вы делаете это таким образом, чтобы можно было автоматически извлекать исходную документацию (например, Doxygen). Просто обязательно делай это по ходу дела.
Что касается документации клиента, мои убеждения таковы:
- Каждая фирма-разработчик должна нанимать тестеров
- Тестеры должны вносить большой вклад в процесс документации
Я был с компаниями, которые просто не будут платить полностью за конечный продукт, если он не поставляется с полной и исчерпывающей документацией. 10% обычно удерживаются только для того, чтобы у подрядчика был стимул доставлять все материалы.
Что касается тестеров, то они действительно ваши лучшие друзья (или должны быть). Это люди, которые знают, как ваше программное обеспечение работает почти так же хорошо, как вы. И да, я согласен, у вас должен быть хотя бы набросок функциональности программы, это не даст вам перейти к касательным «добавленной стоимости». Просто имеет смысл позволить тестировщикам заполнить это, а затем попросить разработчиков проверить его на точность.
Вы можете даже найти себя, говорящего " Нет, нет, нет ... это не работает так ... тестеры ошиблись ... ", затем вы запускаете приложение, чтобы понять, что они правильно поняли :) В этом аспекте это также полезно для процесса обеспечения качества.