LINUX.ORG.RU
ФорумTalks

Как нескольким программистам работать над одним проектом? Это же АДЪ!


0

2

Нужно было с одногруппником разработать один небольшой проект. Поначалу все нормально было, но потом не смогли прийти к общему мнению по стилю, алгоритму и пр., в результате пишем каждый свою игру %)
Как взрослые умные дяди и тети толпой программируют одну программу? Вопрос особенно актуален в контексте свободного ПО, ведь в этом случае над одним несчастным проектом могут работать тысячи программистов.

★★★★★

У меня с одногруппниками обычно другая проблема - они забивают + за ними часто приходится код переписывать полностью. Чтобы они что-то рьяно отстаивали - нет, такого не было.

Sadler ★★★
()

умным дяденькам пох на интерфейс, общее мнение и тп. Каждый делает свою работу, причем так, как просил заказчик. Один пишет одну ф-цию (например), второй - другую, третий - интерфейс. И преимуществ с++ в том, что они никак не связаны

comp00 ★★★★
()

но потом не смогли прийти к общему мнению по стилю, алгоритму и пр.

Это проходит с возрастом, ага.

geekless ★★
()

не смогли прийти к общему мнению по стилю, алгоритму и пр

«Настоящих буйных мало, вот и нету вожаков».

Обычно главный буйный, архитектор проекта, умеет заставить всех исполнителей соблюдать стиль и все такое.

abraziv_whiskey ★★★★★
()

Я думал что для этого и нужен тимлид.

coldy ★★
()

Обычно есть кто-то главный, за которым решающее слово.

tailgunner ★★★★★
()

Как взрослые умные дяди и тети толпой программируют одну программу?

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

DNA_Seq ★★☆☆☆
()

Как взрослые умные дяди и тети толпой программируют одну программу?

Я смотрю «мы многое сегодня поняли»(С) Саус-парк. :D

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

Успешность любой совместной человеческой деятельности на 95% зависит от успешности разрешения конфликтов. По этому структура любой организации это по сути структура конфликт-менеджмента.

kernel ★★☆
()
Ответ на: комментарий от ymuv

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

f1xmAn ★★★★★
() автор топика
Ответ на: комментарий от f1xmAn

И это тоже. Блин, ну как так можно?

Если хочешь, чтобы всё было сделано хорошо, делай это сам. Хотя я сейчас придерживаюсь другой тактики по предмету с коммандным программированием на свободную тему. Просто решил сам не писать ни строчки сверх нормы (4 часа в неделю). Пусть препод что хочет, то и делает с ними.

Sadler ★★★
()

Обычно есть один человек, который шлет лесом всех индивидов, которые не соблюдать его правила. (Линус, Дреппер, ...)

Когда у проекта уже есть какая-то история, то в нем есть определенные правила (стиль) написания кода.

Алгоритмы должны проверяться тестами. Тут побеждает сильнейший.

trex6 ★★★★★
()
Ответ на: комментарий от comp00

Если бы программисты строили дома...

Юдин пишет одну ф-цию (например), второй - другую, третий - интерфейс.

...

21 апреля.

Обсуждали проект. Сидоров предлагает крупноблочную архитектуру. Петрович настаивает, что все надо строить по старинке, из кирпича, не по-ламерски. Самый радикальный проект предложил Алекс: построить несколько десятков деревянных коттеджей и потом соединить их подземными туннелями. На Западе сейчас так модно. Напомнили ему, что заказчик требует именно 12-этажный дом. Пытались решить вопрос дуэлью в Quake. Алекса с его коттеджами завалили сразу, но между Петровичем и Сидоровым вышла ничья. В итоге каждый будет строить по своему плану, а потом попытаемся все это соединить, чтоб не рухнуло.

...

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от f1xmAn

второй дома с температурой лежит

Ну и что? За компьютером посидеть можно 1 час в день. Если ноутбук то можно и в кровать взять.

ymuv ★★★★
()
Ответ на: комментарий от Sadler

Если хочешь, чтобы всё было сделано хорошо, делай это сам

