17-18 ноября в Москве я был на конференции Платформа 2011, где посетил несколько докладов и пообщался с морем людей. Ниже описал эту конференцию, как её увидел я.
Доклады
Роль и значимость заказной разработки программного обеспечения Дэвид Чеппел
Это был первый и лучший доклад, который я послушал на Платформе 2011. Дэвид Чеппел рассказывал очень эмоционально и интересно. Доклад можно разбить на 3 этапа.
Первый этап был посвящен проблеме компаний, которые находятся перед выбором: разрабатывать ПО самим или его покупа. Идея такая: если вы являетесь создателями чего-то нового, то вы определяете то, как будет развиваться отрасль в ближайшем будущем. Таким образом, вы становитесь лидером отрасли в этом направлении. Те, кто будут делать ПО похожее на ваше, всегда будут только догонять, внося лишь незначительные идеи в вашу оригинальную.
Так получается выбор между «Build or Buy?» превращается в выбор между «Lead or Follow?». Конечно, если вы делаете софт для страховых компаний, то вам лучше купить продукты, которые, например, позволяют его разработать, чтобы сосредоточиться на инновациях именно в сфере страхования, а не распыляться на посторонние задачи.
Второй этап и вы решили все-таки разрабатывать своё приложение, которое изменить мир. Для это вам стоит обратить внимание на понятие Application Life Cycle Management (пара видео). Управление жизненным циклом состоит из 3-х частей, которые происходят одновременно: governance, development, operation (run and manage).
Наиболее подробно мы остановились на разработке. Дальше для меня было несколько удивительно, когда Дэвид начал рассказывать про итеративный подход. Я сказал своему соседу: «Если так дальше пойдет, то он Agile начнет пропагандировать». И точно, следующий слайд был про Scrum. Дэвид сказал, что наиболее удачной комбинацией в разработке оказалась комбинация Scrum и практик XP. (После выступления я задал ему вопрос, что побудило Microsoft перейти на Scrum. Дэвид пояснил, что Scrum используется лишь небольшой частью компании. А перешли они на него, потому что этот подход даёт хорошие результаты).
Здесь мы переходим к третьему этапу доклада. Как и все доклады на Платформе, этот был построен по принципу: сначала озадачить, потом дать решение в виде продукта Microsoft. Решение, которое предложил Чеппел - это Team Foundation Server (TFS). TFS предназначен для работы всей команды и поддерживает шаблон для Agile-проектов.
Доклад оставил самые хорошие впечатления.
Дэвид ЧеппелФактически этот доклад был продолжением рассказа Дэвида Чеппела про ALM и TFS, но уже более углубленно.
Из доклада могу отметить внимание докладчика к тестировщикам. Чего только стоит его восклицание: «Больше уважения тестировщикам!». Он сказал это после того, как во время рассказа про Microsoft Test Manager (MTM) попросил поднять руки тестировщиков. В зале сначала никто не поднял руку. Потом он сказал: «Ну это не стыдно быть тестировщиком, поднимайте руку с гордостью». На удивление были подняты 2 руки. Неужто тестировщики стесняются своей профессии?
MTM позволяет автоматизировать тестирование. Связывать тестовые сценарии с задачами в TFS. Мне понравилось, что можно написать тест, который отлавливает ошибку, «прикрепить» его к задаче и отправить на доработку программисту. Такой функции нам сейчас действительно не хватает. Кроме того, тестировщик может:
- записать видео, где он воспроизводит баг
- сохранить IntelliTrace со всеми данными, которые были в стеке на момент работы программы
- сохранить EventLog
В общем, может обеспечить разработчика всем, что может помочь исправить ошибку. Очень круто!
Моё мнение о TFS
TFS не является уникальным или незаменимым продуктом. Всю его функциональность можно сделать подручными средствами. Одним из его самых больших недостатков я считаю отсутствие поддержки различных систем контроля версий (сейчас только VSS - система контроля версий из прошлого века). В кулуарах я общался с теми, кто использует TFS и среди них не было тех, кто был бы им полностью доволен. Например, называют проблему с очень медленной работой MTM. Я вижу полезность TFS в проектах, на которых работает большое кол-во разработчиков или в распределенных командах. Возможно в таких проектах будет очень полезна «единая точка» работы всей команды в виде TFS.
Что нужно для успешного старта проекта?
Максим Тараненко, Виктор Горшков, Виталий Савченко, Александр Чеснавский
Сессия предполагала наличие разработчиков, которые внедряют ПО, и заказчиков, которые заказывают разработку и внедрение. Мы начали со сбора проблем, с которыми сталкиваются стороны:
- Разработчики (Р) жаловались на то, что заказчик скрывает информацию. Заказчики (З) в свою очередь говорили, что менеджер Р должен выудить все, что нужно по максимуму, т.к. З не в курсе, как ПО создается и какая точно информация нужна
- З и Р жаловались на сложность составления ТЗ
- Р рассказывали, что заказчик иногда может урезать бюджет в одностороннем порядке, попросив столько же работы (известная тема)
- работники З могут просто саботировать внедрение
- З заявили, что Р плохо планируют бюджет и часто за него выходят, тоже самое со сроками
- ...
Обсуждение получилось интересным, даже в какой-то момент раскалилось на столько, что могло перейти в конфронтацию.
Из всего списка проблем ведущие сессии выбрали одну: должен ли заказчик платить за «пилотные» проекты. Это и была та проблема, решение для которой они намеревались нам «продать».
Microsoft запустило услугу Старт Сервис. Компании-партнеры Microsoft могут прийти и сделать «пилотное» внедрение вашего проекта заказчику. Мне показалось, что это довольно странная услуга. В подтверждение востребованности идеи вышел один из партнеров Microsoft, который как раз занимается этим сервисом и рассказал, что у них уже был опыт.
Зона «Спроси эксперта»
SharePoint 2010
Я не разрабатывал приложения на SharePoint, а только видел уже готовые и общался с разработчиками, которых их делали. У меня был один неразрешенный вопрос: Что такое SharePoint? Разговор с экспертом протекал в таком русле:
Я: Объясните мне, пожалуйста, что есть SharePoint
Эксперт (Э): Это система для создания корпоративных порталов
Я: Что такое корпоративный портал?
Э: Единая точка входа сотрудников компании для доступа к документам и информации
Я: Т.е. это система обмена документами?
Э: Да, но не только. Вы можете программировать различные сценарии, устраивать опросы, голосования, сделать свою социальную сеть и т.д.
Я: О возможностях я понял, но что же такое SharePoint?
Э: Это продукт, который умеет взаимодействовать с SQL Server, Office...
Я: Но SQL Server - это же не SharePoint?
Э: Нет
Я: А что такое SharePoint?
Э: Хм?
Я: Ну вот, например, ASP.NET MVC - это DLL, а SQL Server - это приложение
Э: А! Ну тогда SharePoint - это набор из кучи DLL, который в основном написаны на C/C++
Я: Спасибо!
Вот так я узнал, что такое SharePoint. Спасибо эксперту от Microsoft.
Internet Explorer 9
Когда я подошел к стенду, то мне предложили сравнить производительность 3-х браузеров (IE9, Firefox, Chrome) на тестовой программе, которая сжимает и разжимает кружочки. Я предпочел проверить их на Gmail и Twitter, т.к. IE9 на этих двух сайтах ужасно тормозил у меня дома. На удивление на стенде IE9 отработал довольно хорошо.
Тогда я спросил, что новенького есть в IE9, что побудило бы меня его использовать. Итак:
- каждая вкладка запускается в отельном процессе (это было изначально в Chrome)
- можно перетащить вкладку и она откроется в отдельном окне (это было уже давно в Firefox и Chrome)
- полная поддержка HTML5 и CSS3. На вопрос: «А тени из CSS3 можно использовать?», мне сказали: «Пока эта функция не поддерживается»
- самый быстрый движок для JavaScript. Не проверял, но сомневаюсь, что побьет Chrome. Время покажет
- можно потянуть за favicon и перетащить на нижнюю панель, как отдельно приложение (как в Chrome сделать приложение). Если на вашем сайте добавить специальные мета-тэги с основными страницами сайта, то в созданном приложении по правой кнопке вы сможете переходить сразу на эти страницы
Самое интересное, что все эти нововведения организаторы стенда IE9 считали новаторством, причем искренне.
Мне показали, что IE9 появилось «что-то типа Firebug», открывается по F12 и вроде как было добавлно ещё в прошлой версии IE. Реализовано довольно непривычно. Например, при дебаге JavaScript основное окно браузера блокируется, дебаггер открывается в отдельном окне. Через пару минут работы всё зависло и IE9 упал. На что мне сказали: «Это только beta-версия».
В целом я получил много интересной информации и эксперты по части IE9 поблагодарили за обратную связь.
SQL Server 2008 r2 Дмитрий Костылев
Я задал Дмитрию несколько вопросов, на которые мне было интересно получить ответ эксперта в области.
Я: Чем отличается SQL Server 2008 от SQL Server 2008 r2?
Дмитрий: НичемЯ: Правда, что SQL Server не тянет большие базы?
Дмитрий: Что значит большие?
Я: Допустим 200ГБ.
Дмитрий: У меня база на несколько терра-байт и работает без проблем. Первые версии MSSQL, вплоть до 2000 не могли тягаться с Oracle. 2008 точно может.
Спасибо Дмитрий, что развеяли миф про «большие» БД в MSSQL.
ASP.NET MVC
Я долго пытался найти человека, который решится назвать себя экспертом в ASP.NET MVC. Когда я приходил к экспертам, то все отнекивались и говорили, что они не смогут ответить на вопросы по этой теме. Наконец, я поймал Гайдара Магданурова, который согласился попробовать ответить на несколько вопросов:
Я: Можно ли будет в ближайшем будущем посылать команде ASP.NET MVC пачи или дополнения, чтобы не надо было ждать год следующей версии?
Гайдар: Нет, у них такая политика с лицензиями, что они не могут брать чужой код. (Мой вопрос про включение MvcExtensions в ASP.NET MVC отпал сам собой)
Тут присоединился бойкий эксперт, который отказывался сам отвечать на вопросы и спросил: А зачем тебе самому что-то им посылать? Они и так отлично справляются.
Я: Ну тогда расскажите, как вы биндите в UI коллекцию CheckboxList или Dropdown?
Тут эксперт сразу ушел в тень, а Гайдар сказал: Я писал свой байндер.
Я: Вот ты писал свой байндер, я писал свой байндер, он писал свой байндер и так каждый из нас изобрел свой велосипед с квадратными колесами. Это плохо, потому что для такой простой проблемы должно быть правильное решение с удобным API.
Гайдар: Да, но есть возможность его реализовать в MvcContrib
Я: И тогда моё дополнение включат в основную версию ASP.NET MVC?
Гайдар: Нет, но тогда есть шанс, что его заметят, полностью перепишут и включат в релиз (перепишут, потому что чужой код им брать нельзя)
Ну это лучше, чем ничего. Я прояснил для себя, что проект ASP.NET MVC будет двигаться в год по чайной ложке. А жаль, все так хорошо начиналось. Видимо придется дальше изобретать или брать из других мест то, что должно быть внутри самого MVC-фреймворка.
Стенды
На стендах практически ничего интересного для себя не нашел, кроме стенда компании Умный софт. Разговор зашел не про их продукцию, а про то, кто есть архитектор в их компании. Я хотел понять есть ли отличие от понятия архитектор в нашей компании.
Общались мы с архитектором Ильей Образцовым и техническим директором Макром Дрейбанд.
В результате выяснил, что архитектор в компании Умный софт занимается декомпозицией проекта, разбивает его на модули, выбирает технологии. Потом уже отдельные задачи раздаются программистам (исполнителям). У меня были простые вопросы.
Я: Если вы, как архитектор делаете разбиение системы, то вы руководствуетесь своим опытом, который вам подсказывает, что нужно сделать именно так. У разработчиков опыта меньше и они не всегда могу понимать, почему вы приняли именно такие решения. Не будет ли выданное задание для них четким планом от которого нельзя отступить? Каков механизм обратной связи, если вдруг ваше решение ошибочное (так бывает?) и его нужно заменить на более подходящее?
Илья: Разработчикам нельзя давать принимать решения по архитектуре, иначе они могут такого нагородить. Вся ответственность за архитектуру лежит целиком на архитекторе.
Я: А что если вы сделаете усилие и подтянете разработчиков хотя бы на 1/10 часть от вашего опыта/знаний и делегируете им 1/10 часть вашей ответственности. Тогда 10 разработчиков в сумме с вами дадут уже больше 100% знания и ответственности по совершенствованию архитектуры системы и смогут принимать осмысленные решение по ходу работы.
Илья: Невозможно передать разработчикам ответственность за принятие архитектурных решений.
Тут я рассказал, что значит архитектура и проектирование в Agile-команде. Мои собеседники заметили, что это довольно интересный подход, когда вся команда постоянно занимается проектированием, отслеживание ошибок и ищет возможности развития дизайна системы.
Мини-мастер класс и развиртуализация
На конференции встретился с несколькими друзьями, которых знал только виртуально. Пообщались про практики экстремального программирования, проектирования и вообще про организацию работы. В живую, конечно, на много интересней!
На MacBook показал, как разрабатывать в стиле TDD. Впечатления от MacBook остались не очень положительные. Горячие клавиши ReSharper'a использовать раза в два сложнее из-за того, что половины кнопок просто нет. Например, вместо нажатия Alt+Insert надо давить Alt+Cmd+Enter. Не очевидно? Ну вот и я о том же.
Концерт
В конце первого деня на сцену вышел Ляпис Трубецкой. Я даже подумать не мог, что увижу на Платформе 2011 одну из моих самых любимых групп. Обстановка была довольно своеобразная. Как выразился Сергей Михалок: «Обстановка сегодня веселая, как на съезде прокуроров». В целом Сергей шутил весь концерт и зажигал.
Эксперт по SharePoint забыл упомянуть что он написан в основном индусами - поэтому у него практически никакая масштабируемость, проблемы с производительностью и манера умалчивать обо всех ошибках
ОтветитьУдалитьВ IE это не Firebug, а Developer Tools, который появился в 8 версии. Его можно прибить и к нижней части активного окна, будет как в фаербаге. В принципе хорошая штука, но на сложных страницах слишком по тормозному работает, ну и падает. Судя по всему в 9 особо не улучшили, а жаль.
ОтветитьУдалитьЗа что вы так эксперта по Sharepoint мучали? :D
Я видел трансляцию почти всей платформы и соглашусь с вами только в одном - самый лучший и единственный доклад, который стоило смотреть - это Дэвида Чеппела. Остальное было полной лажей.После платформы я разговаривал с коллегами и мы пришли к выводу, что Дэвид Чеппел рассказывал интересно потому, что он не работает в Microsoft =) Другие пытались впарить свои решения и продукты - это очень заметно и создавало только негатив.
ОтветитьУдалитьЯ понимаю, что данное мероприятие направлено не на тех.специалистов, а на директоров...на тех, кто руководит деньгами. В твиттере проскакивал комент четко описывающий все: "Напоминает магазин на диване. Опять нам пытаются впихнуть что-то" =))
На счет IE 9 скажу - очень сырой продукт. Юзал 4 и 5 версию бетки - остался только негатив. Проблема с флеш, бывают утечки памяти в Windows 7 x64...да и многопоточность вкладок только мешает. На практике сильно кушает ресурсов и подтормаживает систему.
@dmodeus
ОтветитьУдалить> За что вы так эксперта по Sharepoint мучали?
А я не мучал, мне правда хотелось понять, что это такое :)
Sharepoint - это сайт написанный на очень толстом asp.net. Куски скриптов и стилей он любит хранить как внутри страниц так и снаружи. В SQL Server'е он просит создать не меньше чем 10 отдельных баз для собственных нужд. Пытается изобразить внутри себя магию workflow, на деле же не способен на простейший документооборот. Все необходимое предлагает дописывать самостоятельно в виде веб-частей, сам при этом с трудом реализует wiki функционал. Пользователи про него мило вспоминают лишь в фразах типа: "Почему это у нас портал работает медленнее, чем интернет" :) Это вкратце.
ОтветитьУдалитьVSS в TFS? Что-то ты путаешь!
ОтветитьУдалить@AutoRevit
ОтветитьУдалить> Sharepoint - это сайт написанный на очень толстом asp.net...
Ну вот примерно это все и говорят :)
@Sergey
ОтветитьУдалить> VSS в TFS? Что-то ты путаешь!
А какая там система контроля версий?
Ляпис спас мероприятие.
ОтветитьУдалитьПосмотрел персонал компании "Умный софт" - все из МС :)
Спасибо за отчет. Было очень интересно читать, особенно интервью с архитектором. Вотерфолл у них, конечно, стремный. Хотя, может, с крупными системами так и нужно?
ОтветитьУдалитьСъезжу через полторы недели на SWIT в Киев - напишу что-то похожее :)
Александр, всё просто. Экспертам про SP можно было просто задать вопрос не «Что такое SP», а «Что такое SP с точки зрения внутренней архитектуры». К экспертам подходят совершенно разные люди, и вполне логично, что они начинают отвечать, ориентируясь на самую низкую осведомлённость пользователя о технологиях. Платформа — это, в целом, маркетинговая конференция, на которой, в основном, присутствуют ЛПР, а им, в свою очередь, нечасто бывает интересно что такое SharePoint с точки зрения внутренней архитектуры.
ОтветитьУдалитьТакое впечатление что майкрософт топчется на месте
ОтветитьУдалитьНу, почему же топчется. WP7 один чего только стоит. Целый новый рынок разработки открывается на платформе .NET. Причем, очень перспективный рынок.
ОтветитьУдалитьВ последние несколько лет MS как раз не топчется, постоянно какие-то новые плюшки выходят. ASP.NET MVC только слабенько развивается, есть такое...
+1. WSS воплощение кривого индусского кода. не расширяем абсолютно.
ОтветитьУдалить@Александр Кондуфоров
ОтветитьУдалитьСнимите розовые очки: WP7 не нужен
+1 к @hazzik. МС уже проиграла этот рынок
ОтветитьУдалить@hazzik, @xelibrion:
ОтветитьУдалитьКхм, ну да, ну да... Давайте начинать его хоронить. iPad'у тоже пророчили быструю и скоропостижную смерть.
Рынок мобильных устройств расширяется и будет расширяться еще долго. Причем чем дальше, тем меньше будет оставаться обычных телефонов и больше смартфонов, планшетов и пр. Боюсь, что это современные производители телефонов, у которых нет нормальной платформы для разработки, вроде тех, что есть у Apple, Google и теперь у MS, могут со временем остаться не у дел. Недаром же в спешке создается MeeGo. Рынок ускользает.
MS действительно немножко опоздала на этот праздник жизни, но у них интересное устройство и большая армия потенциальных разработчиков, которые будут писать приложения. Не всех людей интересует яблочко на обратной стороне аппарата, многим важно наполнение, удобство и цена.
Так что давайте поговорим на эту тему через полгодика или годик. Думаю, тогда вы уже не будете так категоричны...
PS. И вообще с такими дискуссиями лучше на хабр - там любят холиворить. Сорри за оффтоп.
> Илья: Невозможно передать разработчикам ответственность за принятие архитектурных решений.
ОтветитьУдалитьЭто обычно индикатор общего мышления компании - я знаю что надо, все отдыхают. Слава богу в консалтинге все более демократично.
Как когда-то сказал Джоэл Спольски , Sharepoint - это то , чего нет... он прав до сих пор
ОтветитьУдалить