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

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

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

Как писать ТЗ

ТЗ – это текст, с которым соглашаются и принимающий и пишущий. То есть в идеале это относительно связный текст на русском языке.

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

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

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

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

План реализации – это штука, в которой расписано:

В идеале, правильный план реализации выглядит как набор питонских модулей, классов и функций, для которых написана документация, но не сделана реализация (вместо тела стоит pass).

  1. Хотя тут почва скользкая, может он наоборот знает, чего хочет и именно поэтому всё время требует чего-нибудь нового (1)