Выступление Германа Оскаровича Грефа не осталось незамеченным не только среди политического и экономического истеблишмента, но и получило резонанс в ИТ-сообществе. Еще бы. «Agile, cloud-based, deep machine learning, artificial intelligence», – и все эти базворды не из уст айти-гика, а слова государственного деятеля, президента и председателя правления Сбербанка России. Думаю, что Герман Оскарович, конечно, не сам писал тезисы айтишной части своего выступления, а, как обычно, помогали эму в этом айти-советники.

Далее в посте цитаты из выступления по посту на Geektimes, вопросы, которые они у меня вызвали, мои ответы и гипотезы о том, что айти-советники хотели сказать и, наконец, брюзжание на тему об опасности революций.

Цитата: «В прошлом году мы сделали 27 000 изменений платформы. Для сравнения — 5 лет назад мы делали 600-800 изменений. В этом году мы сделаем 41 000 изменений. Если посмотреть на банки – мы в шоколаде, все в порядке. Если посмотреть на вот этих ребят всех – Amazon, Google и так далее, то Amazon делает 10 000 изменений своей платформы в день. 10 000 в день и 40 000 в год это несопоставимые вещи. Time to market – часы, и time to market – месяцы, это неконкурентоспособная история».

Вопрос: О чем свидетельствует число изменений платформы в единицу времени?

Ответ: Ни о чем, кроме производительности программистов.

Гипотеза: Численность сотрудников компании Amazon, примерно 100000 человек. Поскольку бизнес компании — продажа товаров и услуги через Интернет, а не производство ПО, то айтишники в ней — обслуга, и, полагаю, что они составляют не более 5% от общей численности. Итого, где-то, 5000 человек. Из них программистов, примерно, четверть, то есть, 1250 человек. Остальные менеджеры, аналитики, тестировщики и прочие админы. Считаем производительность.

Среднее количество изменений, переданных программистом в тестирование за рабочий день, = 10 000 изменений в день / 1 250 программистов = 8 изменений в день.

И это очень крутой конкурентный результат.

Асхат в своем блоге, ссылаясь на выступление на конференции, одного из директоров Амазона в 2011 году, говорит, что речь идет не об изменениях, а о деплоях в продакшн, то есть сколько раз за промежуток времени изменения попадают на сервера и становится доступным для конечных пользователей.

Не верю. Не Асхату, конечно, а директору. Даже, если мои оценки производительности программистов не завышены, то в продакшн каждые 10 секунд должны уходить в среднем не более чем по одному изменению. А смысл? А если изменений больше то, кто их кроме программистов делает.

Вопрос: Как связаны количество изменений и Time to market?

Ответ: Совсем никак. Потому, что Time to market определяется архитектурой системы и производственной технологией. Чем больше размазана бизнес-логика, чем больше связанность между модулями, тем больше времени потребуется на анализ, проектирование, разработку и тестирование. И в первую очередь — регрессионное. Чем более критичен и ответственен бизнес, тем тяжеловеснее технологические процессы и жестче регламенты. Иначе — «Фобос в грунт» и никакой agile от этого не спасет.

Цитата: «И мы для себя принимаем решение, что мы уходим в прорыв вообще, мы меняем целиком нашу платформу. Мы покупаем маленький пакет акций в российско-американской компании, которая выиграла тендер, который мы проводили, выиграла тендер у Oracle, IBM и так далее – у всех. Ее платформа (C_B: ошибка в источнике) Производительность ее платформы (C_B: цитата по видеозаписи) оказалась на порядок выше, ровно на порядок выше, чем у этих компаний. Шестьдесят программистов ее делают».

Вопрос: Почему новое решение названо платформой (как явствует из интернета, это In-Memory Data Fabric, от GridGain Systems, которая специализируется на In-Memory Computing)?

Ответ: Это не платформа, а in-memory база данных. В ней нет движка бизнес-процессов, решения класса ESB с автоматической диспетчеризацией и гарантированной доставкой, аналитической и отчетной платформы и многого чего еще.

Вопрос: А что конкретно сравнивали по производительности In-Memory Data Fabric с Oracle RDBMS и IBM DB2 или, все-таки, с сопоставимыми решениями Oracle TimesTen и SolidDB, приобретенной IBM.

Гипотеза: Очень надеюсь, что второе, а также, что не забыли еще одного из лидеров среди продуктов этого класса SAP HANA.

Вопрос: А почему выбор был сделан именно по производительности?

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

А теперь брюзжание.

Сбербанк затевает не одну, а сразу три революции: переписывание всей системы, переход на новые айти-технологии, повсеместное внедрение agile-процессов. То, что «это, конечно, колоссальный вызов» Греф, безусловно, прав. Но, с другой стороны, «проект без рисков – удел неудачников».

Не уверен, стоит ли сравнивать Сбербанк с Goolge, поскольку Google — это 2 миллиарда строчек кода. Думаю, если переписывать всю АИС Сбербанка, то это будет, где-то, 10 миллионов строчек исходного кода, включая автотесты. Но и это тоже серьезный вызов и наверное главная опасность, поскольку только 14% подобных масштабных разработок завершаются успешно, а 65% — успешно проваливаются (С. Макконнелл, «Сколько стоит программный проект», «Питер», 2007).

