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

За последние пять лет «Диасофт» накопил значительный опыт в построении эффективного производства. Компания достигла впечатляющих результатов — эффективность возросла в 10–15 раз. Применение опыта «Диасофт» позволит даже очень зрелому производству программных продуктов многократно улучшить свои результаты.

Что такое эффективное производство ПО

Современное производство программных продуктов

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

Не менее важно правильно организовать командную работу: примеров, когда модный сегодня Agile стал причиной развала производства предостаточно. Нужна методика оценки трудоемкости работ, в основе которой — не субъективные, а понятные, измеряемые показатели. Команды должны создавать не просто код, а реальную ценность для бизнеса. Эффективность их работы необходимо постоянно измерять и вовремя принимать меры, если она снижается.

«Эффективность является для вендоров жизненно важным вопросом. В «Диасофт» в процесс создания эффективного производства вовлечены все инженеры —  более 1 000 специалистов (архитекторы, аналитики, разработчики, тестировщики и другие). Они занимаются не только разработкой бизнес-приложений для клиентов компании, но и развитием 32 платформ для организации эффективного производства, входящих в экосистему цифровой трансформации Digital Q. Наше производство абсолютно измеряемо — ведь только так им можно управлять. Мы измеряем более 100 параметров и представляем результаты измерений всем участникам производства программных продуктов. Возглавляет процесс создания эффективного производства лидерская группа с максимальным опытом в этой области в нашей компании. За последние три года качество продуктов «Диасофт» повысилось более чем в 10 раз», — рассказывает Александр Глазков, управляющий директор компании  «Диасофт».

«Диасофт» аккумулировал опыт построения эффективного производства в экосистеме цифровой трансформации Digital Q. В нее входят производственные, технологические, инфраструктурные и кросс-продуктовые платформы. Экосистема открыта для расширения — уже сегодня участники рынка могут внести существенный вклад в ее развитие и обогатить ее новыми платформами собственной разработки.

Современные требования к ПО

Как увеличить эффективность производства ПО в 10 раз

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

«За многие годы мы создали огромное количество инструментов, с помощью которых можно снизить стоимость производства. Они собраны на 32 платформах. Среди них 10 производственных — благодаря им можно во много раз повысить эффективность работы», — говорит Сергей Ломака, главный архитектор компании «Диасофт». Производственные платформы помогают наладить по-настоящему эффективное производство — быстро и с минимальными затратами создавать качественные решения и выпускать их на рынок. Это платформы, с помощью которых автоматизируются процессы управления производственными командами, разработки, тестирования и выпуска необходимых бизнесу решений.

Кроме производственных платформ, в экосистеме Digital Q есть 10 технологических low-code платформ. Благодаря таким платформам инженеры могут сфокусироваться на создании бизнес-кода, а не тратить время на технические задачи. Low-code платформы позволили компании «Диасофт» существенно снизить трудоемкость разработки и повысить качество разрабатываемых решений в микросервисной архитектуре.

Как правило, low-code платформы жестко привязаны к вендору. Главное преимущество low-code платформ в экосистеме Digital Q заключается в том, что несмотря на то, что проектирование идет на уровне метаданных, фактически генерируется код на различных языках программирования — Java, Python, Go, C/C++, JavaScript — а это значит, его можно забрать в любой момент времени и развивать самостоятельно, то есть не быть зависимым от вендора.

Как эффективно и системно управлять командами разработки

Календарь ускорения производства

Для организации эффективного производства важно научиться управлять командами разработчиков. Статистика говорит, что на создание полезного для бизнеса кода разработчики тратят не более 30% времени — остальное занимают консультации, согласование решений, исправление ошибок. В компании «Диасофт» удалось увеличить этот показатель до 60%. 

Решение любой задачи разбивается на типовые работы, для которых экспертами с учетом степени сложности прописаны нормативы в человеко-часах. Виджет нормирования встроен в Jira — это дает возможность производить разбиение на работы до начала реализации, а затем указывать потраченные часы. Соответствие работ составленному в первый день плану постоянно контролируется. Оценить эффективность работы помогают дашборды, на которых содержится около 100 параметров. Команды участвуют в рейтинге — чем быстрее они решают задачу, тем более высокую позицию занимают. 

