Пока есть время - хочу быстро описать свой опыт.
Заказчик нанял 2х программистов для работы над одним и тем же проектом, чтобы снизить риск невыполнения всрок.
Один из них (это я) публиковал свои мысли по ходу работы над проектом. Второй это увидел и это открылось.
Далее заказчик предложил работать совместно...
Я сделал ошибку, когда на это согласился. Почему?
Я не против работы в команде, я не против разделения труда ради ускорения процесса, но...
Во-первых, я не выбирал команду и я не знаю что это за человек. Он мне был дан в сотрудники заказчиком. Заказчик выбирал по одним критериям, а я бы выбирал иначе.
Во-вторых, работа в команде даже из двух человек требует координации действий. Реально у меня почти всё время уходило на согласование действий, работ, результатов, сроков и версий файлов. Короче говоря, мне кажется, что для этого нужен отдельный человек (менеджер проекта), который в принципе может и не быть программистом. Его задача управлять разработкой, а не программировать.
В-третьих, если люди работают удалённо, то нужен сервер контроля версий. Иначе очень тяжело управляться с кодом. Иногда приходится обоим работать над одним и тем же файлом - возникает конфликт версий...
Таким образом, для работы команды нужно ещё и софт настроить, и уметь им пользоваться.
Кроме того, когда работаешь один, то знаешь "как себя мотивировать". При работе в команде нужно учитывать и отношения, и мотивацию, и всяческие обстоятельства/форсмажоры/привычки и многое другое.
Два дня я переписывался по аське и обменивался файлами, а затем понял, что я просто не могу с этим справиться. Запутался в версиях файлов, голова гудит, а работа не движется...
На третий день я подумал, что раз меня наняли одного работать над проектом, то и буду так делать. Иначе все сроки сорвутся и оплату я не получу.
Но опыт очень хороший. Теперь я умный.
Комментарии
Контроль версий - Штука серьёзная.
Для работы в команде нужен опыт, и конечно если его нет. то лучше работать одному.
Вообще в любом Проекте очень важно вначале обсудить ТЗ. Грамотное ТЗ сокращает сроки в разы.
Я за все время своей работы, ни разу не видел грамотного ТЗ от Заказчика.
В команде работать без опыта нереально медленно. Так что остаеться самому быть программистом, и менеджером в 1м лице.
Что я делаю....
Да... есть такие вещи как dotProject. Но лично я пока не нашел ни одной идеальной.
В дотПроекте нет нормального разграничения прав (вообще как-то по-дурацки сделано - вроде права есть, но любой пользователь видит всех пользователей в выпадающем списке). \
В phproject вроде с правами все ок, но глюки с кодировкой и довольно сложная система, хотя и гибкая.
кстати, а с друпальским модулем project кто имел дело? именно для фриланса как?
для гостя: - ТЗ заказчик никогда и не пишет Представьте себе покупателя в магазине автомобилей, когда он описывает все аэродинамические характеристики желаемого авто в цифрах... Есть несколько стадий и до ТЗ...
Работаю в комманде с пользователем http://drupal.ru/user/chup
Дискомфорта не чувствую. Я делаю одни вещи он другие. Код умеем читать оба и в Друпале разбираемся так что если мне дадут его работу или ему мою, то тормозов никаких не будет.
Мне кажется, что важно чтобы каждый член команды лично выбрал себе сотрудников. Это раз!
Во-вторых, мы работали над дизайном (CSS-файл), а не над разным кодом.
В принципе, можно разнести работу в разные файлы или работать над кодом, который на общем сервере запущен...
Модуль Project насколько я понимаю в данной ситуации не поможет. Нужна именно система разрешения конфликтов в коде. Можно использовать CVS от sf.net или подобные...
Над CSS и дизайном нельзя работать вдвоём. Это как рисовать картину вдвоём. Если покрасить стенку - тогда да.
Кто-то может только вспомогательные элементы делать(мешать краску, и грунтовать холст).
Случается, что дизайн делают несколько человек
У друпала для это есть замечательная штука - drupal_add_css, каждый модуль добавляет свой css
соответственно файлы не пересекаются
В случае же когда весь css в одном файле темы - грамотный подход нужен в именовании элементов страницы:
каждый блок всегда имеет уникальное название класса стиля и все его содержимое нужно префиксировать им в коде css
CSS изначально задуман был, чтобы минимизировать количество мусора. А писать каждый клас под каждый блок каждого модуля - плохой стиль.
Я читал, что стили даже рекомендуют разбить на несколько файлов по назначению: layout, forms и т.д.
Это облегчает работу со стилями, но для одновременной работы нескольких людей над дизайном это вряд-ли поможет. Это модули можно писать и настраивать параллельно. И то, при отлове ошибок мне бы очень хотелось знать, что нет никакого постороннего влияния..
Был случай, когда попросили немного поправить корпоративный сайт. Их компания сдвинутая на планировании - барышня мне выдала чуть-ли не поминутное расписание моей работы на неделю вперёд!...
Короче на меня давят сроками, я движок впервые вижу - нужно быстро разбираться и исправлять.
Я включаю функцию опросов - смотрю на сайте... Нет её! Захожу опять - опросы выключены. Включаю опять. Смотрю - нет опросов. Потом в какой-то момент они появились. Я быстренько настраиваю - опять исчезли...
Я уже есть хочу, голова не соображает... Короче у меня почти истерика. В коде всё есть, а на сайте не видно. Я просто не понимаю как это может быть! При этом барышня постоянно мне напоминает, что я опаздываю, срываю сроки, подвожу компанию и т.д. - давит на мозг.
В конце дня меня выругали за то, что я не сделал опросы. Я ей объясняю свою проблему, а она мне заявляет "А зачем их на сайте включать? Они и так целый день появляются - приходилось выключать..."
Мне смешно не было...