О том как вендоры и аналитики победили ITIL

Наверное, я один из немногих читателей книжки Роба Ингланда «Овладевая ITIL», которым эта книжка не нравится. Не нравится не потому, что я не согласен с приводимыми автором фактами и выводами. Наоборот, с большинством суждений о роли, месте и истинных мотивах популяризаторов ITSM я согласен. Мне не нравится подход IT sceptic-а. На протяжении всей книжки автор пишет о том, что построение ИТ-сервисов в соответствии с ITIL это очень дорого не всегда нужно, и потому предлагает действовать более прагматично. В одном направлении немножко поработать с процессами, в другом – немножко, вот всем и станет немного лучше. Читать далее О том как вендоры и аналитики победили ITIL

Учебный курс: ИТ архитектура предприятия

В преддверии Нового года принято строить планы и загадывать желания. Я собираюсь в начале 2012 года собрать имеющиеся у меня материалы в учебный курс по архитектуре информационных систем организации. Краткая презентация курса выглядит примерно так:

Я не собираюсь пересказывать учебник по UML или учить вас рисовать диаграммы в нотации Archimate. Мы не будем моделировать корпоративные java приложения и разбираться в тонкостях отображения объектно-ориентированных моделей в реляционной базе данных. Цель этого курса выделить базовые техники ИТ архитектуры, востребованные в современной организации. Разобраться что, когда и главное зачем должен делать сотрудник, занимающий должность ИТ архитектора. Как применить теоретические наработки архитектуры предприятия (Enterprise architecture), подходы к моделированию информационных систем, руководства по процессам управления ИТ к задачам и операционным процессам современной компании.

В программе курса:
1. Ретроспектива программных архитектур. Возрастание сложности корпоративных информационных систем: непрерывные инновации; разрозненность унаследованных приложений; устаревание технологий. Изменения в бизнесе: слияния и поглощения; процессный подход к управлению организацией; интеграция информационных систем предприятия с системами поставщиков и заказчиков.

2. Роль архитектуры в процессах управления ИТ. Моделирование и инвентаризация ИТ-услуг и ИТ-ресурсов. Задачи архитектора в процессах управления изменения, управления релизами информационных систем, инцидентами, дефектами и проблемами.

3. Предпосылки возникновения сервис-ориентированного подхода в архитектуре:

— объектно-ориентированный анализ и проектирование информационных систем;
— открытые интернет-стандарты взаимодействия бизнес-приложений, SOAP и RESTful веб-сервисы;
— архитектура предприятия, средства управления бизнес-процессами, интеграция приложений.

4. Проектирование архитектуры сложных ИТ решений, включающих согласованные изменения нескольких информационных систем и построение композитных приложений. Создание высокоуровневого дизайна решения. Декомпозиция бизнес-процессов по системам. Разработка программных интерфейсов. Планирование инфраструктуры, развертывания и сопровождения. Задачи архитектора на разных фазах традиционного ИТ проекта. Кросс-проектная деятельность. Оптимизация портфеля проектов.

5. Основные информационные системы организации. Финансовые и учетные системы. Системы управления персоналом, документооборота и коллективной работы. Приложения для поддержки взаимоотношений с клиентами, поставщиками и заказчиками. Интернет-сайт и корпоративный портал. Мобильные приложения. Технологии интеграции приложений. Сервисная шина предприятия, системы управления бизнес-процессами и бизнес-правилами, управление основными данными.

 

Надеюсь, основное учел. Буду признателен за добавления, советы, акценты и замечания!

Дополнение: В настоящее время вместо этого учебного курса я предлагаю курс, имеющий большую практическую направленность: Solution architecture

В тумане облачных вычислений

Я подвергся очередному опросу относительно ожиданий от cloud computing или же, говоря русским языком, облачных вычислений. Думаю, эта тема изрядно надоела не только мне, но и большинству экспертов, занимающихся информационными технологиями.
Возможно, она уже актуальна для людей, занимающихся перепродажей серверного оборудования, но для отрасли программного обеспечения «облака» остаются пока в разделе размышлений о будущем. Сейчас про «облака» достоверно можно сказать лишь следующие: Читать далее В тумане облачных вычислений

ICAS-2011: Интеграция корпоративных прикладных систем

Недавно я выступал на конференции Интеграция корпоративных прикладных систем (ICAS-2011). Судя по высоким оценкам в анкетах участников конференции, готовился я не зря. Мой доклад об использовании Open ESB для построения композитных приложений был хорошо принят (выкладываю несколько слайдов)
[slideshare id=10547080&doc=icas-2011openesb-111210234604-phpapp02]

