Гость
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Разделение труда при разработке программ / 24 сообщений из 24, страница 1 из 1
12.06.2012, 17:14
    #37835400
Alexsalog
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение труда при разработке программ
Самое бросающееся в голову разделение:

1) Аналитик - написал ТЗ, описал структуры, функции
2) Проектировщик БД - сделал структуру БД
3) Программист - написал код на структуру

Но, структура БД может меняться по мере разработки кода потому что не были видны всякие нюансы.

ВОЗМОЖНО, выход - DDD, который предлагает разработку без структуры. Но мне не понятна технология. Как можно писать программу когда база данных еще не существует.

Или же принять схему указанную выше в пунктах 1,2,3 но как то модифицировать ?
...
Рейтинг: 0 / 0
13.06.2012, 08:26
    #37835788
Александр Пузаков
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение труда при разработке программ
AlexsalogНо, структура БД может меняться по мере разработки кода потому что не были видны всякие нюансы.


Вот именно по этому каждый аналитик должен быть немного проектировщиком БД и немного программистом, каждый проектировщик БД должен быть немного аналитиком и немного программистом, а каждый программист должен быть немного аналитиком и немного проектировщиком БД :) Разделение труда разделением труда, но когда в одну команду собираются слабо понимающие друг друга люди, они тааакую ерунду ваяют...
...
Рейтинг: 0 / 0
13.06.2012, 11:03
    #37835969
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение труда при разработке программ
AlexsalogНо, структура БД может меняться по мере разработки кода потому что не были видны всякие нюансы.Вообще эти три роли существуют в команде до конца проекта, а не так, что аналитик написал ТЗ, уволился, Проектировщик сделал БД, уволился, а программист потом всё это расхлёбывает :-) Увидят какие то недоработки, поменяют БД, логику или что то ещё - все вместе, а не один программист.
AlexsalogНо мне не понятна технология. Как можно писать программу когда база данных еще не существует.Непонятно, что тут непонятного :-)

Обычное разделение приложения на слои, которые можно разрабатывать независимо. Интерфейсы то есть...
...
Рейтинг: 0 / 0
13.06.2012, 12:55
    #37836203
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение труда при разработке программ
AlexsalogНо мне не понятна технология. Как можно писать программу когда база данных еще не существует.
Для взаимодействия между модулями приложения должны быть определены интерфейсы. Реализация может быть заменена заглушками и значительно отставать. А интерфейсы в случае БД пишутся по сути по результатам работы аналитика.
...
Рейтинг: 0 / 0
17.06.2012, 11:20
    #37841539
ДжекНепотрошитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение труда при разработке программ
AlexsalogСамое бросающееся в голову разделение:

1) Аналитик - написал ТЗ, описал структуры, функции
2) Проектировщик БД - сделал структуру БД
3) Программист - написал код на структуру

Но, структура БД может меняться по мере разработки кода потому что не были видны всякие нюансы.

Можно еще круче разделить: проектировщик таблиц, проектировщик представлений, программист хранимых процедур, программист интерфейса.
А если серьезно, то я бы выделил пять ролей -
0. Руководитель
1. Аналитик (ТЗ, логика работы, общение с постановщиками задачи),
2. Архитектор
3. Программист
4. Тестер.
Роли 0 и 2 или 2 и 3 могут совмещаться в одном человеке, это уже зависит от скиллов человека и размеров рабочей группы. А вот отделять "одно программирование от другого" неэффективно. Связь между разработчиками должна проходить по интерфейсам разрабатываемых ими модулей :) А если один программист пишет БД, второй над ней сооружает бизнес-логику, то они не смогут работать параллельно, второй будет ожидать первого, они постоянно будут между собой общаться, решать какие-то вопросы, которых в принципе не было бы, если и логику, и соответствующую ей схему данных вел бы один человек.
...
Рейтинг: 0 / 0
17.06.2012, 15:51
    #37841721
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение труда при разработке программ
ДжекНепотрошитель,

все очень просто
1. Аналитик + инструмент
2. Кодер + инструмент
...
Рейтинг: 0 / 0
17.06.2012, 16:20
    #37841756
iscrafm__
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение труда при разработке программ
ДжекНепотрошительА если серьезно, то я бы выделил пять ролей -
0. Руководитель
1. Аналитик (ТЗ, логика работы, общение с постановщиками задачи ),
2. Архитектор
3. Программист
4. Тестер.

