Как происходит управление блокчейн-проектом: взгляд изнутри

Игорь Павлов
Игорь Павлов

Руководитель группы разработки Waves Node

Расскажите друзьям
Софья Федосеева

Блокчейн – технология относительно новая. У ИТ-компаний еще недостаточно опыта для создания продуктов по накатанной. Поэтому со многими моментами – постановкой целей, тестированием, организацией работы – приходится разбираться в процессе работы. 

Игорь Павлов, руководитель группы разработки Waves Node, рассказывает о том, как происходит создание блокчейн-продукта, кто помогает в его тестировании и каким образом распределяются задачи в команде.

По моему опыту, разработка блокчейн-проекта происходит по тем же принципам, что и разработка любого другого в сфере IT.

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

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

Также из-за относительной новизны технологии еще нет достаточного количества реализованных проектов и готовых частей кода, а значит, часто приходится все делать с нуля.

О чем следует помнить при выборе облачного хранилища: истории компаний

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

Голосование таким образом занимает около недели – столько требуется для генерации десяти тысяч блоков в блокчейне (то есть обновления информации у всех нод – участников блокчейна). Если 80% из них содержат ответ «за» обновление, после генерации следующих десяти тысяч блоков оно вступит в силу.

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


Структура компании

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

Сейчас мы работаем над организацией взаимодействия между разработчиками из разных команд. Для оптимизации всех процессов в Waves формируется отдел R&D (Research & Development – НИОКР).

Фото: архив автора

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

На основании этой аналитики принимается решение о том, создаем ли мы тот или иной продукт и с каким приоритетом. Так, помимо организации собственной работы, мы вносим вклад в формирование рынка ПО на основе технологии блокчейн.


Тестирование

Код Waves открыт, в процессе разработки он постоянно обновляется на Github (веб-сервис для хостинга IT-проектов). А при выходе обновлений платформы, когда весь код отлажен, протестирован и готов к работе, мы называем это новой версией и информируем комьюнити, используя наш официальный форум, а также каналы в Discord и Telegram.

Обычно тестирование прототипов происходит внутри организации-разработчика ПО. Технология блокчейн предполагает другой алгоритм.

  1. Сначала мы пользуемся силами собственных тестировщиков: интеграционные и unit-тесты, а также все прочие атрибуты обычного тестирования. 
  2. Далее выпускается релиз на TestNet.
TestNet является аналогом основной блокчейн-сети (MainNet), только в нем не используются оригинальные токены WAVES и можно опробовать новую функциональность в боевых условиях, максимально приближенных к реальности, не рискуя при этом реальными активами.

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

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


Кадры

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

К тому же для разработки блокчейна необходимо знать принципы его архитектуры.

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

Мы уже выяснили на собственном опыте, что способный разработчик быстро учится работе с блокчейном.


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

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

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

Иногда пользователи прямо говорят в нашем сообществе о своих проблемах, иногда Product Owner находит в интернете обсуждение вопроса. Также на разработку продукта влияет визионер, который общается с коллегами по отрасли (в нашей ситуации – Александр Иванов, основатель и генеральный директор Waves).

Фото: архив автора

Product Owner изучает все пожелания и превращает их в конкретные задачи. На один спринт берется фиксированное количество задач в соответствии с их приоритетом.

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

По результатам выполнения задач в конце спринта должна произойти эволюция продукта. Обновленная версия демонстрируется Product Owner, клиенту или комьюнити, которые дают обратную связь. Таким образом, становится понятно, куда двигаться дальше.


Как управлять командой разработчиков

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

В части управления и планирования Scrum предполагает оценку сложности решения задач в Story Points (абстрактная единица измерения, имеющая смысл для конкретного проекта) и определение сроков разработки с учетом скорости команды (Velocity).

Учитывая, что все итерации мы делаем одинаковой длины, можно оценить, сколько команда реально успевает сделать за фиксированный отрезок времени (например, за две недели).

В методологии Scrum центральное действующее лицо – самоорганизующаяся команда профессионалов. Команду формирует руководитель направления (Product Owner), исходя из навыков сотрудника.

Иногда в процессе работы мы переводим работника в более интересный для него отдел или даже выделяем под него новое направление и набираем команду. Таким образом у нас появился отдел по разработке альтернативной версии ноды на языке «Go», а также игровое подразделение.

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

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

Фото: архив автора

Команде помогают два героя. 

  1. Product Owner обладает видением и пониманием конечного продукта, так как общается с заинтересованными сторонами, а также исследует рынок и инновации. Он должен подробно объяснить команде особенности желаемого продукта. Он расставляет и корректирует приоритет задач. Здесь важны навыки исследователя, аналитика-маркетолога и менеджера. 
  2. Scrum Master – это специалист, который обучает команду взаимодействию и оптимизирует процессы. Обычно он – лидер команды, но не руководитель в традиционном понимании этого слова. Поскольку опыт работы с блокчейн-технологиями еще небольшой, для управления процессом разработки ему необходимо четко понимать потребности рынка, изучать наработки коллег, быть в курсе новостей, прогнозировать и тестировать идеи.

Как оценивать и мотивировать разработчиков

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

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

Фото: архив автора

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

Есть и материальное поощрение. Ежеквартально проводится перформанс-ревью, когда команда оценивает вклад каждого участника. По его результатам, руководитель принимает решение о премировании или, например, переводе сотрудника на другую должность.


Материалы по теме:

Блокчейн позволяет ритейлерам проверять качество мяса. И вот как

«Поезд блокчейн-проектов точно еще не ушел»

Как ООН использует блокчейн для помощи беженцам

60 проблем, которые может решить блокчейн

«Не относитесь к криптокомьюнити и блокчейну как к бесплатным деньгам без обязательств»

Фото на обложке: архив автора


В нашем Instagram @rusbase сегодня есть на что посмотреть! Подписаться

Нашли опечатку? Выделите текст и нажмите Ctrl + Enter

‡агрузка...

Комментарии

Зарегистрируйтесь, чтобы оставлять комментарии и получить доступ к Pipeline — социальной сети, соединяющей стартапы и инвесторов.
EMERGE
4 июня 2019
Ещё события


Telegram канал @rusbase