четверг, 24 апреля 2008 г.

Стартуем!

Коллеги! На днях хочу выложить для всеобщего ознакомления свою давнишнюю статью про идеологию Starteam версии 2005R2, которую я написал по материалам из статей о продукте и его документации. Статья была написана для внутреннего использования, поэтому её нужно вначале подрихтовать и убрать лишние неологизмы =). Сейчас уже появился Starteam 2008, и конечно, многое изменилось, но основы и идеи, заложенные в предыдущих версиях, актуальны и сейчас. Но прежде я хотел бы поговорить про несколько странное отношение к системам контроля версий со стороны Borland.

Как-то на одной из презентаций 2007-ой версии Delphi я задал вопрос Кириллу Ранневу о том, куда делся интегрированный Starteam – клиент, который был в D2006, и почему исчезли любые упоминания о Starteam из Delphi. Ответ был его достаточно интересным. Дело в том, что Borland и CodeGear договорились о том, что CodeGear будет SCM нейтральным, а Borland – IDE нейтральным. Причин этому может быть много, но мне теребит мозг только одна - топ - менеджеры Borland так хотели дистанцироваться от своего убыточного софтверного подразделения, что даже отказались от дополнительных продаж в общем-то хорошей SCM системы через своего партнера. Видимо, желание продать неприбыльный актив было столь сильным, что такие нюансы даже не брали в расчет. Сейчас же, когда Borland второй год подряд терпит убытки, а CodeGear приносит прибыль, эта стратегия могла бы измениться. Ведь достойного покупателя CodeGear так и не нашли, и расставаться с компанией, приносящей реальный доход, теперь, похоже, уже никто не собирается. Однако ж, заглядывая в обновленный роадмап, мы не видим никаких упоминаний про интеграцию со Starteam. Удивительное дело, но эти хитрые «договоренности» сыграли плохую шутку сразу со всеми заинтересованными сторонами. Во первых страдают продажи Starteam, которые могли бы быть основаны на бесплатной рекламе со стороны IDE, во вторых – страдает имидж IDE, которая опять не имеет готового и полновесного решения, в третьих – страдают разработчики, которым предоставлена мнимая свобода выбора, а по сути дела – тыкание пользователя лицом в веб для поиска, установки и тестирования подходящего решения самостоятельно.
А ведь интегрированный клиент Starteam появился впервые в ещё D2005. Позднее он был дописан и доработан в D2006 и начисто пропал из D2007. Его нет нигде, ни в официальном вебе, ни в хелпе и даже на партнерском DVD. Вот насколько мощно CodeGear соблюдает ранее достигнутые договоренности. Но это ладно, удивляет другое. На самом сайте Starteam мы можем найти интеграции и к Эклипсу, и SCC и даже к VS! Пользователи же «родных» средств разработки посланы взад к своему дистрибутиву, в котором эту интеграцию днем с огнем не сыщешь. Все, сушите весла, круг замкнулся. Вот такой вот хитрый бизнес…

Знающие люди утверждают, что можно использовать пакет starteam-extensions.jar из дистрибутива D2006, но сама по себе интеграция – не самоцель. Если уж быть до конца честным, лично я не использовал её в своих проектах, довольствуясь стандартным клиентом Starteam, поскольку встроенное в IDE решение было урезанным и не понимало самой вкусности Starteam, а именно багтрекинга и простой, но достаточно эффективной для небольших проектов системы управления требованиями. Но! Как можно представить себе современного разработчика ПО, не обеспеченного системой контроля версий? Это же как надо себя не любить, чтобы отказываться от такого простого и эффективного механизма управления своей работой, способного сэкономить много времени и сил! А ведь многие себя не любят, потому что:
1) Считают использование SCM неоправданно дорогим и сложным.
2) Не видят существенной необходимости в этом.
3) Используют альтернативные пути в виде подпорок из батников и разных других допотопных возможностей ОС.
4) Просто ленятся и т.п.

Вот типичный пример - History Tab – ещё одна красивая подпорка, которая реализует версионность файлов, достаточную, чтобы вскрикнуть: «Ой, что-то здесь было до того, как я выделил текст и нажал энтер!». Безусловно, вещь полезная для тех, кто ещё не научился настраивать бэкап. Но как с помощью неё параллельно делать разные релизы, выпускать для них одинаковые патчи, вести исследовательскую разработку и одновременное тестирование пререлиза, да и ещё много чего другого – не написано ни в одном хелпе. А именно это повседневно нужно коммерческому разработчику ПО.

Самым правильным, на мой взгляд, было бы предложить интегрированное или легко настраиваемое решение, полностью поддерживаемое IDE. Так, чтобы поставил Delphi и опа, вот тебе современный, нужный и настроенный сервис, дорогой ты наш разлюбимый разработчик. Для этого следует поставлять урезанный StarTeam на MSDE c преконфигурённой БД на диске вместе с Delphi. Лицензия должна быть, как у BlackFishSQL, т.е. например 1-2 разработчика – бесплатно, все что больше – платите деньги. И самое важное – подробная и внятная инструкция о том, зачем все это нужно, как это использовать и какие преимущества в работе это дает. Я думаю, эффект будет потрясающим. Потому что слабыми местом Delphi всегда было и остается отсутствие комплексной методологии разработки ПО. А если хочется претендовать на что-то большее десятого места, надо этим делом активно заниматься. Управление жизненным циклом ПО – достаточно сложный и многогранный процесс. Starteam – это не просто система контроля версий, это гораздо большее. Starteam охватывает очень объемную и важную часть жизненного цикла ПО. Грамотное использование таких решений сильно изменит результаты нашей с вами работы. Осталось только донести это в полной мере до всех разработчиков.

3 комментария:

Unknown комментирует...

А на русском языке по starteam существует какая не будь книга?

Mikhail Mokhov комментирует...

К сожалению, ниодной книги на русском языке не встречал.

Анонимный комментирует...
Этот комментарий был удален администратором блога.