Re[13]: Together и другие
От: Яков Сироткин Россия http://www.telamon.ru/
Дата: 12.03.02 19:30
Оценка: -1
Здравствуйте paul_shmakov, Вы писали:

PS> Ситуация: из команды уходит один из ключевых разработчиков. Что делать? Что делать с тем кодом, который он оставил? Только не говорите, что все разработчики всегда должны быть в курсе того, что делают другие. Никогда этого не получается.


Получается. В XP есть такая практика — Collective Code Ownership

PS> Да, начальник отдела должен быть в курсе. Но обычно он в курсе достаточно поверхостно, т.к. когда Вы ему приносите 150Кб кода, как результат выполнения задания, он вникает в особенности функционирования, а не архитектуру.

150Кб кода это знаешь ли не мало, это один человек за неделю не напишет (если конечно мы говорим о качественном коде) А если никто из начальства не понимате в архитектуре, то это тоже нехорошо.

PS> Вот здесь и помогают CASE-средства. Несколько простых, самых важных для понимания диаграмм, описание классов и их взаимосвязей, одинаковое форматирование исходного кода и т.п. — все это сильно упрощает взаимозаменяемость разработчиков.


Несколько простых диаграмм можно нарисовать на бумажке или в Visio. Одинаковое форматирование кода во всей индустрии для Java нормальное явление, достигается в некоторых средствах разработки нажатием пары клавиш.


PS> И не имеет значения, сколько человек в команде.

Сколько стоят CASE средства? Для одного человека его купить гораздо тяжелее чем на десятерых.

PS> Ну а если Вы разрабатываете систему не один, а с напарником. Как Вы будете обсуждать ее архитектуру? "Ну помнишь я тебе говорил про подсистемку, в которой транзакции на банковском счете осуществляются удаленным банковским терминалом? Так вот, пусть там будет не 10 классов, а 11. Да и одну из таблиц нужно убрать, заменив ее на три другие." Долго Вы сможете вести такую беседу, полностью вникая во все, что говорит Вам собеседник? А если вечерком еще 3 литра пива выпить, то на следующее утро все вспомните?


И на это есть практика XP — Pair Programming Кстати, сдается мне ты не один банковскую систему разрабатываешь Мои знакомые, которые делают банковское ПО тоже используют CASE, но в данном случае не очевидно, что речь идет о банковской системе.

PS> А если продавать, поддерживать пользователей, выпускать новые версии — одназначно — код нужно документировать!

В XP принято писать понятный код, достигая этого через Refactoring, а вот документацию в XP пишут не всегда

PS> Вы к этому в любом случае придете Так что лучше раньше, чем потом.

Я вот в свое время порисовал в Together, а теперь вот обхожусь
Яков Сироткин
http://www.telamon.ru/
yasha@telamon.ru
Re[13]: Together и другие
От: Nikita Dolgov Россия http://nikitadolgov.narod.ru/
Дата: 13.03.02 10:20
Оценка:
Здравствуйте paul_shmakovВ,

Однозначно присоединяюсь к Вашему мнению.

Я имел дело с проектами состоящими из 1, 2, 20+ человек. Во всех случаях нел\достаток документации (в особенности стандартной — Vision,Glossary,Use-cases,Class/Sequence diagrams) всегда обходился дорого. В первых двух случаях это означало просто переписывание приложения каждым новым человеком ответственным за него вместо апгрейда в новую версию.

ИМХО отсутствие упомянутых документов есть признак непрофессионализма (или home-grown кода который никто никогда не купит и сопровождать не будет)
Old C programmers never die. They're just cast into void.
Re[14]: Together и другие
От: Яков Сироткин Россия http://www.telamon.ru/
Дата: 13.03.02 15:01
Оценка:
Здравствуйте Nikita Dolgov, Вы писали:

