Переключение на Главную Страницу Страницы: [1] 2 3  ОтправитьПечать
Очень популярная тема (более 25 ответов) 1CPP: разработчикам - о схеме работы (число прочтений - 13806 )
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
1CPP: разработчикам - о схеме работы
05. Марта 2008 :: 08:59
Печать  
Если бы Вы сейчас собрались организовать работу с кодом грамотно (на основании Вашего опыта в создании 1cpp и других разработок).
Каким образом вы бы эту работу строили?

Было бы разделение кода по зонам ответственности (принципы владения кодом). Если да, то каким образом?
Какова была бы методика принятия заявок и внесения коммитов?
Методика принятия решений в спорных вопросах?
  

De quelle planète es-tu?
Наверх
 
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1CPP: разработчикам - о схеме работы
Ответ #1 - 05. Марта 2008 :: 11:20
Печать  
Если речь об организации работы с кодом открытого проекта, то:

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

2. Организовано бы это было путем публикации списка зон ответственности и ответственных за них участников проекта. Постоянная поддержка данного списка в актуальном состоянии - это тоже зона ответственности кого-то из участников. Список составляется на основании добровольно взятых на себя обязательств. Участники проекта сознательно и добровольно соглашаются не вмешиваться в чужие зоны ответственности даже при наличии технической возможности для такого вмешательства.

3. Методика принятия заявок и внесения коммитов - это по большому счету личное дело ответственного за участок работы. Как лично ему удобно - так пусть и принимает заявки и вносит коммиты. Более того, данные методики будут сильно зависеть от того ПО, которое используется в проекте для учета заявок и для контроля над версиями.
При работе с CVS и с багзиллой лично мне очень нравится технология работы, принятая в команде Багзиллы (почитать подробнее можно тут: http://www.1cpp.ru/forum/YaBB.pl?num=1204133873).

4. Политика принятия решений по спорным вопросам - это более субъективное понятие. Есть как минимум два варианта, которые мне кажутся допустимыми.
а) В проекте должен быть человек, за которым всегда остается последнее слово.
б) Принимаются ЛЮБЫЕ разумные предложения до тех пор, пока принимаемые предложения не начинают противоречить друг другу. В такой ситуации не принимается никакого решения до тех пор, пока спорящие стороны не договорятся о единстве мнения, или пока одной из сторон не надоест спорить.
  
Наверх
www  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: 1CPP: разработчикам - о схеме работы
Ответ #2 - 05. Марта 2008 :: 19:33
Печать  
fez писал(а) 05. Марта 2008 :: 11:20:
Если речь об организации работы с кодом открытого проекта, то:

Скажи-ка, Федор, а организация командной работы над коммерческим проектом чем отличается от описанной схемы?
  

De quelle planète es-tu?
Наверх
 
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1CPP: разработчикам - о схеме работы
Ответ #3 - 06. Марта 2008 :: 07:56
Печать  
Коммерческие проекты тоже бывают разные.
Бывает работа в офисе на одну компанию, а бывает разработка тиражного продукта.

Работа в офисе на одну компанию гораздо проще в плане организации. Все толпой коммитят, в случае чего подошел и пообщался лично.
А с работой над тиражным продуктом я не сталкивался, так что ничего не скажу. Тут лучше седмина пытать. Хотя я не знаю, насколько у него там коллективно идет работа.
  
Наверх
www  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1CPP: разработчикам - о схеме работы
Ответ #4 - 06. Марта 2008 :: 07:58
Печать  
В любом случае коммерческий проект изначально работает на другой мотивации. И там другой способ получения ответственности. И там как правило легче общение, ибо все в одном часовом поясе и любому можно как минимум позвонить по телефону.
  
Наверх
www  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: 1CPP: разработчикам - о схеме работы
Ответ #5 - 06. Марта 2008 :: 08:04
Печать  
fez писал(а) 06. Марта 2008 :: 07:58:
В любом случае коммерческий проект изначально работает на другой мотивации. И там другой способ получения ответственности. И там как правило легче общение, ибо все в одном часовом поясе и любому можно как минимум позвонить по телефону.

Я тоже 5 лет назад так думал. Махнул рублем - и все само собой организовалось.
Сейчас, думаю, в условиях дефицита кадров, все сложнее.

Ты своих людей как удерживаешь, чтобы не свалили? Ладно, не отвечай, я догадываюсь.

P.S.
Начальника тюрьмы спрашивают:
- Почему у вас заключенные даже не предпринимают попыток к бегству?
- А я им каждый день читаю выдержки из утренних газет... Улыбка
  

De quelle planète es-tu?
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: 1CPP: разработчикам - о схеме работы
Ответ #6 - 06. Марта 2008 :: 08:06
Печать  
Кстати, ты заметил, Федор, что эта тема из всей серии самая непопулярная?
  

