В пятницу Microsoft проводил P&P Summit, посвященный разработке под Windows8, а накануне прошло заседание клуба IT-директоров по разработке, на котором также участвовали докладчики P&P от Microsoft - Эухиньйо Паче, Кристофер Бенаж, Блейн Вастелл. Впечатления от обоих событий я расскажу в этом посте.

Тема для заседания клуба директоров была обозначена как "эффективная и качественная разработка: использование формальных и гибких методов". Но на самом заседании речь шла о гибких методах, потому что, как выяснилось из опроса, формальные методологии не то, чтобы не пользуются популярностью, по ним ведут лишь отдельные проекты в паре организаций, объясняя причины для этого. И это интересно, особенно потому что в клубе принимает участие много inhouse-разработчиков, которая не стремиться к погоне за модой. Таким образом, agile, как процесс разработки - победил окончательно. И на встрече говорили больше о комбинации тех или иных практик agile для достижения результата, о преодолении конкретных трудностей. В целом формат этих встреч - ответы на вопросы, предложенные самими участниками. Ведущим был Асхат Уразбаев, который отвечал на вопросы, но его активно дополняли из зала.

А, кроме того, и это, на мой взгляд, самое ценное - в беседе участвовали докладчики из Microsoft, которые делились устройством разработки и практиками у них внутри. У них - agile и он разнообразен, и ответы были достаточно конкретными, с подробностями как вариаций практик, так и основаниями для этого. А посмотреть внутрь ведущей компании - это очень интересно и полезно. И, надо сказать, MS расценивает agile как средство обеспечения быстрой и качественной разработки, и ставит перед собой амбициозные задачи, исходя из этого. На будущий год эта задача - перейти от 2-летних релизов Visual Studio к квартальным, и она поставлена достаточно конкретно, в виде roadmap проектов - их на следующий день показывал Эухиньйо Паче на пленарном заседании.

И, собственно, тут мы вплотную переходим к теме поста, вынесенной в заголовок - как меняется рельеф IT-отрасли. А меняется он следующим образом. MS практически одновременно запускает два существенных изменения.

Во-первых, это VS ultimate с многочисленными архитектурными средствами проективрования и, что важно, средствами контроля за соблюдением этой архитектуры. А также средствами трассировки архитектурных артефактов в work items, что позволяет прослеживать их реализацию, а потом - позволяет найти соответствующий им код. Об этом рассказывали на прошлом заседании клуба директоров и были доклады на P&P. Конечно, VS ultimate стоит бешеных денег (300К рублей за 1 лицензию). Но, она не нужна всем - только архитекторам, а, по моим ощущениям, средства, заложенные в нее позволяют одному архитектору успешно контролировать разработку достаточно больших проектов, группой 30-40 человек, и если рассматривать стоимость в этом контексте, то она уже не выглядит запредельной. Кроме того, при успешном применении может существенно повысится эффективность разработки и снизится требования к квалификации части исполнителей.

Правда, следует подчеркнуть важную оговорку - VS ultimate лишь может это сделать, а вовсе не обязательно сделает - потому что дальше вопрос применения, организации процесса и разделения ответственности, которое заведомо представляет собой непростую задачу. Это - лишь средство, а не серебряная пуля. Тем не менее, MS играет всерьез и в июне получил первое место в магическом квадрате Гартнера для ALM-приложений, оттеснив с него IBM с линейкой Rational.

И, надо отметить, что MS в своей разработке эти средства применяет. А значит - они будут совершенствоваться. Надо сказать, что летом я попробовал посмотреть через призму этих средств на код наших существующих проектов. И обнаружил, в общем-то ожидаемо, что многие сложные конструкции языка не слишком хорошо пригодны для анализа, в частности лямбда-выражения, особенно с замыканием, и сложные генерики. Технически это понятно - они реализуются через анонимные классы, которые оказываются подвешенными в воздухе, не принадлежа конкретным архитектурным артефактам. Мне было интересно, как живет с этим Microsoft, и Эухиньйо Паче ответил, что применение подобных конструкций при разработке - вопрос guideline по кодированию, который ограничивает их использование, если оно делает код не пригодным для статического анализа в необходимом объеме. Так что надо понимать, что эффективное использование архитектурных возможностей VS потребует ограничения в части используемых языковых конструкций.

