BYTE-force columns
Company news, team and friends.

Не проходите мимо:

Интересная работа для .NET-программиста.

Немного о Team Foundation

«XOR's Post»

Headline

dwarwood спрашивает:

И есть вопрос, как к единственному человеку, светившему тот факт, что есть живой опыт использования Team Foundation.  Вопрос такой - почему __не стоит использовать__ subj в командах, находящихся в процессе становления/реорганизации.   (если мнение - наоборот, стоит, то тоже почему)

Я должен сразу признаться, что сварщик я не совсем настоящий. Лично я использовал TFS немного и впечатления имею очень субъективные. Илья и Дима общались с ним гораздо больше, так что может откомментируют. К тому же у нас была очень странная среда - VPN в Штаты и другие хитрости. Это, конечно, наложило свой отпечаток.


Итак, впечатления в произвольном порядке.

Понравилось, что там есть не только сорс-контрол, но и управление требованиями и багами. Причем все это прямо внутри студии. Приятно. Но все какое-то такое технологичное, от начала до конца сделанное программистами. То есть все работает, но чувствуется, что это некий generic interface. Наверное, сильно настраивается, но особого удобства нет.

Workflow почти не поддерживается. Скажем, о правилах работы со статусами багов надо просто договориться устно. Если кто-то что-от не понял, то он запросто может сделать все неправильно. Система ему мешать не будет.

Впрочем, это все придирки. Эта часть работает вполне адекватно. У нас, вон, сейчас и вовсе какое-то доморощенное решение на базе SharePoint используется. Пожалуй, пока менее удобно, чем TFS.

Сам же сорс-контрол не понравился. Если сравнивать его с VSS и SVN, то я бы его по удобству поставил на последнее место. Ясно, что он продвинутей VSS, там некоторые фичи правильно сделаны. Но зато некоторые нужные вовсе не сделаны. Вот некоторые особенности:

  1. Файлы чекинятся пачкой, а не по одному. Это хорошо.
  2. Свой чекин ты можешь связать с багом или требованием. Можно настроить и так, чтобы ты обязан был связать. Не уверен, что это хорошо и нужно для маленькой команды. Мы ведь всегда спешим, не всегда есть время под каждое исправление свою задачу сделать.
  3. Есть еще возможность положить код на сервер, но не чекинить. Т.е. он уже и не потеряется, но еще и не помечен как готовый. Вроде, фича нужная, но я не видел, чтобы ее кто-нибудь использовал.
  4. Не нашел возможности в сорс-контроле подликновать папку к другим папкам. Это есть и в VSS (share), и в SVN (externals), и мы это активно юзаем. Не знаю как без этого вообще нормально функционировать.
  5. Ну и наконец, файлы нужно чекаутить! :) До SVN это казалось очевидным требованием, но сейчас-то я понимаю, что это совершенно лишнее.

И вообще, весь этот сорс-контрол какой-то очень капризный. На пустом месте не хочет файлы коммитить вдруг. А в другой раз не хочет доставать, ибо ему не нравится, что локальная папка для файлов расположена не на физическом диске, а в сети/виртуальной машине. Потом что-нибудь "залипнет" в workspace и приходится вообще все зачищать и доставать заново.

Кстати, понравилась система автоматического билдания. Вполне наглядно. Правда, я не пробовал настраивать билд самостоятельно. Может оказаться довольно сложной задачей.

 

Постараюсь сделать выводы.

Использовать TFS для контроля исходников не хочется. Subversion гораздо приятнее во всех отношениях. Но в TFS есть баги и требования. И автоматические билды. Ну, скажем, про билды я знаю слабо, возможно их настроить не проще чем CruiseControl.NET. А вот баги - это серьезный аргумент.

К сожалению, я не знаю ни одного приличного опенсорсного баг трэкера, работающего на платформе .NET. Да и вообще, знаю только один прилично выгядящий трэкер - это Trac. К сожалению, я его не понял. Вот так посмотришь - вроде неплохо выглядит, можно понять. Начнешь пытаться его к нашим реалиям применить - никак не лезет. Ну и не родной он технологически, ибо мы не пишем на питоне. Поэтому сейчас используем простейшее решение на базе SharePoint (хотя он есть страх и ужас). Кстати, вот пример страшного баг трэкера. Все что я смотрел примерно таковы.

Вообще, я считаю, что баг трэкер должен быть либо интергирован в среду разработки (как TFS, ага), либо работать в браузере. Если он сделан одельным приложением, то запущенным его держать не хочется, ибо там куча фич, которые жрут память, а запуск происходит далеко не мгновенно, и... Короче, все кончается тем, что им никто не пользуется.

С веб-приложением как-то проще. Браузер обычно запущен, на страничку недолго перейти. Фичи все сервер реализует, он памятью жертвует. Тоже не жалко.

Кстати, про управление требованиями я забыл. Точнее, не знаю что сказать. Дело в том, что тут все очень сильно зависит от процесса, которым пользуется команда. Сейчас модно использовать всякие agile methodologies: XP, SCRUM и т.д. Обычно в них требования собираются в виде некоего неформального текста. Потом из этого текста выводятся требуемые фичи программы, а из фич уже задачи программистам. Задачи - это, по сути, те же баги, так что большинство трэкеров можно и для задач использовать. Стоит вопрос: куда записывать требования с фичами? На мой взгляд, для этого отлично подходит любая wiki. Использовать такую неформальную штуку как wiki лучше еще и тем, что все инструменты, заточенные под определенный процесс, поневоле этот процесс вам навязывают. А у вас, может, дела устроены не совсем так, как создатели процесса себе думали.