В очередной раз убеждаюсь в правильности этой фразы. Сегодня ночью мне не спать :(

f1xmAn ★★★★★
() автор топика

Как взрослые умные дяди и тети толпой программируют одну программу?

диктаторский режим. 1 руководитель, остальные проходят через фильтрацию. либо 1 руководитель + несколько доверенных лиц, которые помогают с фильтрацией.

waker ★★★★★
()
Ответ на: комментарий от ymuv

Ну и что? За компьютером посидеть можно 1 час в день. Если ноутбук то можно и в кровать взять

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

f1xmAn ★★★★★
() автор топика
Ответ на: комментарий от f1xmAn

В очередной раз убеждаюсь в правильности этой фразы. Сегодня ночью мне не спать :(

Главное, чтоб другие на тебе не ездили за счёт этой фразы. А то зачем им стараться, если ты и так делаешь? Я бы ввёл понедельную систему оценок каждого члена команды. Самый низкопродуктивный каждую неделю выбывает, пока в команде не останутся лишь полезные люди. Тогда и документацию всю можно будет составлять эффективнее, и планирование будет проще.

Sadler ★★★
()
Ответ на: комментарий от Sadler

Ну вообще если делается дипломная/курсовая то пусть первое время каждый делает как хочет, начнет тикать дедлайн - сразу команда придет к консенсусу.

DNA_Seq ★★☆☆☆
()

Как взрослые умные дяди и тети толпой программируют одну программу?

если взрослые умные дяди и тети не приходят к консенсусу - проект встаёт их увольняют

jcd ★★★★★
()

один делает отдельные процедуры программы, второй саму программу.

XoFfiCEr ★★☆☆
()
Ответ на: комментарий от DNA_Seq

Ну вообще если делается дипломная/курсовая то пусть первое время каждый делает как хочет, начнет тикать дедлайн - сразу команда придет к консенсусу.

Дак у нас чекпойнты раз в две недели, где команде выставляются оценки. И оценка по предмету напрямую зависит от работы команды.

Sadler ★★★
()

Поначалу все нормально было, но потом не смогли прийти к общему мнению по стилю, алгоритму и пр.

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

Bad_ptr ★★★★★
()

Нужно сразу определить, у кого длиy^W^W кто главный.

cipher ★★★★★
()

Следующий вопрос, очевидно, будет: «как больше одного модератора модерируют ЛОР».

svu ★★★★★
()

Главный буйный товарищЪ копипастит свои правила написания кода и бьёт по пальцам если что.

Deleted
()

Ну должен быть кто отвечает за проект в целом и может поставить «точку» в споре.

В opensource разработке, кстати, с этим все гораздо проще т.к. обычно отсутствуют корпоративные правила и лидер проекта может как угодно изголяться над разработчиками строить себе workflow разработки. Исключения составляют крупные проекты и фонды где обычно уже сформированы определенные правила и законы

maxcom ★★★★★
()
Ответ на: комментарий от DNA_Seq

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

слова не мальчика, но... нуба.

Вот, ваш модуль работает, а соседний нет. Вопросы на засыпку

1. дадут ли премию всвязи окончанием проекта?

2. не пошлют ли вас в «усиление», исправлять ошибки в кое-как написанном соседнем модуле?

gods-little-toy ★★★
()
Ответ на: комментарий от svu

Следующий вопрос, очевидно, будет: «как больше одного модератора модерируют ЛОР».

Дык удаленные-то модераторы не могут восстанавливать. Поэтому, для них соблюдается принцип суперпозиции

модерация(модерация(лор, X) , Y) == модерация(модерация(лор, Y) , X)

в вот для патчей такой принцип не соблюдается, будут коллизии...

gods-little-toy ★★★
()
Ответ на: комментарий от abraziv_whiskey

Обычно главный буйный, архитектор проекта, умеет заставить всех исполнителей соблюдать стиль и все такое.

Угу, именно так.

А, вообще, программирование хотя бы вдвоём очень сильно подстёгивает общую производительность. Дисциплинирует, стимулирует и т.п. :)

KRoN73 ★★★★★
()
Ответ на: комментарий от f1xmAn

Класть на них надо - на всех этих халявщиков. Зачем они вам нужны?.. подумайте об этом...

И им от этого проку ровно никакого не будет, наоборот - только во вред. Ну зачем им этот диплом, это высшее образование при абсолютном отсутствии навыков? Потому будут мучиться пытаясь устроиться на работу по специальности - нигде не возьмут.

А если не по специальности - тогда тем более... а на троечку что угодно можно сдать не зная ничего. %(

короче, вы меня поняли.

P.S. сам наступал на эти грабли, много помогал сокурсникам и получал за это шиш потом, ни от кого из них потом помощи не дождёшься, когда она реально необходима. Посему думать надо в первую очередь о себе - не мы такие, жизнь такая. :(

BattleCoder ★★★★★
()

не в обиду будет сказано, но именно понимание данного вопроса и разделяет школоту и разработчиков.

а по теме, в команде есть небольшая группа людей, которая определяет, как будут работать остальные, начиная от стиля кодирования и заканчивая деталями реализации. Люди эти - тим-лидеры и архитекторы. Конечно, в «команде» из двух человек это слегка проблематично ;)

aol ★★★★★
()
Ответ на: комментарий от alix

то поможет парное программирование

+1

Хотя всё с того, что

но потом не смогли прийти к общему мнению по стилю, алгоритму и пр.

Если проект групповой, то вначале надо обговорить его модель, а не начинать писать х.....

AlexVR ★★★★★
()

да... отвечу на вопрос-то. из своего (пока небольшого) опыта.

решает тот, кто главный. тим лидер, или кто там... фактически я сейчас работаю над чем-то... работаем мы вдвоём на самом деле... и каждый наш шаг контролируется. ругаться пока не приходилось =) да и глупо это попросту. зачем? дело заказчика - сформулировать требования, дело программиста - реализовать это. Всё. точка. Главное, чтобы работало.

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

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

BattleCoder ★★★★★
()
Ответ на: комментарий от BattleCoder

Просто. пишу сейчас программу с большим количеством функций (ну относительно конечно же), помещенных в отдельные файлы, вот к слову и пришлось.

comp00 ★★★★
()

Учиться распределять обязанности. Учиться искать компромиссы. Двигаться к достижению поставленной цели - научиться и получить зачёт (или что там у вас).
Дискутировать аргументировано.

invy ★★★★★
()
Ответ на: Если бы программисты строили дома... от DNA_Seq

Я сказал очень грубо. Естественно, если будуткакие-то критические ошибки ( например, «конфликт» типов- один задал в своей функции переменную символьного типа, а второй передает в нее вещественное число...*) то ничего не заработает

*Кстати, возможно пример неудачен, тк, в том же С++ спасут заголовочные файлы.

comp00 ★★★★
()
Ответ на: комментарий от gods-little-toy

Неужели табличка «Sarcasm» не заметна?

DNA_Seq ★★☆☆☆
()

Как взрослые умные дяди и тети толпой программируют одну программу?

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

Или как тут уже предложили, померяйтесь пиписьками и по результатам определите, кто будет тимлидом :)

