Журнал IT Manager, партнер конкурса ИТ-директоров CIO Awards, представляет участников. Как разрабатываются ИТ-инструменты для ветеринарии Евгений Кривов, CIO «Агросервис», номинация «Культура разработки».
Какое программное обеспечение разрабатывает ваша компания?
С 2006 года наша компания «Агросервис» разрабатывает ПО для ветеринарии. Это федеральная программа, направленная на регистрацию и учет всех животных сельского хозяйства РФ.
Сегодня государственные программы продовольственной безопасности нацелены на предотвращение распространения опасных заболеваний животных. Согласно этим программам, все сельскохозяйственные животные должны быть идентифицированы. Для этого на животных устанавливаются метки, например ушные, а также радиолокационные устройства или подкожные чипы. Если животное однозначно идентифицировано, можно отследить всю его биографию, лечение, вакцинации, другие важные события.
У Министерства сельского хозяйства РФ есть задача идентифицировать все поголовье сельхозживотных во всей стране. Определены сроки, когда все группы животных должны быть полностью взяты на учет и государственный контроль.
В текущем году идет подготовка к этому проекту, в следующем — уже весь крупный рогатый скот должен быть поставлен на учет. За ним последует мелкий рогатый скот, кошки и собаки, свиньи и остальные группы животных.
С помощью наших приложений поставлено на учет более пяти миллионов животных в 30 регионах, 50 тысяч пользователей применяют наше ПО.
У вас почти 30 различных приложений, и вы решили перевести их все на одну платформу. Почему?
К 2020 году у нас был штат 20 человек, и он постоянно требовал расширения. Под каждый программный продукт формировалась своя продуктовая команда. В нее входили разработчики и маркетологи. На один продукт требовалось 4–5 человек. Соответственно, стоимость продукта повышалась, что для ветеринарной отрасли было неприемлемым.
Кроме того, в каждом продукте должен был быть свой тимлид. В нашем случае сильным тимлидом, видящим общую картину всех продуктовых линеек, был я. И по каждому вопросу я должен был принимать те или иные решения. Как руководителя, меня это не устраивало.
Мы захотели снизить порог компетенций для сборки и для запуска продукта, так как продуктовые команды требовали наличия высококвалифицированных кадров, при том что дефицит программистов сохраняется.
Мы приняли для себя, что наше ПО требует простых и понятных таблиц, форм ввода, диаграмм, других элементов. В этих продуктах главное — понятный интерфейс и безопасность.
Поэтому решили создать единую платформу разработки продуктов и сократить таким образом затраты. Разделили всех разработчиков на две команды. Одна развивает платформу, другая собирает продукты. На каждый продукт ставим одного или даже «половинку» сборщика, веб-аджастера. Этим термином обозначаем тех, кто на готовой платформе может самостоятельно собирать и поддерживать продукт.
С этой концепцией мы вошли в 2020 год. Сделали рефакторинг большинства наших продуктов и пересобрали их на новой платформе. Теперь их по очереди запускаем. В результате ускорили сборку и запуск продуктов в 3–4 раза. Экономическая эффективность выросла в 6 раз.
Кто такие ваши веб-аджастеры, как вы их обучаете?
Программисты рождаются, чтобы кодить. А ребята, готовые заниматься обычной сборкой, приходят с минимальными знаниями и компетенциями.
Психология разработчика основана на максимальном контроле процесса работы, они творцы — хотят вмешиваться в код, дописывать элементы, привносить что-то свое. Вот это как раз для бизнес-ПО бывает совершенно лишним. Смелые эксперименты, суперинновационные технологии здесь не требуются — только работа по четким стандартам. Но людям хочется себя реализовать.
Эту проблему тоже решает наше разделение функции. Хочешь что-то сделать самостоятельно? Пожалуйста, сделай отдельный модуль, сделай действительно хорошую таблицу, поработай с формами, оптимизируй их. Наши сильные специалисты этим и занимаются. Веб-аджастеры только используют уже готовые модули. В свое время было хорошее слово «веб-мастер». Вот оно полностью соответствует тому, чем должен заниматься современный аджастер, сборщик программного продукта.
В последние годы широко распространились термины «лоу-код», «зероу-код», «ноу-код». Лоу-код — это минимальное использование кода, ноу- код — графический конструктор. В веб-дизайне такие инструменты широко известны, например Tilda. Уже начали появляться и конструкторы бэкэнда, есть и инициативы по полному стеку разработки «ноу-код».
Для себя мы и создали такой полный стек, у нас есть конструктор верстки, бэкэнда, конструктор роботизированной логики, конструктор диаграмм, печатных отчетов. Пользоваться всем этим учим ребят, уже имеющих минимальный похожий опыт, например создания сайтов на конструкторах.
Мы считаем, что в промышленной разработке функции должны быть разделены: одни делают компоненты, другие собирают из них продукт. Такая специализация всем известна в строительстве: одни люди и фирмы делают кирпичи, другие кладут их. Одни производят стройматериалы, другие возводят здание. В программировании это тоже возможно, но чем лучше будут отработаны технологии, тем лучше будет и результат. Последний год мы совершенствовали процессы и создание готовых модулей и регламенты их сборки. По-прежнему держать людей в рамках «непридумывания» очень сложно, но мы движемся к этому.
Какие методологии организации разработки вы применяете?
В разработке платформы и ее модулей у нас гибкие методологии не прижились. В зависимости от компетенций каждый разработчик ведет свою ветку. Один отвечает за роботизированный конструктор, другой — за создание виджета. Составляем план задач и по нему работаем.
Первый релиз фреймворка мы уже запустили. Вопросы скорости работы, оптимизации мы еще решаем, но близки к тому, чтобы платформа функционировала стабильно при обновлениях и других сложных ситуациях.
Мобильное приложение, интеграция сайта и мобильного приложения — это тоже продукт. Чат-бот, который отсылает задачи в месенджер, составление счетов, актов, документации — тоже продукт. Для сборки таких продуктов хорошо подходят гибкие методологии, в частности скрам.
У сборщиков похожая компетенция, их можно объединять в команды по 4–5 человек. Первая фаза — проектирование. Ребята сели, продумали шаблоны, продумали модели, еще что-то необходимое, разработали ТЗ, утвердили с заказчиком. Второй этап — верстка. Сверстали шаблоны, которые будут использоваться. Если есть дефицит компетенций — более опытные ребята помогли. Все экраны заказчик увидел, все переходы посмотрел — это уже живое веб-приложение, подключаем бэкэнд. Затем протестировали, сдали программный продукт.
При таком подходе у нас значительно повысилась скорость. Известно, что когда разработчик создает приложение, он за 20% времени выполняет 80% задач, а остальное время думает над оставшимися 20%. Но если работает бригада, то сначала каждый делает свои первые 80%, а затем отдает работу другому исполнителю, и тот быстро доделывает ее. Поэтому достигнут эффект повышения скорости. При таком подходе необходимо писать хорошо передаваемый код, и мы этому учимся. Проводим регулярные занятия по технологии создания комментариев, а также других необходимых для надежной передачи кода для шагов «из рук в руки».
Раньше у нас была мысль брать более-менее опытных людей, которые уже делали сайты на тильде, на вордпрессе — это самая подходящая аудитория для наших аджастеров. Но теперь мы начали брать практикантов на лето из тех вузов, где есть обучение веб-дизайну. В этом году у нас 12 практикантов, они легко усваивают новые идеи, и уже видно, что стоит продолжать этот подход.
Молодые программисты, которых вы обучите работать на своей платформе, могут быстро уйти. В чем смысл?
Так в этом и суть: пусть они уходят. Закрытые системы очень плохо развиваются. В современном мире ядро продукта должно быть открытым, open source. Нужно формировать сообщество вокруг продукта, чтобы он рос и развивался.
Мы на это максимально нацелены и начинаем формирование сообщества. Веб-студии, которые захотят специализироваться в нашем направлении, легко смогут сделать это, смогут использовать наш фреймворк и тоже развивать его. У нас открытые репозитории, все желающие могут подключаться, дописывать расширения.
Наши партнеры поддерживают это, мы уже научились одновременно развивать фреймворк и сдавать готовые продукты. Многие веб-студии тоже писали свои CMS, но они конкурируют с вордпресс, Jumla и подобными решениями. Поэтому мы создали другой продукт, платформу для разработки ПО.
Лучшие инвестиции сегодня — это хорошие серьезные проекты, собранные на нашей платформе, и развитие комьюнити. Если проекты получаются безопасными, быстро работают — они займут свое место под солнцем.
Три фактора: безопасность, хорошая скорость работы и низкий порог входа по компетенциям — это основные идеи, которые мы закладываем в платформу.
В вашей презентации для CIO Awards упомянут холистический менеджмент. Что вы под этим понимаете?
Холистический менеджмент практикуем с 2012 года. Такое управление подразумевает комплексное влияние на сотрудников, системное их развитие. Еще три года мы отказались от офисов и перешли на удаленную работу. Сначала было сложно, но уже в 2017–18 году отработали инструменты взаимодействия. Мы научились дистанционно и задачи решать, и конференции проводить. Требовалось дать людям и инструменты обучения, и инструменты роста, и было это сделано. Пандемия на нашу работу уже никак не повлияла.
Мы проводим внутренние хакатоны, выделяем на это ресурсы. Регулярно проводим код-ревью. Для многих наших ребят важней всего не деньги, а люди, которые работают рядом, возможность учиться, интересный набор задач. Драйв, удовольствие от работы — это основное, ради чего мы все это делаем. Платформа — это хорошо, но люди должны получать удовольствие от того, чем они заняты. На Западе это называют холократией. Такой холистический менеджмент имеет и экономическую основу.
У нас выстроена система найма, система адаптации, когда приходят новые люди, мы проводим профориентиционное тестирование. Мы уже убедились, что действительно хорошие разработчики имеют общие черты по компетенциям. Много общаемся с каждым сотрудником, если у человека трудности — всегда можно взять выходной, передвинуть задачи. Единолично развивать бизнес очень тяжело, команда — это основа успеха, и мы создаем и развиваем именно ее.
Какое программное обеспечение разрабатывает ваша компания?
С 2006 года наша компания «Агросервис» разрабатывает ПО для ветеринарии. Это федеральная программа, направленная на регистрацию и учет всех животных сельского хозяйства РФ.
Сегодня государственные программы продовольственной безопасности нацелены на предотвращение распространения опасных заболеваний животных. Согласно этим программам, все сельскохозяйственные животные должны быть идентифицированы. Для этого на животных устанавливаются метки, например ушные, а также радиолокационные устройства или подкожные чипы. Если животное однозначно идентифицировано, можно отследить всю его биографию, лечение, вакцинации, другие важные события.
У Министерства сельского хозяйства РФ есть задача идентифицировать все поголовье сельхозживотных во всей стране. Определены сроки, когда все группы животных должны быть полностью взяты на учет и государственный контроль.
В текущем году идет подготовка к этому проекту, в следующем — уже весь крупный рогатый скот должен быть поставлен на учет. За ним последует мелкий рогатый скот, кошки и собаки, свиньи и остальные группы животных.
С помощью наших приложений поставлено на учет более пяти миллионов животных в 30 регионах, 50 тысяч пользователей применяют наше ПО.
У вас почти 30 различных приложений, и вы решили перевести их все на одну платформу. Почему?
К 2020 году у нас был штат 20 человек, и он постоянно требовал расширения. Под каждый программный продукт формировалась своя продуктовая команда. В нее входили разработчики и маркетологи. На один продукт требовалось 4–5 человек. Соответственно, стоимость продукта повышалась, что для ветеринарной отрасли было неприемлемым.
Кроме того, в каждом продукте должен был быть свой тимлид. В нашем случае сильным тимлидом, видящим общую картину всех продуктовых линеек, был я. И по каждому вопросу я должен был принимать те или иные решения. Как руководителя, меня это не устраивало.
Мы захотели снизить порог компетенций для сборки и для запуска продукта, так как продуктовые команды требовали наличия высококвалифицированных кадров, при том что дефицит программистов сохраняется.
Мы приняли для себя, что наше ПО требует простых и понятных таблиц, форм ввода, диаграмм, других элементов. В этих продуктах главное — понятный интерфейс и безопасность.
Поэтому решили создать единую платформу разработки продуктов и сократить таким образом затраты. Разделили всех разработчиков на две команды. Одна развивает платформу, другая собирает продукты. На каждый продукт ставим одного или даже «половинку» сборщика, веб-аджастера. Этим термином обозначаем тех, кто на готовой платформе может самостоятельно собирать и поддерживать продукт.
С этой концепцией мы вошли в 2020 год. Сделали рефакторинг большинства наших продуктов и пересобрали их на новой платформе. Теперь их по очереди запускаем. В результате ускорили сборку и запуск продуктов в 3–4 раза. Экономическая эффективность выросла в 6 раз.
Кто такие ваши веб-аджастеры, как вы их обучаете?
Программисты рождаются, чтобы кодить. А ребята, готовые заниматься обычной сборкой, приходят с минимальными знаниями и компетенциями.
Психология разработчика основана на максимальном контроле процесса работы, они творцы — хотят вмешиваться в код, дописывать элементы, привносить что-то свое. Вот это как раз для бизнес-ПО бывает совершенно лишним. Смелые эксперименты, суперинновационные технологии здесь не требуются — только работа по четким стандартам. Но людям хочется себя реализовать.
Эту проблему тоже решает наше разделение функции. Хочешь что-то сделать самостоятельно? Пожалуйста, сделай отдельный модуль, сделай действительно хорошую таблицу, поработай с формами, оптимизируй их. Наши сильные специалисты этим и занимаются. Веб-аджастеры только используют уже готовые модули. В свое время было хорошее слово «веб-мастер». Вот оно полностью соответствует тому, чем должен заниматься современный аджастер, сборщик программного продукта.
В последние годы широко распространились термины «лоу-код», «зероу-код», «ноу-код». Лоу-код — это минимальное использование кода, ноу- код — графический конструктор. В веб-дизайне такие инструменты широко известны, например Tilda. Уже начали появляться и конструкторы бэкэнда, есть и инициативы по полному стеку разработки «ноу-код».
Для себя мы и создали такой полный стек, у нас есть конструктор верстки, бэкэнда, конструктор роботизированной логики, конструктор диаграмм, печатных отчетов. Пользоваться всем этим учим ребят, уже имеющих минимальный похожий опыт, например создания сайтов на конструкторах.
Мы считаем, что в промышленной разработке функции должны быть разделены: одни делают компоненты, другие собирают из них продукт. Такая специализация всем известна в строительстве: одни люди и фирмы делают кирпичи, другие кладут их. Одни производят стройматериалы, другие возводят здание. В программировании это тоже возможно, но чем лучше будут отработаны технологии, тем лучше будет и результат. Последний год мы совершенствовали процессы и создание готовых модулей и регламенты их сборки. По-прежнему держать людей в рамках «непридумывания» очень сложно, но мы движемся к этому.
Какие методологии организации разработки вы применяете?
В разработке платформы и ее модулей у нас гибкие методологии не прижились. В зависимости от компетенций каждый разработчик ведет свою ветку. Один отвечает за роботизированный конструктор, другой — за создание виджета. Составляем план задач и по нему работаем.
Первый релиз фреймворка мы уже запустили. Вопросы скорости работы, оптимизации мы еще решаем, но близки к тому, чтобы платформа функционировала стабильно при обновлениях и других сложных ситуациях.
Мобильное приложение, интеграция сайта и мобильного приложения — это тоже продукт. Чат-бот, который отсылает задачи в месенджер, составление счетов, актов, документации — тоже продукт. Для сборки таких продуктов хорошо подходят гибкие методологии, в частности скрам.
У сборщиков похожая компетенция, их можно объединять в команды по 4–5 человек. Первая фаза — проектирование. Ребята сели, продумали шаблоны, продумали модели, еще что-то необходимое, разработали ТЗ, утвердили с заказчиком. Второй этап — верстка. Сверстали шаблоны, которые будут использоваться. Если есть дефицит компетенций — более опытные ребята помогли. Все экраны заказчик увидел, все переходы посмотрел — это уже живое веб-приложение, подключаем бэкэнд. Затем протестировали, сдали программный продукт.
При таком подходе у нас значительно повысилась скорость. Известно, что когда разработчик создает приложение, он за 20% времени выполняет 80% задач, а остальное время думает над оставшимися 20%. Но если работает бригада, то сначала каждый делает свои первые 80%, а затем отдает работу другому исполнителю, и тот быстро доделывает ее. Поэтому достигнут эффект повышения скорости. При таком подходе необходимо писать хорошо передаваемый код, и мы этому учимся. Проводим регулярные занятия по технологии создания комментариев, а также других необходимых для надежной передачи кода для шагов «из рук в руки».
Раньше у нас была мысль брать более-менее опытных людей, которые уже делали сайты на тильде, на вордпрессе — это самая подходящая аудитория для наших аджастеров. Но теперь мы начали брать практикантов на лето из тех вузов, где есть обучение веб-дизайну. В этом году у нас 12 практикантов, они легко усваивают новые идеи, и уже видно, что стоит продолжать этот подход.
Молодые программисты, которых вы обучите работать на своей платформе, могут быстро уйти. В чем смысл?
Так в этом и суть: пусть они уходят. Закрытые системы очень плохо развиваются. В современном мире ядро продукта должно быть открытым, open source. Нужно формировать сообщество вокруг продукта, чтобы он рос и развивался.
Мы на это максимально нацелены и начинаем формирование сообщества. Веб-студии, которые захотят специализироваться в нашем направлении, легко смогут сделать это, смогут использовать наш фреймворк и тоже развивать его. У нас открытые репозитории, все желающие могут подключаться, дописывать расширения.
Наши партнеры поддерживают это, мы уже научились одновременно развивать фреймворк и сдавать готовые продукты. Многие веб-студии тоже писали свои CMS, но они конкурируют с вордпресс, Jumla и подобными решениями. Поэтому мы создали другой продукт, платформу для разработки ПО.
Лучшие инвестиции сегодня — это хорошие серьезные проекты, собранные на нашей платформе, и развитие комьюнити. Если проекты получаются безопасными, быстро работают — они займут свое место под солнцем.
Три фактора: безопасность, хорошая скорость работы и низкий порог входа по компетенциям — это основные идеи, которые мы закладываем в платформу.
В вашей презентации для CIO Awards упомянут холистический менеджмент. Что вы под этим понимаете?
Холистический менеджмент практикуем с 2012 года. Такое управление подразумевает комплексное влияние на сотрудников, системное их развитие. Еще три года мы отказались от офисов и перешли на удаленную работу. Сначала было сложно, но уже в 2017–18 году отработали инструменты взаимодействия. Мы научились дистанционно и задачи решать, и конференции проводить. Требовалось дать людям и инструменты обучения, и инструменты роста, и было это сделано. Пандемия на нашу работу уже никак не повлияла.
Мы проводим внутренние хакатоны, выделяем на это ресурсы. Регулярно проводим код-ревью. Для многих наших ребят важней всего не деньги, а люди, которые работают рядом, возможность учиться, интересный набор задач. Драйв, удовольствие от работы — это основное, ради чего мы все это делаем. Платформа — это хорошо, но люди должны получать удовольствие от того, чем они заняты. На Западе это называют холократией. Такой холистический менеджмент имеет и экономическую основу.
У нас выстроена система найма, система адаптации, когда приходят новые люди, мы проводим профориентиционное тестирование. Мы уже убедились, что действительно хорошие разработчики имеют общие черты по компетенциям. Много общаемся с каждым сотрудником, если у человека трудности — всегда можно взять выходной, передвинуть задачи. Единолично развивать бизнес очень тяжело, команда — это основа успеха, и мы создаем и развиваем именно ее.
Холистический менеджмент и командная игра
Журнал IT Manager, партнер конкурса ИТ-директоров CIO Awards, представляет участников. Как разрабатываются ИТ-инструменты для ветеринарии Евгений Кривов, CIO «Агросервис», номинация «Культура разработки».
www.it-world.ru