К спринтам подключены системы автоматизированной проверки кода, которые показывают, что можно улучшить прямо сейчас. Разработаны показатели оценки спринтов, которые помогают быстро находить узкие места. «Только благодаря этому нам удалось ускориться в 2 раза, — говорит Наталия Оржевская, директор центра управления производственными командами компании «Диасофт». — Потом надо смотреть, как одну и ту же типовую работу делают разные люди, и подтягивать медленных к быстрым — здесь мы ускорились еще в 3 раза». Формировать и развивать Scrum-команды помогают коучи — они наблюдают за их работой, участвуют в обсуждениях и в случае необходимости оказывают поддержку.

Как организовать непрерывную доставку и развертывание ПО

Важный показатель эффективности производства ПО — скорость выпуска новых релизов. «Еще 5 лет назад выпуск нового релиза занимал месяц и более, сейчас можно делать это каждый день и даже час», — говорит Александр Захаров, директор департамента по инструментам и технологиям выпуска версий и тестирования компании «Диасофт». 

Добиться этого удалось благодаря технологиям — команды больше не думают, где взять стенд и как развернуть на нем приложение. Они используют DevOps-конвейер на всех этапах: от момента получения кода до его автоматического развертывания. Процесс выполняется внутри каждого шага так, как задумано; образы доставляются не только внутри, но и через границы предприятия; все процессы происходят в соответствии со сценариями.

Разработано 28 маркеров, свидетельствующих о правильной работе DevOps-конвейера. В случае отклонения реального показателя от заданного для выяснения причины требуются минуты. Предлагаемое компанией «Диасофт» решение легко дополняется необходимыми параметрами.

 

Опыт компании «Диасофт»

  • 2 часа длится полный цикл работ для типичного приложения из пяти микросервисов — от сборки до развертывания на стороне клиента.
  • 2 500 развертываний приложений в день для 100 команд разработки, работающих в 200 проектах и разрабатывающих 300 приложений.
  • 5 минут занимают сборка и создание индивидуального стенда разработчика для проверки сделанного коммита.

Как быстро и качественно создавать решения в микросервисной архитектуре

И, конечно, цифровая трансформация не могла не затронуть процесс создания бизнес-решений. Для начала, надо определиться с его архитектурой: будет ли она монолитная, сервис-ориентированная (SOA) или микросервисная. Лучше всего разбить решение на автономные блоки, которые можно создавать параллельно. При этом разработчики должны минимально зависеть друг от друга. «Для этого существуют микросервисы. Однако важно взглянуть на процесс разработки глазами бизнеса, которому хотелось бы как можно быстрее получить ощутимый результат. А значит, придется создавать не просто микросервисы, а отдельные PBC-приложения — цифровые двойники бизнес-процессов», — говорит Дмитрий Старов, директор департамента по инструментам и технологиям разработки компании «Диасофт». 

Packaged Business Capabilities (PBC) — функционально законченное бизнес-приложение, состоящее из нескольких микросервисов. PBC закрывает конкретную бизнес-потребность пользователя, создается одной командой для разных каналов.

PBC-блоки должны быть компонуемыми: легко встраиваться в ИТ-ландшафт благодаря возможности синхронного и асинхронного взаимодействия через API и события, и омниканальными. Эффективность их разработки напрямую зависит от того, насколько детально прописан порядок взаимодействия между командами. Для генерации типового кода лучше использовать low-code платформы — это позволит сэкономить на услугах программистов и снизить количество ошибок. «80% задач можно сгенерировать заранее», — уверен Дмитрий Старов. DevOps и контейнеризация позволят автоматизировать процесс сборки, тестирования, выпуска и поставки контейнеров с программными артефактами, готовыми к немедленной работе. А ведение реестров выпущенных ценностей обеспечит реиспользование и легкую интеграцию.

Создавать PBC-приложения или их отдельные части, обеспечивать и поддерживать производственный цикл: проектирование, генерацию кода, запуск DevOps, помогают специально разработанные платформы. Платформенный подход обеспечивает высокое качество, низкую стоимость доработок и высокую производительность итогового решения.

«Эффективность производства можно увеличивать не только с помощью технологий. Очень важна осознанность — люди должны понимать, зачем они работают и какой вклад вносят в общее дело, — подчеркивает Александр Глазков. — Еще 3 года назад эффективное производство было для нас целью, для достижения которой надо было пройти долгий и тернистый путь. Сейчас мы четко знаем, какие шаги надо предпринимать, чтобы добиваться поставленных задач, и готовы делиться своим опытом», — резюмирует Александр Глазков.

Узнать больше об экосистеме цифровой трансформации Digital Q

Смотреть видео Diasoft Special Conf «В ритме цифровой трансформации»