Harald ★★★★★
()
Ответ на: комментарий от f1xmAn

Метод великолепный, код получается почти без ошибок, а которые есть, находятся за секунды. Ну и взаимное обучение

alix ★★★★
()
  • а) Разделение сфер ответственности, каждый берет что может/нравится, но и отвечает, за то, что взял. Если что-то не работает в его модуле, то разбираться ему.
  • б) Компромиссы, почти всегда можно предложить третий/четвертый вариант, и договориться.
  • в) Подбирать в команду людей с похожими вкусами/взглядами, хотя это не всегда возможно, и вообще не панацея.
  • г) Если проект более-менее крупный, формируется ядро разработчиков, которые принимают решения, см пункты выше.
CrossFire ★★★★★
()

Поначалу все нормально было, но потом не смогли прийти к общему мнению по стилю, алгоритму и пр., в результате пишем каждый свою игру %)

И правильно, рано вам ещё, понабивайте шишки каждый отдельно, со временем будет больше понимания процесса :}

Andru ★★★★
()

Элементарно. Пишем по проекту и техническому заданию. Стиль у каждого свой, главное чтобы каждый мог разобрать код каждого. Пишутся готовые блоки - функции, пакеты - которые используются через их интерфейсы.
Ещё раз повторяю - пишем по проекту и техническому заданию. Без проекта и задания - это не работа, а бардак.

Xellos ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.