Отправляет email-рассылки с помощью сервиса Sendsay

.NET: Записки программиста

  Все выпуски  

.NET: Записки программиста или хлопок одной ладони . Выпуск четвертый: на переднем крае.


Информационный Канал Subscribe.Ru


.NET: Записки программиста или хлопок одной ладони

"IT-шникам всю жизнь приходится бежать впереди паровоза ..."
(мудрость, и не только народная)

Выпуск четветрый: На переднем крае ...


Введение, ничего общего с введением не имеющее

Доброй всем ночи! Конечно, я надеюсь что у Вас хотя бы день, а еще лучше - утро, когда дымится горячий кофе и можно с чистой совестью разобрать утреннюю почту. Не против, если я не удержусь и чуть переделаю один запомнившийся анекдот, вот просто жизнью навеяло? А потом - сразу о работе? Согласны?

Итак, программист попадает на тот свет, его спрашивают:
- Ну что, куда хочешь, в рай или ад?
- А посмотреть можно?
- Да, конечно.
Приводят в ад, там большая закуренная комната, уставленная компьютерами, за ними сидят люди с красными глазами, что-то лихорадочно набирают на клавиатурах, столы уставлены пустыми стаканчиками из под кофе, завалены бумагами и прочим хламом.
- Вот,- объясняют,- у них deadline, сегодня нужно успеть выпустить новую версию.
- Ну, это нам знакомо,- говорит программист,- а рай покажите.
Приводят в рай. Там большая закуренная комната, тоже уставлена компьютерами, за ними сидят люди с такими же красными глазами, что-то лихорадочно набирают на клавиатурах, столы уставлены пустыми стаканчиками из под кофе, завалены бумагами и прочим хламом.
- Вот, это рай,- объясняют,- им сегодня тоже нужно успеть сделать новую версию.
- Хм, а разница-то в чем?!
- А разница в том, что эти успеют!

Ну вот, а теперь - о работе ...


Введение, уже почти настоящее ...

Знаете, иногда в журналах делают врезки на несколько страниц, размещая там материалы из других журналов? Ну, например, чтобы напомнить любителям аудиотехники, читающим журнал "Stereo\Video", что существуют чудесные автомобильные магнитолы (далее идет врезка из журнала "Car Audio"), в комплекте с которыми заодно идет целый автомобиль? Вот и мы пролистаем сегодня врезку с названием "На переднем крае: MS Visual Studio 2005".

VSTS, WSS, TFS, опять VSTS (не путать с первым VSTS :), MSF, SQL RS ... Кто-то из Вас озадаченно задумается, а кто-то улыбнется со знанием дела. Еще три месяца назад я смело относил себя ко вторым. Конечно, что же тут сложного, всем известно, что это сервисы и технологии, которые прийдут с новой Visual Studio. Куча новых возможностей, все еще проще и еще лучше и смутная надежда на то, что Visual Studio наконец-то перестанет при каждой удобной возможности переформатировать Ваш html код в каком-то извращенном стиле сюрреалистского постмодернизма (извините, наболело!). При помощи VSTS и VSTS пишут программы, на WSS делают порталы, TFS ... ну, это что-то типа SourceSafe + Star Team, MSF вобще старо как мир, ну а SQL RS явно что-то для SQL Server ...

Ммм, ты прав, с легкой улыбкой сказал бы я сейчас самому себе, тому который второй ... А не знаешь случайно, для чего переименовывают Excel.exe в xllex.dll? А почему вопрос как удалить Work item вызывает такую улыбку? И почему поля StartDate и EndDate всегда пустые? И из-за чего ...

Тем, у кого закрадываются смутные подозрения, что не все так просто и все намного интереснее, посвящается сегодняшний выпуск ...


Введение, уже окончательное

Когда вышла первая версия Visual Studio .NET, ее по праву называли революцией в мире программирования. Visual Studio 2005 смело можно назвать революцией в мире разработки программного обеспечения. Вас насторожила схожесть названий? Конечно, в новой VS 2005 появилось много новых средств, облегчающих жизнь программистам. Это множество новых элементов управления, это новая версия C#, это шаблоны страниц в web-приложениях, которых так не хватало, это новые сервисы, поддерживающие ролевую систему и права, персонализацию, темы для элементов управления, да много чего ... Но все же главным в Visual Studio 2005 для меня было не это ...

