![](/_nuxt/img/cover_1920.ea03ffc.png)
Крекс, Пекс, Фекс — и платформа для самозанятых WIDU готова!
Одному кадровому агентству надоело платить комиссии и разбираться с чехардой правил на разных платформах при работе с самозанятыми. Нужен был понятный, доступный сервис, который можно будет масштабировать и за это не придется много платить. Сказано – сделано! Так, «Логема» с нуля разработала портал для работы с внештатными сотрудниками, на котором любой крупный бизнес может творить чудеса.
![цветок](/_nuxt/img/image_1920_1.e837788.png)
Сначала предыстория
В 2020 году мы разработали электронную площадку для самозанятых. Клиент получил платформу для ведения документооборота и расчетов заказчиков с самозанятыми исполнителями, которая была написана на Битриксе. После завершения проекта, мы провели ретроспективу и пришли к выводу, что 1С-Битрикс не лучшая основа для подобных систем. Чего нам не хватило:
- 1. Отсутствие «взрослых» инструментов для командной работы. В системе из коробки не предусмотрены миграции. Мы хотели масштабировать команду, но упирались в технические ограничения.
- 2. Отсутствие поддержки автотестов. Система ответственная, связана с выплатами. Хочется быть уверенным, что после очередного изменения подсистема оплат осталась работоспособной. При отсутствие автотестов, каждый раз приходится проверять вручную.
В начале 2022 к нам обратилось руководство кадрового агентства Widu за разработкой современного сервиса для самозанятых.
![Главная страница сервиса для самозанятых](/_nuxt/img/image_1920_2.b71fbab.png)
Мы продумали концепцию, предложили оптимальный, на наш взгляд, технический стек и рассказали, как наше решение позволит отказаться от использования сторонних площадок и сэкономить на комиссиях.
![Горелов Сергей](/_nuxt/img/gorelov_1920.12cbb6a.png)
![Горелов Сергей](/_nuxt/img/gorelov_1920.12cbb6a.png)
“Ранее наш клиент привлекал большое количество самозанятых на проекты для своих заказчиков — всех их приходилось настойчиво просить зарегистрироваться на популярных площадках для самозанятых. Головная боль из оправданий о том, что кто-то забыл пароль, не помнит своих учетных данных, не знает, как пользоваться сервисом целиком ложилась на рекрутеров, у которых, на самом деле, хватает своих забот. Неприятный бонус в виде оплаты комиссий площадкам тоже не нравился руководству.
Решение создать собственную платформу, которая пройдет через все официальные стадии взаимодействия с налоговой и банками лежало на поверхности. Оставалось только найти разработчиков с опытом такой работы. Ну очень большим опытом.”
Сергей Горелов,
генеральный директор компании «Логема»
Решаем бизнес-задачи кадрового агентства
- как будут взаимодействовать самозанятый и заказчик;
- как должна происходить генерация договоров между площадкой и исполнителем;
- где понадобится интеграция с налоговой и банком;
- когда, наконец, кадровое агентство получит свою комиссию.
Структурирование процесса и обратная связь от заказчика в продуктовом подходе — половина успеха. Такой универсальный язык взаимодействия помог нам на старте определиться с тем, как будут выглядеть флоу процессов:
![Как работает сервис для самозанятых](/_nuxt/img/image_1920_3.1a2cc6c.png)
- платформа должна полностью автоматизировать взаимодействие с самозанятым – от регистрации до оплаты налога. Все конкуренты уже делают так. MVP без этих процессов будет несостоятельным;
- все договоры между заказчиком и самозанятым должны были генерироваться автоматически;
- надежная интеграция с налоговой и банком, которая спокойно переживает обрыв связи;
- требовалась интеграция с банком и автоматическая оплата заданий из личного кабинета заказчика;
- функционал холдирования средств заказчика;
- нужен был автоматизированный инструмент проверки исполнителей «на самозанятость», а также проверка, можно ли им перечислить деньги за работу в данным момент;
- требовалась новая функциональность, позволяющая пользователям входить в систему по номеру телефона: для заказчика это удобная возможность получать информацию через sms, а для исполнителя — основной идентификатор в системе самозанятости;
- также клиент хотел загружать задания на сервис большим списком (т.н. «реестр заданий»). Чтобы все данные по задаче и исполнителям можно было одним кликом отправить через «реестр» и получить за это комиссию.
Источник нашей уверенности в своих силах — предыдущая работа с похожим проектом и хорошее понимание бизнес-среды клиента. Мы решили подойти к задаче с с новыми мощными инструментами DDD и GraphQL. Примерно на этом этапе у команды появилось много оптимистичных надежд и сейчас вы узнаете, почему эти надежды не оправдались.
![Машанов Павел](/_nuxt/img/mashanov_1920.ba30f0e.png)
![Машанов Павел](/_nuxt/img/mashanov_1920.ba30f0e.png)
“К созданию сервиса мы попробовали подойти, используя сразу два новых для команды подхода: DDD и GraphQL. Применение Domain-Driven Design обещало упростить моделирование предметной области, однако в реальности мы столкнулись с проблемами преобразования абстракций в конкретные форматы данных.
Иными словами, команда хотела создать решение, которое отражало бы структуру и логику работы бизнеса, а именно взаимодействие с самозанятыми сотрудниками и заказчиками. Предполагалось, что каждый аспект работы, такой как процессы найма, расчеты, документооборот и т. д., будет ясно отражен в программном коде.
На практике это привело к низкой эффективности кода и увеличению сложности разработки. Например, когда мы пытались отправить информацию о работниках в налоговую или банк, нам приходилось преобразовывать эти абстрактные представления в форматы, которые эти системы могли понять и обработать.
Что касается GraphQL — мы ожидали, что он станет удобным инструментом для получения данных, позволяя запрашивать сразу необходимую информацию с сервера (всего 1 запрос, Карл)!
На деле сложность этой штуки оказалась такой, что приходилось бороться с ней, а не с задачей. На этом этапе решили вернуться к ламповому REST, чтобы перестать кодить по ночам.”
Павел Машанов,
технический директор компании «Логема»
Эти выводы совсем не означают, что идея с DDD не найдет своего отражения в других проектах. Но совершенно точно команда «Логемы» больше не будет внедрять две новых технологии одновременно. В защиту первоначального выбора (и это тема отдельной статьи, которую мы может быть когда-нибудь напишем) скажем только, что DDD действительно хорошо себя показывает в проектах со сложной бизнес-логикой, однако добавляет слишком много накладных расходов. Если же команда на практике уже знает, как работает этот инструмент, у вас получится очень хороший код.
Фишки, которые очень нужны
![Реестр заданий в Excel](/_nuxt/img/image_1920_4.e6f79c6.png)
![Реестр заданий со списком исполнителей в ЛК сервиса](/_nuxt/img/image_1920_5.1081c2d.png)
![Реестр заданий со статусами в ЛК сервиса](/_nuxt/img/image_1920_6.7dfe3bc.png)
![Горелов Сергей](/_nuxt/img/gorelov_1920.12cbb6a.png)
![Горелов Сергей](/_nuxt/img/gorelov_1920.12cbb6a.png)
- перед обработкой данных мы проверяем файл на соответствие требованиям;
- построчно разбираем этот файл и на основе каждого задания отправляем исполнителя в очередь проверок;
- после завершения проверок, стартует импорт данных в систему — это уже безопасный процесс.
Поэтому последним этапом в каждую строку файла дописываем статус «ОК» или уточнение по проблеме.
При этом пользователь не обязан сидеть и ждать результат с открытым окном браузера. Даже если у него выключится свет и интернет, обработка на стороне сервера будет завершена и никакие данные не будут утеряны — после получения файла показываем уведомление, что обработка идет, а как только она завершится, сразу отображаем результат.”
Сергей Горелов,
генеральный директор компании «Логема»
Особенности работы сервиса
- после регистрации пользователь может выбрать роль, заполнить данные о себе;
- чтобы стать заказчиком, достаточно ввести ИНН и банковские реквизиты;
- каждое юридическое лицо может добавить в свой профиль пользователей, чтобы они могли работать от его имени (например, в ситуациях, когда директор создает профиль и поручает работу с самозанятыми своим рекрутерам).
Про сложности реализации платформы с технической стороны мы тоже обязательно расскажем — историй набралось на отдельную статью. Что касается более «типичных» проблем, с которыми мы столкнулись, они, в основном, коснулись творческого подхода дизайнеров к функциональным требованиям.
Клиент нанял стороннюю организацию, которую посоветовали мы, для отрисовки макетов, что привело к неожиданному результату:
![два дерева](/_nuxt/img/image_1920_7.73d7166.png)
Например, в готовых макетах полностью отсутствовала концепция ролей пользователей. Пришлось отталкиваться от того, что есть, дополняя макеты на лету.
Заключение
Нам интересно фокусироваться на работе с такими проектами. Это не просто пример очередной многоступенчатой сложной разработки с большим количеством окружающих процессов (вокруг продукта или с технической точки зрения), а кое-что больше. Платформы подобного рода подходят многим компаниям: тем, кто работает в аутстаффинге или аутсорсинге, рекрутерам. Для «Логемы» — это большой пул интересных и разносторонних задач, и мы заинтересованы в том, чтобы клиенты приходили к нам за разработкой схожих сервисов.
- внедрили современный стек технологий, который позволил использовать пайплайн для сборок проекта и переноса изменений на боевой сервер — нам стали доступны автотесты, которые можно прогонять 100500 раз, перед каждым переносом изменений на бой;
- протестировали несколько гипотез, связанных с новым для себя DDD-подходом;
- получили ценный опыт работы с GraphQL и сформировали свой подход к продукту.
![дерево](/_nuxt/img/image_1920_8.bc980c9.png)
- Конкуренция за квалифицированных самозанятых работников обязывает бизнес выплачивать вознаграждение быстро и своевременно, держать в штате специальных сотрудников, которые всегда будут готовы ответить на вопросы исполнителей, учитывать нюансы индивидуального подхода. Многие ли из этих опций можно закрыть, если вы используете с десяток разных платформ и бирж, а силы штатных специалистов ограничены, при этом стоимость часа их работы — высокая).
- Скоринговая система ФНС и пристальное внимание к компаниям, которые работают с самозанятыми — не байка, а реальность. Автоматизация документооборота позволяет бизнесу оперативно решать любые возникающие проблемы. Получается, что такая платформа выступает «единым окном» для компаний, это уже вопрос удобства.
У нас получилось создать сервис, интегрировать его с налоговой и банком и успешно все запустить. Заказчик получил персонализированную платформу, автоматизацию документооборота, снижение затрат на управление внештатными исполнителями, счастливых рекрутеров и возможность не платить комиссию другим сервисам. На дистанции площадка сэкономила заказчику 1 млн рублей.
![изящное решение](/_nuxt/img/image_1920_9.1b2189b.png)
Это стало возможным благодаря тому, что команда глубоко погрузилась в бизнес-процессы заказчика, на старте была продумана логика работы сервиса. Попутно мы попробовали внедрить два новых для себя подхода, но отказались от этой идеи — теперь в компании работает правило «не более одной нанотехнологии на проект».
Остались вопросы?
ул. Грушевская 10, 3 этаж
ИНН: 3460081999
КПП: 346001001
ОГРН: 1223400001208