Второе принципиальное изменение местности, которое стоит на пороге - это сам Windows8. Здесь, помимо многочисленных технических докладов P&P о различных аспектах разработки, надо отметить доклад Константина Кичинского "Шаблоны дизайна новых типов приложений", в котором были не только общие положения, но и примеры, хотя не так много, как хотелось бы. А пример, если он противоречит тому, как ты каждый день поступаешь - хороший побудительный мотив для изменения мышления, в отличие от общих положений, с которыми куда легче прийти к согласию. Так вот, принципиальное изменение hardware состоит в том, что сейчас имеется непрерывная линейка устройств с диапазоном экрана от 5 до 30 дюймов, при этом больших экранов может быть несколько: смартфоны, планшеты, нетбуки, ноутбуки, десктопы. И эта линейка плохо кластеризуется, она непрерывна - шаг размеров экрана 1-2 дюйма, возможности тоже нарастают постепенно, просматривать почту, документы, интернет можно почти на всех, и с тем или иным удобством можно редактировать, использовать офисные приложения. И, самое главное, один человек в течении дня переключается между устройствами: на основном месте работает на десктопе или ноуте с подключенным большим экраном или без него, на совещание берет маленький ноут или планшет, где-то пользуется смартфоном - и набор любимых устройств у разных людей тоже различается. Все эти конструкции освоены не только IT-шниками, менеджеры всех уровней, включая топов, тоже ими пользуются. И потому задача разработки корпоративных приложений, создания корпоративного IT-ландшафта предприятия, способного успешно работать в столь гетерогенной среде, становится все более востребованной.

И MS в Windows8 делает два шага в этом направлении. Он радикально меняет шаблон приложения, переходя от классических десктоп-приложений к web-образной верстке, включая горизонтальные перемещения и многие наработки, примененные сейчас в планшетах. А, вдобавок, он, по-сути, объединяет web и desktop разработку, позволяя разрабатывать desktop приложения на HTML5 и JScript. При этом, пока ты используешь его шаблоны, библиотеки и следуешь его guideline, ты можешь быть уверен, что твои приложения будут более-менее адекватно работать на всей линейке устройств, пусть под Windows8, независимо от управления тачскрином с жестами, мышью, клавиатурой, документы и формы можно будет напечатать и так далее. Да, нестандартные решения будет сделать сложно, guideline наверняка будут жить и меняться, и в новой версии best practice может таковым не оказаться - но это нормальная жизнь. Зато ты получаешь достаточно много типовых решений с низким порогом входа, включая достаточно сложные конструкции, типа асинхронных решений, провязываемых в цепочку вызовов. Докладчики из MS показывали это в течении всей конференции, демонстрируя много примеров кода.

Надо отметить, что последние несколько лет отрасли прошли под знаком интенсивного развития web-разработки. И достижением были не только крупные проекты, но и повсеместная разработка, включая достаточно сложные заказные сайты. Это в целом научились делать быстро, дешево и удовлетворяя потребности клиента. И реализация в Windows8 шаблона приложения на основе web-образной верстки с реализацией HTML5 + JScript потенциально открывает этим компаниям дорогу на рынок desktop-приложений. А вместе с архитектурными возможностями VS ultimate, вполне возможно, позволит достаточно быстро и дешево делать корпоративные приложения среднего размера, при чем с эффективной интеграцией с другими приложениями на той же платформе за счет заложенных базовых механизмов, типа Windows Azure Service Bus. Реализуется ли эта возможность, пока, естественно, никому неизвестно, но она видна.

В свете всего этого мне очень интересна реакция мира Linux-Android-Java на такое развитие. Возникнут ли там какие-либо альтернативные подходы, или будет продолжаться лишь догоняющее движение. Потому что переход к desktop на html5+JScript потенциально (при условии, естественно, реализации соотвествующих библиотек и фреймворков) может дать новое дыхание нынешней серверной Java-разработке с web-клиентом, которая очень распространена - клиентом сможет стать уже desktop-приложение, но разработанное в аналогичном русле. Что будет с рынком Android-планшетов, если MS реализует-таки свою идею однородной работы с приложениями под Windows8 на всей линейке hardware? Вопросов тут много. Но про ответы и тренды лично мне пока ничего неизвестно.

И, завершая этот пост, я хочу подчеркнуть необходимость учитывать эти изменения в рамке текущих работ компании, как на тактическом, так и на стратегическом уровнях. Далее - тезисы.

На этом все. Аннотации конкретных докладов - не будет. Разве то, в заключении, расскажу про конкретный маленький профит. Я узнал, что в составе VS появилась такая Storyboarding, которая является плагином к PowerPoint и позволяет визуально прототипировать интерфейс - внешний вид экранов, последовательность экранов и интерактив. Хотя и без данных. Надо будет посмотреть.