у вас же нет в списке выделенного, с кем общаться?
...
Рейтинг: 0 / 0
18.06.2012, 22:04
    #37843341
ДжекНепотрошитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение труда при разработке программ
iscrafm__у вас же нет в списке выделенного, с кем общаться?
А должен? Постановщик задачи в общем случае к разработке программ никакого отношения иметь не обязан. Это некое лицо, которое хочет, чтобы компьютер чё-то делал. В хорошем случае он может это формально описать, в плохом - не может, но для этого как раз и нужен аналитик. Поговорить, понять и формализовать.
...
Рейтинг: 0 / 0
18.06.2012, 22:38
    #37843366
iscrafm__
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение труда при разработке программ
ДжекНепотрошительiscrafm__у вас же нет в списке выделенного, с кем общаться?
А должен? Постановщик задачи в общем случае к разработке программ никакого отношения иметь не обязан. Это некое лицо, которое хочет, чтобы компьютер чё-то делал. В хорошем случае он может это формально описать, в плохом - не может, но для этого как раз и нужен аналитик. Поговорить, понять и формализовать.
постановщик - эта как раз тот человек, который переводит то, что "узнал" аналитик о задаче в структуры, понятные разработчику (программисту), т.е. "переводчик" с языка бизнеса, на котором говорит аналитик. Проектировщик, архитектор, образно.

на вскидку, из вакансий:

обязанностиОсновные рабочие процессы, выполняемые постановщиком задач:
-разработка общих проектных моделей (функциональных, информационных, технологических, компонентных и др.) автоматизированных систем или их составных частей;
-определение структуры функциональных программных компонентов, планирование их изготовления;
-полное проектирование функциональных программных компонентов: структур данных, алгоритмов, визуальных форм, программных интерфейсов;
-выдача заданий командам программистов;
-контроль процессов программной реализации; участие в функциональном тестировании;
-приемка результатов программной реализации и их передача в проектно-внедренческие центры для ввода в эксплуатацию, активное участие во внедрении и последующем сопровождении созданных программных изделий.
...
Рейтинг: 0 / 0
18.06.2012, 23:02
    #37843390
ДжекНепотрошитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение труда при разработке программ
iscrafm__постановщик - эта как раз тот человек, который переводит то, что "узнал" аналитик о задаче в структуры, понятные разработчику (программисту), т.е. "переводчик" с языка бизнеса, на котором говорит аналитик. Проектировщик, архитектор, образно.

Да ничего подобного. Постановщик задачи - это персона, олицетворяющая заказчика. Просто во многих специализированных разработческих конторах так называют аналитика/проектировщика, который пишет ТЗ. Это частный случай, и не нужно в него упираться. Ставить задачу может как компетентное в разработке лицо, так и некомпетентное, в обоих случаях он будет постановщиком.
...
Рейтинг: 0 / 0
18.06.2012, 23:05
    #37843394
ДжекНепотрошитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение труда при разработке программ
iscrafm__обязанностиОсновные рабочие процессы, выполняемые постановщиком задач:
-разработка общих проектных моделей (функциональных, информационных, технологических, компонентных и др.) автоматизированных систем или их составных частей;
-определение структуры функциональных программных компонентов, планирование их изготовления;
-полное проектирование функциональных программных компонентов: структур данных, алгоритмов, визуальных форм, программных интерфейсов;
-выдача заданий командам программистов;
-контроль процессов программной реализации; участие в функциональном тестировании;
-приемка результатов программной реализации и их передача в проектно-внедренческие центры для ввода в эксплуатацию, активное участие во внедрении и последующем сопровождении созданных программных изделий.
Кстати, это - вообще не постановщик. Это называется "руководитель проекта" :)
...
Рейтинг: 0 / 0
18.06.2012, 23:10
    #37843398
iscrafm__
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение труда при разработке программ
ДжекНепотрошительiscrafm__постановщик - эта как раз тот человек, который переводит то, что "узнал" аналитик о задаче в структуры, понятные разработчику (программисту), т.е. "переводчик" с языка бизнеса, на котором говорит аналитик. Проектировщик, архитектор, образно.

Да ничего подобного. Постановщик задачи - это персона, олицетворяющая заказчика. Просто во многих специализированных разработческих конторах так называют аналитика/проектировщика, который пишет ТЗ. Это частный случай, и не нужно в него упираться. Ставить задачу может как компетентное в разработке лицо, так и некомпетентное, в обоих случаях он будет постановщиком.
мне все же ближе классическое определение роли Постановщика (в предыдущем сообщении перечислены основные задачи, которые он решает). Никогда Постановщик не олицетворял заказчика, по крайней мере в моей практике. Да и в классике тоже.
...
Рейтинг: 0 / 0
19.06.2012, 10:36
    #37843780