Получается, что если закрыть глаза на неидеальность сорс-контрола в Team System, использовать ее можно. Получаешь все необходимые вещи в одном флаконе. В то же время, на базе сабвершена, приличного баг-трекера и вики можно сделать более приятное решение. Но придется постараться.


Posted Jul 03 2008, 07:38 AM by Andrew Mayorov

Comments

grinka wrote re: Немного о Team Foundation
on 07-04-2008 1:02

По поводу Bug Tracking + Wiki можете таки попробовать решения от Atlassian: JIRA + Confluence

Огромное количество плагинов и под то и под другое, плюс они отлично друг в дружку интегрируются - так задачи в JIRA можно описывать в WIKI формате, а на страницы в Confluence легко можно показывать списки задач из JIRA по любым притериям.

Плюс куча разных вариантов лицензирования... Работает с MS SQL Server, но написано на Java...

Andrew Mayorov wrote re: Немного о Team Foundation
on 07-04-2008 2:03

Ну он довольно так ничего стоит. Впрочем, не знаю почем TFS.

mrrat wrote re: Немного о Team Foundation
on 07-04-2008 17:56

А мы так Mercury Test Director вполне успешно юзаем - и для багов, и для требований. Он web-based кстати.

Andrew Mayorov wrote re: Немного о Team Foundation
on 07-05-2008 12:34

Пашка! Рад тебя здесь читать. :)

Посмотрел про Тест Директора. Че-то в сети представлен слабо. Понятно, что раз есть, то и юзаете. Но ежели выбирать с чистого листа между Джирой и им, то я бы выбрал Jira. Ну просто сайт лучше выглядит. :)

dwarwood wrote re: Немного о Team Foundation
on 07-07-2008 3:28

спасибо за ответ.

моя очередь его долго читать и думать :-)

// с open ID в 1 клик не получилось, хотя он зашел в ЖЖ и спросил - доверять ли этому байт-форсу. нажал - 'в этот раз', но дальше ваш байт-форс сказал,  что че-то ему не нра.

mrrat wrote re: Немного о Team Foundation
on 07-09-2008 7:55

А кажется HP купил их собака. И теперь продает задорого. Я искал на их сайте цены, но так и не нашел - типа, звоните - договоримся....

А вообще конечно тема интересная сложить все в одном месте - проект, требования, дефекты/багфиксы, код, метаданные... Плюс collaboration через web доступ, плюс version control. Звучит как Wiki. Бранчи только делать не знаю как, да и код в Wiki хранить неудобно.

А идея то и вправду клевая.

Andrew Mayorov wrote re: Немного о Team Foundation
on 07-09-2008 9:42

Пашка, на Trac посмотри. Там как раз все это на базе вики сделано. Странно, но красиво... Но странно. И под один проект. :(

Sacode wrote re: Немного о Team Foundation
on 07-17-2008 1:43

1. Воркфлоу есть и очень даже работает. Есть переходы между статусами и список возможных причин. Более того - все это может кастимизироваться, правдо пока или руками в XML, или с помощью сторонних тулзов.

2. Расщарить папку нельзя, как я понял по идеологическим соображениям. Зато предлагают делать ветку (branch). Т.е. кладешь библиотеку в сорс-контрол и делаешь с нее бранчи во все нужные места. Чтобы обновить библиотеку - сначала обновляешь ее в основной ветке, а потом делаешь Merge в другие ветки. Это, типа, правильно, т.к. позволяет контролировать версии этой библиотеки в каждом конкретном проекте.

3. Чекаут - это не просто так. :) Сразу видно кто с какими файлами работает. Это одно преимущество, но наверняка есть и другие. ;)

Andrew Mayorov wrote re: Немного о Team Foundation
on 07-17-2008 1:53

Спасибо за комментарии.

1. Значит наш был так настроен. Это был проект на SCRUM-овом шаблоне. Там, наверное, все упрощено. (А сам скрам - гадость. :))

2. Ага, технология понятна. Согласен, результата добиться можно, но че-то это кажется придротом. :) Вариант СВНа мне нравится гораздо больше. И там тоже можно в конкретном проекте привязаться к конкретной версии.

Chkaloff wrote re: Немного о Team Foundation
on 08-05-2008 1:21

В TFS есть богатые возможности по настройки workflow.

Можно изменить доступность полей для разлиных полей, привязать переходы между состояними к ролям, привязать поля к состаяниям, переделать форму, добавить новые поля, убрать ненужные и т.д.

Все это настраивается, но только не через граф интерфейс VS а при помощи редактирования XML конфигурации. Можно вообще создать какие-то новые сущности, со своим workflow, формой, полями и уникальным поведением.

Shelve - откладывание кода на сервере можно использовать например для кодревью.

В отличии от VSS где используется модель pinning-sharing, в TFS используется модель branching-merging, поэтому sharing отсутствует. Вот тут про это в краце написано.

www.codeplex.com/.../View.aspx

Check-out при начале редактирования файла VS должна выполнять автоматически, поэтому это особых сложностей не должно по идеи доставлять. Да и кроме того, при чекауте полезно делать Get Laste Version, чтобы уменьшить вероятность возникновения конфликтных ситуаций, когда вы начали редактировать заведомо устарелый файл.

Maxim Kramarenko wrote re: Немного о Team Foundation
on 08-16-2008 13:21

Посмотрите TrackStudio:

1) Есть иерархия задач, настраиваемые workflow (может быть несколько для проекта, разные наборы workflow для разных проектов), интеграция с SCM и много чего еще.

2) На сайте есть примеры конфигураций для классического issue tracking, requirements management, asset management, ITIL ServiceDesk и т.п.

3) Русский саппорт :-)

Copyright ©2004-2008 BYTE-force
Powered by Community Server (Non-Commercial Edition), by Telligent Systems