De quelle planète es-tu?
Наверх
 
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1CPP: разработчикам - о схеме работы
Ответ #7 - 06. Марта 2008 :: 08:51
Печать  
kms писал(а) 06. Марта 2008 :: 08:06:
Кстати, ты заметил, Федор, что эта тема из всей серии самая непопулярная?

Для меня это было очевидным с самого начала.
  
Наверх
www  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1CPP: разработчикам - о схеме работы
Ответ #8 - 06. Марта 2008 :: 09:23
Печать  
Я в целом давно согласен с Федором Печаль

fez писал(а) 05. Марта 2008 :: 11:20:
3. Методика принятия заявок и внесения коммитов - это по большому счету личное дело ответственного за участок работы. Как лично ему удобно - так пусть и принимает заявки и вносит коммиты. Более того, данные методики будут сильно зависеть от того ПО, которое используется в проекте для учета заявок и для контроля над версиями.
При работе с CVS и с багзиллой лично мне очень нравится технология работы, принятая в команде Багзиллы (почитать подробнее можно тут: http://www.1cpp.ru/forum/YaBB.pl?num=1204133873).

+1
Согласен 100%

fez писал(а) 05. Марта 2008 :: 11:20:
4. Политика принятия решений по спорным вопросам - это более субъективное понятие.
б) Принимаются ЛЮБЫЕ разумные предложения до тех пор, пока принимаемые предложения не начинают противоречить друг другу. В такой ситуации не принимается никакого решения до тех пор, пока спорящие стороны не договорятся о единстве мнения, или пока одной из сторон не надоест спорить.

+1
Согласен 100% по п.б)

fez писал(а) 05. Марта 2008 :: 11:20:
1. Да, было бы разделение зон ответственности.

2. Организовано бы это было путем публикации списка зон ответственности и ответственных за них участников проекта. Постоянная поддержка данного списка в актуальном состоянии - это тоже зона ответственности кого-то из участников. Список составляется на основании добровольно взятых на себя обязательств. Участники проекта сознательно и добровольно соглашаются не вмешиваться в чужие зоны ответственности даже при наличии технической возможности для такого вмешательства.

Это не всегда удобно/возможно/практично.
Один ответственный человек в открытом проекте не всегда может вести полную тех.поддержку на должном уровне, например, оперативно исправлять по запросам пользователей ошибки (новые или старые).
И в 1С++ мы уже видели подобное.
Это есть данность, и нам от нее никуда не деться Печаль
Мне больше нравится совместное владение открытым кодом всеми участниками на базе обязательного тестирования проекта. В этом случае можно гарантировать более полную и оперативную тех.поддержку проекта.
Т.е. нужно задекларировать, что
1. У каждой зоны ответственности есть свой ответственный разработчик 1.
2. При необходимости в случае невозможности участия разработчика 1 любой участник (или ниже) может править данные из его зоны ответственности.
Также можно принять разные схемы:
- создаем группу "соучастников" для каждой зоны ответственности, и только эти люди при необходимости могут что-то в ней править.
- правка возможна только с разрешения ответственного
- и т.п.
Простых схем для разрешения подобных "конфликтов" можно придумать много.
Т.е. я предлагаю совместить совместное владение кодом и ответственность за каждую зону.

ИМХО это идеальный вариант, если участники соблюдают соответствующие условия проекта.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1CPP: разработчикам - о схеме работы
Ответ #9 - 06. Марта 2008 :: 09:51
Печать  
fez писал(а) 06. Марта 2008 :: 08:51:
kms писал(а) 06. Марта 2008 :: 08:06:
Кстати, ты заметил, Федор, что эта тема из всей серии самая непопулярная?

Для меня это было очевидным с самого начала.

Потому что предмет сложен. Мало кто может чего сказать толком и правильно и не сесть в лужу.
Даже если и изучал менеджмент в институте, то практически применить/закрепить было негде...
  
Наверх
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1CPP: разработчикам - о схеме работы
Ответ #10 - 06. Марта 2008 :: 10:40
Печать  
artbear писал(а) 06. Марта 2008 :: 09:23:
Я в целом давно согласен с Федором Печаль

fez писал(а) 05. Марта 2008 :: 11:20:
б) Принимаются ЛЮБЫЕ разумные предложения до тех пор, пока принимаемые предложения не начинают противоречить друг другу. В такой ситуации не принимается никакого решения до тех пор, пока спорящие стороны не договорятся о единстве мнения, или пока одной из сторон не надоест спорить.

+1
Согласен 100% по п.б)


Вообще-то твои +100% к пункту б) - это не ко мне. Это в Linux'е так принято. При этом там Последнее Слово остается всегда за Линусом, но на практике он действует по вышеописанному принципу. Поскольку в условиях линукса и при наличии там такого лидера как Линуса Торвальдса - это работает - я и считаю такой принцип работы - допустимым. Но не факт, что 100% применимым к любой ситуации. Считаю, что для более простых проектов, типа 1С++ для упрощения и для ускорения в принятии решений вполне можно работать и по принципу а). Лично мне было бы так комфортнее.
  