iscrafm__
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение труда при разработке программ
ДжекНепотрошительiscrafm__пропущено...

Кстати, это - вообще не постановщик. Это называется "руководитель проекта" :)
пропустил это сообщение... Руководитель проекта занимается руководством проектом, а не постановкой задачи. И уж точно не разрабатывает модели ПО, структуру, программные интерфейсы и т.д. из перечисленного в обязанностях. Это классические функции Постановщика, который "ставит задачу программистам"
...
Рейтинг: 0 / 0
19.06.2012, 11:04
    #37843832
ДжекНепотрошитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение труда при разработке программ
iscrafm__пропустил это сообщение... Руководитель проекта занимается руководством проектом, а не постановкой задачи. И уж точно не разрабатывает модели ПО, структуру, программные интерфейсы и т.д. из перечисленного в обязанностях. Это классические функции Постановщика, который "ставит задачу программистам"

Вы, вероятно, знакомы только с одним (причем наиболее малочисленным) видом разработки ПО - с рабочими группами по сотне-другой разноплановых специалистов.
Ключевые обязанности здесь
"-выдача заданий командам программистов;
-контроль процессов программной реализации"
Выдача заданий и контроль - исключительно прерогатива руководителя, а не постановщика. А остальные задачи, и постановку, и разработку архитектуры он может выполнять опционально, в зависимости от размера рабочей группы и совмещения ответственности.
В остальном - это исключительно вопрос терминологии. Вы "постановщиком" называете человека, который делает техническое задание. Я называю этих людей "аналитиками" и "архитекторами". В моей практике процесс выглядит так:
Постановщик (заказчик) готовит постановку задачи (постановка задачи - это, по сути, заказ программы, а не частные подзадачи, которые раздаются инженерам в процессе их работы)
Аналитики, архитектор готовят техническое задание на основе постановки задачи и согласуют его с заказчиком
Рабочая группа выполняет работы по техзаданию. Их раздают и контролируют на микроуровне тимлиды, на макро - руководитель проекта.
...
Рейтинг: 0 / 0
19.06.2012, 11:21
    #37843877
iscrafm__
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение труда при разработке программ
ДжекНепотрошительiscrafm__пропустил это сообщение... Руководитель проекта занимается руководством проектом, а не постановкой задачи. И уж точно не разрабатывает модели ПО, структуру, программные интерфейсы и т.д. из перечисленного в обязанностях. Это классические функции Постановщика, который "ставит задачу программистам"

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

софтверные компании конечно можно назвать "наиболее малочисленным" видом разработки ПО, по сравнению с количеством отделов, групп, департаментов и т.п. на предприятиях, но это уже как-то слишком, имхо.

ДжекНепотрошительВыдача заданий и контроль - исключительно прерогатива руководителя, а не постановщика. А остальные задачи, и постановку, и разработку архитектуры он может выполнять опционально, в зависимости от размера рабочей группы и совмещения ответственности.
В остальном - это исключительно вопрос терминологии. Вы "постановщиком" называете человека, который делает техническое задание. Я называю этих людей "аналитиками" и "архитекторами". В моей практике процесс выглядит так:
Постановщик (заказчик) готовит постановку задачи (постановка задачи - это, по сути, заказ программы, а не частные подзадачи, которые раздаются инженерам в процессе их работы)
Аналитики, архитектор готовят техническое задание на основе постановки задачи и согласуют его с заказчиком
Рабочая группа выполняет работы по техзаданию. Их раздают и контролируют на микроуровне тимлиды, на макро - руководитель проекта.
примерно так и происходит на непрофильных предприятиях, где разработка ПО - обслуживающий вспомогательный процесс. Мы просто о разных областях похоже говорим. Я все же основываюсь на профильных структурах, где разработка ПО - основное производство.
...
Рейтинг: 0 / 0
19.06.2012, 11:26
    #37843890
ДжекНепотрошитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение труда при разработке программ
iscrafm__софтверные компании конечно можно назвать "наиболее малочисленным" видом разработки ПО, по сравнению с количеством отделов, групп, департаментов и т.п. на предприятиях, но это уже как-то слишком, имхо.