Средняя производительность хороших проектных команд при разработке ПО BSS — 40 протестированных и документированных SLOC в день на одного бойца, включая менеджеров, аналитиков, тестировщиков и прочих админов. Следовательно, суммарная трудоемкость разработки новой системы составит

10 000 000 SLOC/ (40 SLOC в день на человека * 21 день в месяц) = 12 000 чел.*мес.

И это оптимистичная оценка поскольку, среднеотраслевая производительность, согласно статистики COCOMO II, составляет всего 15 SLOC в день.

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

Длительность [месяцы] = 2,5 * 12 000 ^ (1/3) = 60 месяцев = 5 лет

И это не один проект, а целая программа проектов.

Теперь про главные риски и про то, как им можно противодействовать.

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

2. Получить еще более размазанную логику и более связанную модульность
Запланировать тщательное комплексное проектирование архитектуры, прототипирование и тестирование на соответствие нефункциональным требованиям. Причем, проектировать надо не ПО, а систему систем, в состав которой входит электротехническое оборудование, вычислительная инфраструктура и СХД, программное, телекоммуникационное и организационное обеспечение с учетом всех их разнообразных взаимосвязей и взаимозависимостей.

3.Нестабильность нового базового ПО.
Я с оптимизмом смотрю на новые технологии и верю в профессионализм программистов с российскими корнями, но знаю, что на разработку серьезного продукта, применимого в критическом бизнесе уходит десять лет. Я не нагуглил, какая по счету имеется в настоящее время стабильная версия ПО In-Memory Data Fabric, но хорошо помню, что первые десять лет, по словам самого Ларри Эллисона, клиенты требовали вернуть не деньги, но данные. А пригодная для критических применений версия базы данных была только 5.1. Поэтому стоит заложить дополнительное время и затраты на стабилизацию нового базового ПО.

4.Снижение производительности команды вследствие перехода на новое базовое ПО и производственные процессы.
По-старому нельзя, а по-новому еще не умеем. Следовательно необходимо учесть кривую обучения в планах.

5. «Ахиллес никогда не догонит черепаху».
Все известные мне попытки сразу заменить старую систему подобного масштаба на новую проваливались. Происходило это из-за неприемлемых затрат на параллельное внесение изменений в функциональные требования в старой и новой системе. Даже не советую про это думать. «Слона нельзя съесть целиком», поэтому его надо разрезать на подпроекты, которые можно реализовывать командой в 7-10 бойцов и в срок 6-10 месяцев. И по готовности заменять в промышленной эксплуатации старую функциональность на новую. Кстати, возможность такого подход это тоже одно из важных требований к проектированию архитектуры. Такой подход, примерно, удвоит трудоемкость разработки системы, поскольку потребует дополнительных усилий на интеграцию старой и новой системы, для обеспечения их мирного сосуществования. Но не должно повлиять на сроки, поскольку разработку и интеграцию можно вести параллельно.

ЗЫ. Безусловно, в ИТ сделать можно все, что не противоречит законам природы. Это вопрос только политической воли, денег и сроков.

Успехов!