Наверх
www  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1CPP: разработчикам - о схеме работы
Ответ #11 - 06. Марта 2008 :: 11:02
Печать  
artbear писал(а) 06. Марта 2008 :: 09:23:
fez писал(а) 05. Марта 2008 :: 11:20:
3. Методика принятия заявок и внесения коммитов - это по большому счету личное дело ответственного за участок работы. Как лично ему удобно - так пусть и принимает заявки и вносит коммиты. Более того, данные методики будут сильно зависеть от того ПО, которое используется в проекте для учета заявок и для контроля над версиями.
При работе с CVS и с багзиллой лично мне очень нравится технология работы, принятая в команде Багзиллы (почитать подробнее можно тут: http://www.1cpp.ru/forum/YaBB.pl?num=1204133873).

+1
Согласен 100%


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


artbear писал(а) 06. Марта 2008 :: 09:23:
fez писал(а) 05. Марта 2008 :: 11:20:
1. Да, было бы разделение зон ответственности.
2. Организовано бы это было путем публикации списка зон ответственности и ответственных за них участников проекта. Постоянная поддержка данного списка в актуальном состоянии - это тоже зона ответственности кого-то из участников. Список составляется на основании добровольно взятых на себя обязательств. Участники проекта сознательно и добровольно соглашаются не вмешиваться в чужие зоны ответственности даже при наличии технической возможности для такого вмешательства.

Это не всегда удобно/возможно/практично.
Один ответственный человек в открытом проекте не всегда может вести полную тех.поддержку на должном уровне, например, оперативно исправлять по запросам пользователей ошибки (новые или старые).
И в 1С++ мы уже видели подобное.
Это есть данность, и нам от нее никуда не деться Печаль


Вот тут есть еще и другая данность. Любой разработчик хочет сохранить контроль над своим участком кода. Это на самом деле очень важно. И твой вариант никак эту проблему не может решить, он даже наоборот, ее усугубляет.

artbear писал(а) 06. Марта 2008 :: 09:23:
Мне больше нравится совместное владение открытым кодом всеми участниками на базе обязательного тестирования проекта. В этом случае можно гарантировать более полную и оперативную тех.поддержку проекта.
Т.е. нужно задекларировать, что
1. У каждой зоны ответственности есть свой ответственный разработчик 1.
2. При необходимости в случае невозможности участия разработчика 1 любой участник (или ниже) может править данные из его зоны ответственности.
Также можно принять разные схемы:
- создаем группу "соучастников" для каждой зоны ответственности, и только эти люди при необходимости могут что-то в ней править.
- правка возможна только с разрешения ответственного
- и т.п.
Простых схем для разрешения подобных "конфликтов" можно придумать много.
Т.е. я предлагаю совместить совместное владение кодом и ответственность за каждую зону.

ИМХО это идеальный вариант, если участники соблюдают соответствующие условия проекта.


Совместное владение кодом хорошо работает в рамках XP. Когда применяется парное программирование. В любом случае совместного владения кодом без общения не получится. В рамках твоего предложения вот это самое общение вообще ничем не обеспечивается.
  
Наверх
www  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1CPP: разработчикам - о схеме работы
Ответ #12 - 06. Марта 2008 :: 11:04
Печать  
trdm писал(а) 06. Марта 2008 :: 09:51:
fez писал(а) 06. Марта 2008 :: 08:51:
kms писал(а) 06. Марта 2008 :: 08:06:
Кстати, ты заметил, Федор, что эта тема из всей серии самая непопулярная?

Для меня это было очевидным с самого начала.

Потому что предмет сложен. Мало кто может чего сказать толком и правильно и не сесть в лужу.
Даже если и изучал менеджмент в институте, то практически применить/закрепить было негде...


Именно. Дело даже не в сложности предмета, а именно в отсутствии практики у большинства тут присутствующих. Даже работа разработчиком в коллективном проекте редко может дать представление о проблемах, которые появляются у координатора.
  
Наверх
www  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1CPP: разработчикам - о схеме работы
Ответ #13 - 06. Марта 2008 :: 11:06
Печать  
fez писал(а) 06. Марта 2008 :: 10:40:
Вообще-то твои +100% к пункту б) - это не ко мне. Это в Linux'е так принято.

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

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 1CPP: разработчикам - о схеме работы
Ответ #14 - 06. Марта 2008 :: 11:09
Печать  
fez писал(а) 06. Марта 2008 :: 11:02:
Любой разработчик хочет сохранить контроль над своим участком кода. Это на самом деле очень важно.

Совершенно не соглашусь Печаль Не любой, а только большинство Улыбка
Вот, например, в ХП-методиках пропагандируется совместное владение кодом Улыбка
Те же Спольски, Бек об этом не один раз писали, помнится.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 
ОтправитьПечать