- Все, новый проект мы начнем делать по новому, хватит нам вечного бардака ... (это шеф)
- И спецификации нужно составлять, вот где написано что это такое зеленое вверху? (реплика отдела тестирования)
- Вот-вот, и не забывать вести архив переписки с клиентом, чтобы потом не доказывать, что в зеленый цвет мы все перекрасили по их же желанию! (отдел продаж)
- Вы лучше скажите, кто Common.cs зачекаутил? Работать же нужно, отпустите! (это уже программисты)

- Так, все, работаем! Ты,- Менеджеру проекта, - завтра с тебя план работ в MS Project, все требования будем вести в Star Team, он кстати как-то должен интегрироваться с тем же MS Project, проверьте кто-нибудь! Ты,- Аккаунт менеджеру, - с сегодняшнего дня фиксировать всю историю переписки. Замечания клиента выделяем красным, наши ответы - синим, завершенные работы - бледно серым. Вы,- Программистам,- код нужно комментировать, все соблюдают соглашения о кодировании, каждое утро проводим stand-up митинги и планируем задачи по XP ...

Месяц спустя ... проект MS Project представляет собой хаотично перепутанные синие полосочки и стрелочки - Менеджер проекта освоил команду "Split" и попытался каждый день приводить диаграмму в соответствие с работой, пока все это не стало напоминать многослойную разводку платы на 10 тысяч транзисторов. Спецификации четко описывают состояние проекта ... но только на первый день, на них сразу же наложили гриф "Вот сделаем - тогда и найдем время все описать". Комментарии в коде есть, но если присмотреться, замечаешь, что они подозрительно однообразны. Присмотревшись еще немного, с огорчением понимаешь, что если после copy-paste код все таки приходится менять (а все из-за компилятора, ругается, чтоб его), то к комментариям это явно не относится - последние десять встреченных комментариев начинались однообразным "//  Methods of Panel control" и ты потихоньку начинаешь понимать, какой файл был первоосновой всего проекта ...

Конечно, все это очень утрировано, но согласитесь - знакомо же, ведь правда знакомо? И вовсе не потому, что люди не умеют работать или плохо организованы. Просто, когда времени много - его хватает на все, но стоит попасть в напряженный график - и остается только то, что приносить реальную пользу прямо сейчас.

Я сталкивался с многими решениями. Начиная от подробных диаграмм Rational Rose - статических, переходов, состояний и взаимодействий, с кучей описаний и классов, созданных (внимание, умное и красивое слово) реверсным инжинирингом (кстати, а хоть кто-нибудь поступал наоборот, то есть, если верить классике, напрямую - сформировать схемы и по ним генерировать классы?) и заканчивая папкой, в которой была сложена куча файлов: побольше - MS Word (угадали, те самые первые спецификации) и поменьше - Notepad, планы на ближайшее время, ToDo и Check листы. И все время меня не покидало смутное ощущение, что если все делать правильно, то это должно быть удобно, ведь все как-то это делают и даже пишут умные книги, объясняя, как все замечательно может получаться. А если не получается - значит просто нужно делать все более правильно ...

И только недавно я почуствовал, что делаю что-то уже не потому, что так делают все остальные. А делается это просто потому что так удобнее. Я почуствовал, что наконец-то у меня в руках целостная картина текущего состояния проекта. Я почуствовал, что это уже не эйфория, когда ты только сталкиваешься с чем-то новым и видишь его преимущества, но еще не догадываешься о всех недостатках. Я совсем не хочу сказать, что во всем уже разобрался и все стало прозрачным как горный ручей. Какое там! В первое время, когда мы только пытались вести проект в новой студии, логика и правила перестраивались каждую неделю. Неделя разработки - отчет и построение weekly build в пятницу занимает весь день, а с работы я ухожу в 9 вечера, с тем чтобы прийти в субботу и все доделать. Логика полностью меняется, следующая неделя - уже обходится без субботы и меньшей кровью. Идеи опять поменялись, но уже не так сильно. Третья неделя, отчетность и build занимают 4 часа и почти ничего не меняется. Вот это "почти ничего" остается до сих пор, просто потому, что всякий раз оказывается, что что-то можно сделать чуть-чуть удобнее ...

Итак, новое поколение среды разработки от Microsoft, охватывающее все этапы и задачи процесса разработки программного обеспечения: проектирование, разработка, командная работа, тестирование, project management ... Встречайте в студии, специально приглашенная звезда Microsoft Visual Studio Team System!


Термины и текущее состояние

Сначала разберемся с терминами. Итак:

Microsoft Visual Studio Team System - это общее название среды, поддерживающей все этапы жизненного цикла процесса разработки программного обеспечения. Team System включает в себя как серверные так и клиентские компоненты. Здесь Вы сможете найти краткий обзор этой среды, а по этому адресу расположена домашняя страница Team System.

Поскольку это только beta, некоторые вещи в ней не работают не потому что Вы что-то неправильно сделали, а просто потому что вот так вот не повезло. И даже документация часто не может Вам что-нибудь подсказать - ведь она тоже еще beta (читай, не до конца написана). Достаточно часто я находил статьи, которые описывали интересующие меня вещи, открывал их ... и вместо документации видел автоматически сгенерированный шаблон: "а здесь будет детальное описание", "а здесь будут ссылки" и прочие внушающие оптимизм и веру в светлое будущее комментарии. Так что главным источником информации сейчас являются форумы, посвященные этим продуктам (читай - их проблемам). Особоенно стоит отметить форумы, расположенные на сайте Microsoft - за каждым из них закреплен сотрудник, который ведет этот форум и отвечает на вопросы посетителей, так что это действительно конкретные вопросы и ответы, а не типичное болото, состоящее из вопроса типа "Help! А вот у меня такая проблема" и  тридцати ответов типа "Ага, чувак, у меня те же траблы, когда узнаешь ответ - поделишься, оки?". Список этих форумов Вы можете найти на уже упоминавшейся домашней странице Team System, вот например один из них, посвященный общим вопросам VSTS. Из русскоязычных могу посоветовать форум по VS 2005, расположенный на сайте GotDotNet.ru

Среди серверных компонент Team System можно назвать:

Team Foundation Server (TFS) обеспечивает работу команды над проектом: совместную работу с исходным кодом (аналог Source Safe), планирование задач, bug-трекинг, управление требованиями, управление builds, политики работы с кодом (это ссылка на посвященный ему форум).

SQL 2005 & SQL 2005 Report Services - используются для хранения данных, а так же для формирования отчетов.

Windows SharePoint Services - на базе этого сервиса создается портал, посвященный проекту. Он может содержать документы, имеющие отношение к проекту (требования, сценарии, спецификации), новости и анонсы, разнообразные отчеты (для этого WSS интегрируется с SQL 2005 Report Services).

Клиентская часть Team System называется Visual Studio Team Suite - это обобщающее название для нескольких редакций MS Visual Studio 2005, каждая из которых заточена под одну из ролей учасников команды. Существует три редакции:

Теперь о текущем состоянии и версиях:

До недавнего времени наиболее распространенной была Visual Studio 2005 Beta 2 - вполне стабильная система, с которой я и работал последние 3 месяца. Буквально на днях Microsoft объявила о выходе Visual Studio 2005 Release Candidate, а так же Team Foundation Server Beta 3. Эти версии уже доступны для подписчиков MSDN, а загрузить их можно здесь. Официальный выход Visual Studio 2005 назначен на 7 ноября и эта дата давно не менялась,что позволяет надеятся что 7-е ноября все таки наступит еще в этом году.

 


"Скажу откровенно: тот факт, что лорд Сварог застрянет в мире Димереи на столь долгое время,
для меня самого явился полной неожиданностью. Просто-напросто эпизод с его попаданием на Атар,
задуманный как совершенно проходной, внезапно взбрыкнул, закусил удила и понесся вперед
таким галопом, что мне ничего не оставалось, как бросить поводья и позволить Сварогу самостоятельно
выбраться из запуток, в которые он сам себя загнал. Сейчас же я могу обещать твердо только одно:
граф Гейр обязательно вернется на Талар. Надо подождать."
(А. Бушков, к читателю)


Вот слово в слово, те мысли, которые пришли мне в голову, когда я завершал этот выпуск. Честно говоря, я рассчитывал кратко обрисовать Team System и вернуться к темам, относящимся непосредственно к разработке программ. Но сейчас я понимаю, что мимолетного взгляда на это, полное лакомых кусочков блюдо, будет явно не достаточно, так что, как бы там ни было, а следующий выпуск рассылки будет называться:

Новые Миры: Team System OnLine!
Четыре уникальных расы: Менеджеры проектов, Архитекторы, Разработчики и Тестировщики. Каждая раса обладает уникальными умениями и возможностями. Прочитав этот обзор, Вы сможете выбрать, за какую расу Вы будете играть!

Приятной работы и до следующей встречи!


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.prgnotes
Отписаться
Вспомнить пароль

В избранное