ND>Я имел дело с проектами состоящими из 1, 2, 20+ человек. Во всех случаях нел\достаток документации (в особенности стандартной — Vision,Glossary,Use-cases,Class/Sequence diagrams) всегда обходился дорого. В первых двух случаях это означало просто переписывание приложения каждым новым человеком ответственным за него вместо апгрейда в новую версию.


В XP считается, что написание понятного кода и тестов более эффективное средство от выбрасывания сделанного ранее, чем тома документации. Соревноваться в разнообразии и объеме окументации не очень интересно, к тому же хорошую документацию очень мало кто умеет писать.
Яков Сироткин
http://www.telamon.ru/
yasha@telamon.ru
Re[14]: Together и другие
От: paul_shmakov Россия  
Дата: 13.03.02 15:34
Оценка:
Здравствуйте Яков Сироткин, Вы писали:

ЯС>Здравствуйте paul_shmakov, Вы писали:


PS>> Ситуация: из команды уходит один из ключевых разработчиков. Что делать? Что делать с тем кодом, который он оставил? Только не говорите, что все разработчики всегда должны быть в курсе того, что делают другие. Никогда этого не получается.


ЯС>Получается. В XP есть такая практика — Collective Code Ownership


Да, я в курсе техник и практик Extreme Programming. Но, мне кажется, Вы нажимаете на то, что XP — это некая новая анархия, полная свобода в сравнении с RUP, например.
Но ведь это не так! XP — это набор очень правильных, уже многократно выстраданных рекомендаций и техник. И, безусловно, они пойдут всем нам на пользу. Особенно для маленьких команд.

Collective Code Ownership — еще один из способов уменьшения сложности последствий вышеназванной проблемы. Но ни в коем случае эта техника не является полной панацеей.

ЯС>В XP принято писать понятный код, достигая этого через Refactoring, а вот документацию в XP пишут не всегда:)


Так это везде принято :) XP описывает, как этого проще и легче достичь. Ну а насчет документации — я с Вами не согласен.

PS>> Да, начальник отдела должен быть в курсе. Но обычно он в курсе достаточно поверхостно, т.к. когда Вы ему приносите 150Кб кода, как результат выполнения задания, он вникает в особенности функционирования, а не архитектуру.

ЯС>150Кб кода это знаешь ли не мало, это один человек за неделю не напишет (если конечно мы говорим о качественном коде) А если никто из начальства не понимате в архитектуре, то это тоже нехорошо.

Нет, Вы меня не совсем правильно поняли (а, скорее, я плохо объяснил). Речь идет о том, что в реальном проекте очень сложно абсолютно всем быть в курсе всех последных изменений проекта. Чтобы тщательно вникнуть в некую новую подсистему нужно времени не намного меньше, чем на ее проектирование.
Я это утверждаю по собственному опыту. Возможно, что он не показателен (руки у нас кривые). Да, мы примерно всегда были в курсе того, кто, что и даже как делает. Практический каждый разработчик представлял, как функционируют и как построены чужие подсистемы. Но этого мало для того, чтобы кинуть беглый взгляд на чужой код и, возможно что-то вспомнив, сразу выдать: "А, да эти данные рефрешатся по таймеру теми очень хитрыми колбэками с сервера". Обычно приходится потратить достаточно времени, чтобы разобраться, сказать, что тот, кто писал — полный идиот, потом посидеть еще и понять, как круто тут все сделано, и что и куда нужно добавить.

ЯС>Несколько простых диаграмм можно нарисовать на бумажке или в Visio. Одинаковое форматирование кода во всей индустрии для Java нормальное явление, достигается в некоторых средствах разработки нажатием пары клавиш.


Так я и не утверждаю, что обязательно платить несколько тысяч за Rational Rose или Together. Каждая команда должна определиться с набором документов, диаграмм, соглашений. И для этого выбрать набор средств.

ЯС>Сколько стоят CASE средства? Для одного человека его купить гораздо тяжелее чем на десятерых.


Да, такая проблема есть. Особенно для небольших фирм. Я вижу здесь выход в аренде CASE-средств (правда, я не уверен, что это разрешено лицензионными соглашениями производителей).

