Блог

Полезные статьи и новости о жизни WaveAccess

Всегда предлагаем осмысленные решения: Интервью с Ильей Фейгиным. Ч.1

В апрельском номере издания для ИТ-руководителей CIO Applications вышло интервью с основателем и техническим директором WaveAccess Ильей Фейгиным. Илья раскрывает подход WaveAccess к реализации проектов – метод "гибридных команд", рассказывает о технологиях и методологиях проектного менеджмента, которые используются в компании, и делится лайфхаками, как сделать процесс разработки максимально эффективным.

Ilya Feigin

Илья Фейгин, основатель и технический директор WaveAccess

Как ИТ-компании заявить о себе и быть успешной на конкурентном рынке

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

Приведу пример. Когда мы боролись за один крупный заказ, основными критериями выбора подрядчика стали наличие у команды компетенций по реализации микросервисной архитектуры, знание практики BDD (Behavior-driven development, дословно "разработка через поведение"), умение эффективно применять DevOps и наличие "гибридной" команды. Мы оказались единственным кандидатом, который отвечал всем этим требованиям, и контракт достался нам.

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

Custom Software Development_1

Что касается BDD, то реализация такого подхода – это, безусловно, дополнительные усилия по сравнению с классической разработкой, когда описываются техтребования, а программист реализует их в соответствии со своим пониманием. Также будет справедливым сказать, что немногие компании-разработчики освоили BDD в такой степени, что все члены команды могут эффективно пользоваться инструментом.

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

Использование практики DevOps – еще одно конкурентное преимущество для компании, работающей на рынке кастомной разработки ПО. Оно позволяет полноценно реализовывать непрерывную интеграцию и непрерывную доставку (особенно это удобно, когда есть несколько окружений, где новая функциональность становится доступной одновременно). Но чтобы сегодня эффективно применять DevOps, нужно было "запрыгнуть в поезд" еще три года назад. Серьезные технологические изменения происходят каждые 2-3 года, поэтому жизненно необходимо всегда держать руку на пульсе.

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

Мы в WaveAccess добиваемся этого несколькими способами:

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

Custom Software Development_2

Подход WaveAccess к реализации проектов

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

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

Хорошая практика в плане отработки модели взаимодействия, к которой мы часто прибегаем, – начать с реализации независимой и не слишком масштабной части функциональности. Это может быть разработка модуля, экрана, компоненты, сервиса.

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

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

Существует еще один способ оптимизации затрат на проект. Есть типичные направления разработки, профессионалов в которых много и которых легко найти на любом локальном рынке. Например, Java-разработчики востребованы почти в любом современном проекте и часто уже присутствуют в команде заказчика. Мы же обычно расширяем команду заказчика в направлениях архитектуры, настраиваемого пользовательского интерфейса и практики DevOps. Это дорогостоящие и более редкие специалисты, услуги которых на местном рынке могут стоить на порядок больше. К тому же, по некоторым направлениям, таким как создание архитектуры или машинное обучение, в нашей компании есть по-настоящему уникальные специалисты. Самостоятельный поиск таких профессионалов со стороны заказчика не будет экономически оправдан.

Читайте продолжение в следующем блогпосте. Во второй части интервью – что отличает WaveAccess от конкурентов, какова роль встроенной возможности кастомизации в жизненном цикле продукта. 

Полная версия интервью на английском опубликована на сайте CIO Applications.

Хотите больше узнать о том, как мы реализуем проекты?

Мы расскажем!

Свяжитесь с нами: hello@wave-access.com

Заказать звонок

Удобное время:

Отменить

Пишите!

Присоединить
Файл не больше 30 Мб.
Отменить