вторник, 29 апреля 2008 г.

Звездная команда (Часть 1)

Ну что ж, как и обещал, выкладываю первую часть статьи про Borland Starteam. В ней кратенько рассказывается об основных возможностях продукта. Тон получился немного помпезный, но это потому, что в качестве шпаргалки для написания статьи были использованы презентационные материалы, а они, знаете ли, грешат глянцем =). Starteam (как и CaliberRM) изначально был разработан компанией Starbase, а в начале 2003 года куплен Borland и интегрирован в линейку их ALM решений. Сейчас на сайте Borland доступен для скачивания Starteam 2008 с триальной серверной лицензией на 30 дней. Клиентские лицензии в данном случае не требуются. Далее я буду приводить актуальные на сегодняшний день куски статьи вперемешку со своими комментариями.

Приложения масштаба предприятия, безусловно, нуждаются в управлении процессом их создания и эксплуатации. Очень важно, чтобы правильно осуществлялись проектирование приложения и управление проектом, управление изменениями, а также, чтобы производительность труда участников проекта была максимальной. Borland StarTeam - система конфигурирования и координации действий всех участников проекта - позволяет достичь этих целей. StarTeam представляет собой средство управления конфигурациями и изменениями на основе системы контроля версий. Продукт поддерживает несколько клиентских интерфейсов (в частности, Windows- и Web-интерфейс (раньше была отдельная версия Starteam для веба, теперь же это просто довесок для выноса интерфейса в веб. Только под IIS)), утилиту командной строки для пакетных задач), имеет мультиплатформенного Java клиента, может интегрироваться с оболочкой Windows Explorer (это так называемый StarDisk – средство, представляющее сервер Starteam в виде ещё одного диска в ОС. Средство, безусловно, полезное для менеджеров, далеких от разработки ПО, но имеющих документы в репозитарии Starteam), Microsoft Project и некоторыми другими сервисами, позволяет организовывать дискуссии между членами проекта, имеет встроенную систему планирования и управления проектом, организацией рабочего времени участников проекта, беэгтрекинга и управления требованиями. На базе StarTeam можно создавать и свои собственные решения для конфигурационного управления — для этой цели Borland предоставляет API для Java, COM и Microsoft .NET Framework.
Все данные о проекте (исходные тексты, модели, документы, рисунки, графики) хранятся в едином репозитарии. Все, что относится к одному и тому же проекту (документы, модели, код), хранится на одном и том же сервере, где можно осуществлять управление этими активами и организовывать документооборот. Репозитарий доступен по протоколу TCP/IP с поддержкой криптования для удаленных соединений и управляется с помощью сервера. Данные, относящиеся к проекту, хранятся в серверной СУБД (Microsoft SQL Server/Oracle) и в специальном файловом хранилище (хочу отметить, что версии файлов лежат на диске, а другие артефакты - в БД). Т.о. распределенным командам нужен лишь доступ в Интернет.
Borland StarTeam интегрируется с системой Borland CaliberRM – специализированной системой управления требованиями, обеспечивая совместное использование средств поиска и анализа информации (Search Server и Datamart соответственно), что позволяет искать и анализировать информацию во множестве распределённых хранилищ (Это для суровых разработчиков. Небольшой команде в небольшом зеленом проекте хватает за глаза и за уши встроенной в Starteam системы требований). За счет этого можно улучшить предсказуемость, контролируемость и качество процесса разработки программных продуктов. Вторым важным продуктом, с которым интегрируется StarTeam, является Borland Gauntlet – среда для непрерывной автоматической сборки и тестирования.
С целью уменьшения нагрузки на системных администраторов крупных организаций, использующих Windows Server 2000/2003, система StarTeam обеспечивает поддержку аутентификации пользователей средствами Microsoft Active Directory по протоколу LDAP (в том числе и через SSL). Благодаря этому сисадмины могут централизованно контролировать различные аспекты аутентификации пользователей на сразу на нескольких серверах StarTeam (В целом штука, безусловно, удобная, так как экономит время админу. Но вот чтобы настроить SSL, надо прикрутить центр сертификации).
Для распределения и балансировки нагрузки, повышения отказоустойчивости, а также увеличения быстродействия системы в целом в сетевой архитектуре Starteam предусмотрена возможность создания кеширующих серверов (Startem MPX server), поддерживающих мультикаст.
Чтобы получить более конкретное представление о Starteam, можно посмотреть ролики, выложенные на официальном сайте.
На этом введение заканчивается, а на следующей неделе я постараюсь подготовить и опубликовать статью про логическую структуру сервера.

четверг, 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 охватывает очень объемную и важную часть жизненного цикла ПО. Грамотное использование таких решений сильно изменит результаты нашей с вами работы. Осталось только донести это в полной мере до всех разработчиков.

вторник, 1 апреля 2008 г.

Поможем хелпу?

Во многих компьютерных играх бустер - это наиважнейшее условие победы. Не припомню геймера, добровольно отказавшегося от бустера. От бонусов отказывались, от рулезов тоже, но чтобы от бустера... Да ни в жись! Вот и на вооружение дельфистов поступил соответствующий бустер: Delphi-PRAXiS Help-Booster. Долго я его парил в папке Download, потом в папке Musor, и вот, наконец, руки дошли и до установки.




Поставил, повертел в руках, решил не сносить. Он хоть и сыроватый, но нормальный, интегрированный в среду поиск. Хорошая штука по скорости работы и удобству использования.
Из шероховатостей:

1) Очень скромный размер помощи. Есть только VCL/RTL для Delphi и сильно урезанный WIN SDK. Конечно, проект ещё слишком молод. Надеюсь, позднее все добавиться.
2) Ставится по умолчанию в странное место и там же хранит индексные файлы. Такое ощущение, что автор никогда не сталкивался с системой безопасности Windows. Или он думает, что все сидят с правами администраторов? =).
3) Ну и разные неприятности типа:



Сам-то я пользуюсь TypeAndRun (бывшый winconsole), так что мне особо этот бустер не нужен. Но все-таки давно хотелось, чтобы в Delphi IDE было что-то подобное. Как в других взрослых средах.