Kodomo

Пользователь

Nobody should start to undertake a large project. You start with a small trivial project, and you should never expect it to get large. If you do, you'll just overdesign and generally think it is more important than it likely is at that stage. Or worse, you might be scared away by the sheer size of the work you envision. So start small, and think about the details. Don't think about some big picture and fancy design. If it doesn't solve some fairly immediate need, it's almost certainly over-designed. And don't expect people to jump in and help you. That's not how these things work. You need to get something half-way useful first, and then others will say "hey, that almost works for me", and they'll get involved in the project.

— Linus Torvalds

Техническое задание (здесь и далее – ТЗ) – это далеко не универсальная штука. Многие вещи проще делать без него. Многие вещи невозможно сделать с ТЗ потому, что они растут из малого. С другой стороны, некоторые вещи с ним сделать проще, просто потому, что это дополнительный стимул подумать об угловых случаях и об условиях задачи. Для достаточно ограниченной задачи сочинение ТЗ может оказаться больше, чем половиной работы по сочинению алгоритма и устройства программы.

Главный случай, когда ТЗ необходимо – это когда по факту написания программы могут начинаться споры: "от нас этого не требовалось! – да оно не работает!". Зачёт – типичный пример. Другой типичный пример – программирование за деньги.

Как писать ТЗ

Вот перечень вопросов, на которые нужно попытаться ответить, чтобы написать внятное ТЗ. Вероятно, на некоторые вопросы отвечать не надо, если они совсем не в тему программе.

В конечном ТЗ по каждому из 4-х пунктов верхнего уровня всё же должно быть не меньше одной строки. Подпункты же попытаться расписать подробнее стоит хотя бы потому, что вы можете отвечая на эти вопросы понять чего-то новое про свою задачу.

План реализации

Рядом с ТЗ полезно сочинять – уже для своего внутреннего использования – план реализации.

В плане полезно расписывать:

Фактически, хорошо написанный план – это почти готовая самодокументация (осталось только перевести его в питонский синтаксис).