Но вот времени на финальную дискуссию у нас практически не осталось. Несмотря на то, что в качестве темы дискуссии было обозначено что-то там про облака, обсуждали мы интеграцию при помощи сервисов. Так как времени было немного, дискуссия оказалась скомканной. Да еще кто-то из участников постоянно троллил вопросами про откаты в ИТ отрасли. На следующей конференции по интеграции приложений непременно напрошусь модерировать такое обсуждение и даже не поленюсь нарисовать пару слайдов, чтоб задать ему тон.

Масштабируемость RESTful web-сервисов

Representational State Transfer это не только эффективный стиль для архитектуры данных и приложений. Безусловно, очень удобно, когда у каждого информационного ресурса есть неизменный URL.  Такую гиперссылку можно сохранить или переслать коллеге, избавив информационные системы от повторного поиска. Но придумывался REST, как впрочем и HTTP, не только для этого. Основная задача этой архитектуры заключалась в построении масштабируемых многоуровневых приложений. Не смотря, на очевидность и простоту этой архитектуры, очень многие разработчики корпоративных информационных систем её не понимают (или делают вид, что не понимают). Поэтому, очередной взгляд на эту архитектуру. На этот раз с точки зрения инфраструктуры. Читать далее Масштабируемость RESTful web-сервисов

Мобилизация корпоративных информационных систем и дилемма инноватора

Если бы лет пять назад вы спросили программиста, будет ли в будущем его приложение работать на андроиде то, в лучшем случае, он счел бы вас эксцентричным фанатом «Звездных войн». Сегодня вопрос предоставления сотрудникам доступа к корпоративной информационной системе с мобильных устройств звучит вполне обыденно. Вопрос не в том, предоставлять ли такой доступ, а скорее — как это сделать. Очевидный ответ на него: разработать для приложений мобильные клиенты – мне представляется нечестным и трудно реализуемым. На протяжении последних пятнадцати лет мы регулярно переписываем свои корпоративные системы. Сначала мы переписывали их в архитектуру клиент-сервер, потом переписывали на Java, затем готовили к проблеме 2000. С появлением серверов приложений мы снова их переписывали. Читать далее Мобилизация корпоративных информационных систем и дилемма инноватора

Atlassian JIRA 5.0(beta) закручивает воронку событий

Когда-то я рассказывал о решении tibbr от TIBCO Software (см. Интранет, интеграционная среда или корпоративный портал?) Предназначено оно для того, чтоб собрать все потоки событий в корпоративную ленту сообщений. Лента чем-то напоминает twitter, но подписываетесь вы не на сообщения от конкретного персонажа, а на определенную тему. Естественно, организация сама для себя может построить необходимую иерархию тем. Посылать сообщения в ленту могут в равной степени люди и приложения.

Похоже, что JIRA направляется тем же путем. Сейчас идет beta-тестирование пятой версии. В анонсе к ней 5 Reasons to get JIRA 5 Beta в качестве первых трех преимуществ указана интегрируемость решения. Читать далее Atlassian JIRA 5.0(beta) закручивает воронку событий

Адаптивный кейс-менеджмент и основные данные

Перед отпуском я написал серию сообщений о SOA, ESB, EDA и Master Data Management. Потом я написал о том, как собрать это все вместе. А по возвращении из отпуска позволил себе добавить в эту конструкцию еще и BPM. Но честно говоря, я еще не сказал главного, о чем мне и напомнил доклад Анатолия Левенчука «Между проектами и процессами: адаптивное управление кейсами». Настоятельно рекомендую его послушать.

Прежде чем перейти к главному, я все же соберу ссылки на все упомянутые выше сообщения:

Читать далее Адаптивный кейс-менеджмент и основные данные

Software product management (3) Change management

Продолжаю серию заметок о различиях заказного ПО и программного продукта. Я уже упоминал о том, что причиной долго времени внесения изменений в ИТ системы может являться сам процесс внесения изменений. Все мы учились на унифицированном процессе разработки ПО. Потому верим в цикл разработки, включающий сбор и анализ требований, проектирование, разработку, тестирование и развертывание решения. Большинство попыток оптимизации этого цикла сводятся к сокращению времени этих фаз. Гибкие методологии, такие как SCRUM предлагают зафиксировать вместо объема работ длительность итерации, т.е. цикл (sprint) разработки составляет всегда X недель (2 или 4), а объем требований для каждого цикла разработки определяется исходя из их сложности. В любом случае, внесение изменений в систему осуществляется только посредством разработки. Читать далее Software product management (3) Change management

Software product management (2). Архитектура продукта.