Комментарии (17)


  1. Firz
    20.01.2016 11:10
    +4

    «Поскольку бизнес компании — продажа товаров и услуги через Интернет, а не производство ПО, то айтишники в ней — обслуга, и, полагаю, что они составляют не более 5% от общей численности.»
    aws.amazon.com, да и множество других сервисов, не привязанных к этой платформе. Конечно, большинство сотрудников это все же работа со складами и прочим, но продажа услуг через интернет требует разработки и поддержания того, что ты пытаешься продать через интернет(подразумеваю их сервисы, а не физические товары).


  1. Color
    20.01.2016 11:47

    SAP HANA
    Вот кстати вопрос, почему сберу не перейти на SAP? Такие компании, как The National Bank of Canada, Royal Bank of Scotland, Deutsche Bank вполне хорошо себя чувствуют.
    Вполне себе надежная система, уж для банка функционала с головой хватит, ничего нового и придумывать не нужно.

    Нет же, нужно угробить еще n млрд рублей на разработку системы, которая все равно окажется неактуальной


    1. AmberSP
      20.01.2016 11:52
      +3

      потому что кастомизация SAP потребуется и потребует она столько бабла, что становится грустно всем. А еще она потребует специалистов по САПу в количестве, которого на рынке просто нет. Возможно поэтому решили написать своё.


      1. mukizu
        20.01.2016 12:48
        +1

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


      1. Color
        20.01.2016 12:51
        -1

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


        1. AmberSP
          20.01.2016 16:15

          Что, вот прям так на рынке есть пара тысяч квалифицированных саперов? У них и так зарплаты поднебесные, а если ВНЕЗАПНО начать нанимать людей тысячами, то рынок труда взорвётся. ФОТ на эту ораву нужен будет безумный. А программистов проще нанимать, всё-таки.

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


    1. erimeev
      20.01.2016 15:06

      Потому что банковское приложение должно быть одобрено нашим ЦентроБанком, на данный момент у нас четыре крупных игрока (все отечественные) и наколенные приложения самих банков.
      И так как конкуренции особо нет, то и проблемы те же, что и у обычных приложений были в середине 90-х, да что говорить, у самого крупного игрока нет поддержки Юникода :(


  1. numberfive
    20.01.2016 12:49
    -2

    «time to market» для консервативного ритейл или корпоративного банка не играет никакой роли, это может быть отчасти актуально для инвестбанкинга, но в мировых масштабах сбербанк CIB — ничто.
    модных слов наговорил, но за ними ничего не стоит


  1. potan
    20.01.2016 15:26

    Amazon еще и крупный провайдер облачных сервисов.
    Правда, у него сервисы разделены на регионы и обновления в них производятся независимо — новые фичи в одних появляются раньше, в других позже. Возможно обновления в каждом посчитаны независимо и просуммированы.


  1. orcy
    20.01.2016 23:44
    +2

    Выступление Грефа действительно напоминает явление которое происходило в некоторых компаниях, когда начиналось повсеместное внедрение Agile (ранее RUP) с такими ожиданиями как будто это серебренная пуля. То что описаны выше (про три революции) выглядит еще более тревожным, много IT-компаний не смогли такое пережить (банку может быть проще), даже некоторый ретейл вроде Топ-книги насколько я понял затонул из-за проектов автоматизации бизнеса.

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

    Если же какой-то то хитрой идеи нет, то переписать все на новой БД и с помощью Agile выглядит как опасная затея.


  1. elite7
    21.01.2016 07:55

    Как связаны количество изменений и Time to market?

    Ответ: Совсем никак. Потому, что Time to market определяется архитектурой системы и производственной технологией. Чем больше размазана бизнес-логика, чем больше связанность между модулями, тем больше времени потребуется на анализ, проектирование, разработку и тестирование. И в первую очередь — регрессионное. Чем более критичен и ответственен бизнес, тем тяжеловеснее технологические процессы и жестче регламенты.

    Так речь как раз о том, что в некоторых крупных компаниях удается создать такое тестирование (например на основе статистики поведения сотен миллионов пользователей), что стало возможно выкладывать изменения раз в минуту или раз в секунду. Такая скорость тестирования напрямую зависит от чувствительности поведенческих метрик, которая в свою очередь зависит от числа пользователей. Чем больше пользователей, тем более чувствительны метрики. Чем больше разрешающая способность метрик, тем большая скорость тестирования выкаток в бой. Тем больше скорость тестирования изменений, тем выше общее качество сервиса. Чем выше качество сервиса, тем больше пользователей. Чем больше пользователей у вас, тем меньше пользователей у других.

    Система не работает, если у вас 10 тыс программистов и 10 пользователей.


    1. craft_brother
      21.01.2016 08:34

      Релизить можно и по 10 000 раз в день. Но если процесс таков, что от регистрации тикета до его попадания на продакшн через все согласования, проектирование и реализацию изменений уходит три месяца, то Time to market будет >= 3 месяца, даже при полностью автоматизированном тестировании. Имел честь руководить разработкой продукта (всего-то 2 500 KSLOC, включая автотесты). Так вот сборка и прогон всех автотетов продолжались больше суток.


      1. elite7
        21.01.2016 09:33

        если всё повестить на метрики и выкатывать сначала на небольшую аудиторию, потом, если всё хорошо, чуть больше, потом на половину, потом на 100 процентов, то ТТТ будет достаточно быстр, неделю например, можно попробовать разрешить делать правки в коде любому из 10 тыс программистов, плохая правка должна откатиться сама.

        ну и 3 месяца — это еще мало. в больших компаниях могут по факту и год выкатывать.

        Конечно Time to market важный параметр, но всё же не столь критичный, как максимальное число одновременно тестируемых изменений, которое обычно является самым узким местом.


  1. hard_sign
    21.01.2016 10:15

    Вопрос: А что конкретно сравнивали по производительности In-Memory Data Fabric с Oracle RDBMS и IBM DB2 или, все-таки, с сопоставимыми решениями Oracle TimesTen и SolidDB, приобретенной IBM.


    Вы немного перепутали класс «сопоставимых решений». В случае Oracle это Coherence (часть пакета Fusion Middleware), в случае IBM — WebSphere eXtreme Scale (часть пакета WebSphere). То, что вы назвали, это монолитные (т. е. работающие на одном сервере) СУБД, хоть и in-memory.

    Гипотеза: Очень надеюсь, что второе, а также, что не забыли еще одного из лидеров среди продуктов этого класса SAP HANA.


    Не забыли, но HANA — лидер главным образом по PR. Попробуйте назвать хотя бы один не SAP'овский продукт, использующий HANA. Ну, или назовите сходу компанию, где ERP установлен на кластере, а не на одноузловую БД. Продукт, безусловно, интересный, но нюансов слишком много.