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