В заметке Software product management я обозначил целесообразность перехода от заказной разработки ПО к разработке программных продуктов. В сообщении Различия кастомизируемых программных продуктов и заказной разработки высказал свои соображения о необходимости выделения повторно используемых компонент, но не дал каких-либо конкретных рекомендаций как это сделать. Вообще говоря, разработчиков ПО никто не учит выделению повторно-используемых компонент. Объектно-ориентированный подход здесь не очень хорошо подходит. Нас учили выделять повторно используемый функционал в библиотеки классов и наследовать этот функционал при разработке решений. Но библиотеку классов продать довольно проблематично. Да и кастомизация программного продукта, таким способом доступна только более-менее подготовленному программисту. Одним словом, нам нужно научиться выделять готовые повторно-используемые настраиваемые компоненты, которые можно показать заказчику.

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

1. Делим все данные на транзакционные данные и справочники. Справочники выносим в отдельный компонент. База данных у транзакционных записей и справочников может быть общей, но пользовательские приложения для управления справочниками, модули, реализующие SOAP или REST интерфейс и т.д. надо выделять. Рассказываем интересную историю о том, что в нашей системе есть модуль управления справочниками (если позволяет наглость, то можно использовать термин управление основными данными). Данный модуль позволяет хранить информацию о пользователях, ролях, бизнес-процессах, основных активах и т.д. Демонстрируем красивое web-приложение, напоминающее explorer или консоль сервера приложений с иерархическим справочником объектов в левой части окна и формами для их просмотра в правой. Не забываем упомянуть о том, что нам хорошо знакома задача синхронизации справочников в разрозненных информационных системах заказчика и потому наш справочный модуль предоставляет программный интерфейс, позволяющий другим приложениям использовать наши справочники. Безусловно, наши справочники самые лучшие, так как хранение истории изменений позволяет застраховаться от ошибок оператора, а управляемые пользователем гибкие классификаторы от ошибок архитектора данных

2. Транзакционные данные очевидным образом выносим в другие модули. Здесь возможно несколько вариантов. Исторические данные по транзакциям можно просто хранить, выдавать по запросу оператора (т.е. искать транзакцию по ряду параметров), агрегировать в отчетность, использовать в качестве источника для BI системы. Все это разные варианты использования а, следовательно, и разные модули. Выдача информации по запросу реализует вариант использования — решение инцидентов (в широком понимании), а отчетность необходима для управления. Есть еще функция мониторинга, управления проблемами, контроля соблюдения SLA и еще много-много функций, требующих транзакционных данных. По таким данным, вы в онлайне можете отслеживать соблюдение планов и если, например, к 11 часам утра общая сумма выручки по сегодняшним транзакциям меньше ста тысяч рублей, то бежать делать втык сотрудникам. Но этот вариант использования уже для истинных гурманов научного менеджмента.

3. Вы напрасно думаете, что разделив данные на транзакционные и справочные и предложив несколько вариантов их использования, мы закончили придумывать модули. Фантазия архитекторов безгранична. В любом программном обеспечении есть ошибки и недочеты. Обычный программист успокаивается, выдав в консоль сообщение об ошибке. В лучшем случае такое же сообщение попадает в лог-файл. Продакт-менеджер не может столь нерачительно разбрасываться возможностью повзаимодействовать с клиентом. Мониторинг системы, особенно осуществляемый силами поставщика решения это ИТ-услуга завтрашнего дня. Собирайте ошибке, передавайте их в свой центр мониторинга, оповещайте заказчика о проблемах раньше, чем проснется его сисадмин и вы не только получите благодарного заказчика, но и денег заработаете на тех поддержке.

4. Аналогичный подход уместен для управления изменениями. Подробнее см. сообщение Кнопка «Feedback» в бизнес-приложениях Не отдавайте работы по сопровождению продукта айтишникам заказчика. До вас не дойдет и десятой доли новых требований. Замкните её на себя и используйте для придумывания функционала будущих версий.

5. Социализация и мобилизация – две современных идеи, которые просто недопустимо оставить без внимания. С мобилизацией все довольно просто. У вашего приложения должен быть клиент для iOS и android, а внутри системы – шлюз, обеспечивающий безопасный доступ этим приложениям через сеть Интернет (он же пригодится вам для реализации двух предыдущих пунктов). С социализацией немного сложнее. Корпоративный tibbr ваш заказчик, скорее всего, еще не купил (см. Интранет, интеграционная среда или корпоративный портал?), так что взаимодействие пользователей придется налаживать вам. Впрочем, это отличная новость. Вам решать, в каких формах ваши пользователи могут добавлять комментарии, как построить уведомление об этом других участников процесса посредством e-mail или SMS, как управлять группами доступа (если пользоваться социальным сленгом: кругами, друзьями, одноклассниками), какие события выносить в новостные ленты и т.д. и т.п.

Надеюсь, мне удалось показать, что тема перехода от заказной разработки к производству программных продуктов – это не только маркетинг. Об этой составляющей «продуктизации» разработки довольно много информации можно почерпнуть в Блоге российского сообщества менеджеров программных продуктов Но основное место в разработке продукта должен занимать сам продукт, не так ли?