Крупные софтверные компании. На сотню крупных приходится десять тысяч мелких, где процесс организации работ не сильно отличается от ИТ-департаментов на предприятиях.
...
Рейтинг: 0 / 0
19.06.2012, 12:59
    #37844125
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение труда при разработке программ
ДжекНепотрошитель,

постановщик всегда был чек, который формализовал задачу для прогера
в каждом ОАСУП была группа постановщиков
в их обязанностт входила
1. Сбор требований
2. фомализация задачи (на раннх периодах опускались до размера ячеек памяти и адресной арифметике)
3. согласование с заказчиком
4. и тестирование :)
...
Рейтинг: 0 / 0
19.06.2012, 13:13
    #37844156
iscrafm__
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение труда при разработке программ
Сахават,
тестирование все же "поверхностное", т.е. сравнение ожидаемого и результата. Детальным тестированием занимались тестеры, которые в качестве исходной информации используют ТЗ, выданное постановщиком.
...
Рейтинг: 0 / 0
19.06.2012, 13:14
    #37844161
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение труда при разработке программ
iscrafm__тестирование все же "поверхностное",
Безусловно. Постановщик (он же аналитик) должен участвовать в тестировании в основном чтобы дать вердикт "да, это именно то, что я имел в виду".
...
Рейтинг: 0 / 0
19.06.2012, 13:26
    #37844190
iscrafm__
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение труда при разработке программ
softwarerПостановщик (он же аналитик)
у нас это были разные люди, Аналитик - "клиенто-ориентированный" интерфейс, Постановщик - "системно-ориентированнный", образно
Хотя, в небольших конторах эти роли часто совмещаются.
...
Рейтинг: 0 / 0
19.06.2012, 13:30
    #37844201
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение труда при разработке программ
iscrafm__у нас это были разные люди,
У этой цепочки два конца, клиент и софт. А вот количество людей в ней может быть переменным, их названия и обязанности от случая к случаю различаются. Поэтому в таких "общих" разговорах я воспринимаю эту цепочку как единую сущность, предпочитаю не лезть глубже в детализацию.
...
Рейтинг: 0 / 0
19.06.2012, 13:34
    #37844215
iscrafm__
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение труда при разработке программ
softwarer,
Аналитик разговаривает на языке "бизнеса", Постановщик - на языке программы. Конечно эти роли можно объединить в одном человеке, если он знает хорошо и первое и второе.
...
Рейтинг: 0 / 0
19.06.2012, 13:41
    #37844237
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение труда при разработке программ
iscrafm__Аналитик разговаривает на языке "бизнеса", Постановщик - на языке программы. Конечно эти роли можно объединить в одном человеке, если он знает хорошо и первое и второе.
А кто-то говорит, что есть "бизнес-аналитики", а есть "системные аналитики". А кто-то впендюривает в эту цепочку "архитектора". А ещё как минимум вокруг действительно должен бегать РП. Итдитп. У разных людей по-разному, и я давно принял для себя, что надо или детально смотреть, как в конкретном месте, или же "не опускаться на уровень деталей" и не использовать, например, слово "аналитик", которое в разных случаях подразумевает совсем разные, буквально непересекающиеся списки обязанностей.
...
Рейтинг: 0 / 0
19.06.2012, 14:02
    #37844290
iscrafm__
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение труда при разработке программ
softwareriscrafm__Аналитик разговаривает на языке "бизнеса", Постановщик - на языке программы. Конечно эти роли можно объединить в одном человеке, если он знает хорошо и первое и второе.
А кто-то говорит, что есть "бизнес-аналитики", а есть "системные аналитики". А кто-то впендюривает в эту цепочку "архитектора". А ещё как минимум вокруг действительно должен бегать РП. Итдитп. У разных людей по-разному, и я давно принял для себя, что надо или детально смотреть, как в конкретном месте, или же "не опускаться на уровень деталей" и не использовать, например, слово "аналитик", которое в разных случаях подразумевает совсем разные, буквально непересекающиеся списки обязанностей.
в ИТ: системный аналитик = постановщик задач, перефразировано просто, Бизнес-аналитик - предоставляет требования к ПО со стороны бизнеса, часто в отрасли называют просто "аналитик". Просто это все не зафиксированные термины и в зависимости от отрасли интерпретируются как попало. Архитектор - "главный постановщик", который "видит" всю систему в целом.
...
Рейтинг: 0 / 0
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Разделение труда при разработке программ / 24 сообщений из 24, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]