ЯС>И на это есть практика XP — Pair Programming


Ну правильно, у Pair Programming несколько задач (для тех, кто XP не интересовался: Pair Programming — это когда программисты всегда работают в паре, вместе сидят перед компьютером, вместе думают, один пишет, а второй из-за плеча смотрит и контролирует, обдумывает; потом меняются местами).
Первая — это более высокое качество разработки (две головы все же лучше одной), постоянный контроль.
Вторая — это как раз та проблема, на которую я нажимал — один ушел, зато второй всегда в курсе.

Да, XP — это очень хорошо, но это не полная анархия. Даже наоборот.
Paul Shmakov
Re[15]: Together и другие
От: Яков Сироткин Россия http://www.telamon.ru/
Дата: 13.03.02 15:47
Оценка:
Здравствуйте paul_shmakov, Вы писали:

PS>Да, XP — это очень хорошо, но это не полная анархия. Даже наоборот.

Абсолютно согласен, XP очень жесткая система! Но тем не менее она не требует постоянного использования CASE.
Яков Сироткин
http://www.telamon.ru/
yasha@telamon.ru
Re[15]: Together и другие
От: paul_shmakov Россия  
Дата: 13.03.02 16:36
Оценка:
Здравствуйте Яков Сироткин, Вы писали:

ЯС>В XP считается, что написание понятного кода и тестов более эффективное средство от выбрасывания сделанного ранее, чем тома документации. Соревноваться в разнообразии и объеме окументации не очень интересно, к тому же хорошую документацию очень мало кто умеет писать.


Да и не стоит писать тома документации. И уж точно не "двухметровые полки руководств по OS/360" Фредерика Брукса :) (Кстати, если кто еще не успел прочитать книгу Брукса "Мифический человеко-месяц", то очень советую все бросить и срочно прочитать. А потом каждые 2 года перечитывать. Ей хоть и 25 лет, а в программисткой жизни мало что изменилось. Огромное удовольствие гарантирую, если не понравится — я верну вам деньги :) ну это шутка, конечно. http://www.books.ru/shop/books/3626 ).

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

Важная задача для фирмы — максимально повысить взаимозаменяемость своих программистов. И XP, и документирование и т.п. — все в этом помогает.
Paul Shmakov
Re[15]: Together и другие
От: Nikita Dolgov Россия http://nikitadolgov.narod.ru/
Дата: 14.03.02 10:25
Оценка:
Здравствуйте Яков Сироткин,:

ЯС>В XP считается, что написание понятного кода и тестов более эффективное средство от выбрасывания сделанного ранее, чем тома документации. Соревноваться в разнообразии и объеме окументации не очень интересно, к тому же хорошую документацию очень мало кто умеет писать.


Я сильно предпочитаю RUP всем agile методологиям. В отношении к ХР — по крайней мере я сторонник Мартина Фаулера а не Кента Бека (см например "Is design dead?").

С другой стороны я вполне согласен что ХР играет важную роль в пропагандировании идей рефакторинга/юнит тестов/... А уж если поглядеть кто ХР продвигает — это ж супербизоны , но для этого надо лет 15 пробыть в бизнесе.

Чтобы разобраться в новой предметной области может уйти 0.5-1 лет и только качественная документация может облегчить эту задачу.
Old C programmers never die. They're just cast into void.
Re[16]: Together и другие
От: Яков Сироткин Россия http://www.telamon.ru/
Дата: 14.03.02 12:52
Оценка:
Здравствуйте Nikita Dolgov, Вы писали:

ND>Я сильно предпочитаю RUP всем agile методологиям. В отношении к ХР — по крайней мере я сторонник Мартина Фаулера а не Кента Бека (см например "Is design dead?").

Ты будешь смеятся, мне тоже нравится Фаулер
Яков Сироткин
http://www.telamon.ru/
yasha@telamon.ru
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.