HR-блог про IT рекрутинг от ИТ Кадрового агентства

Разработчик SaaS: где и как его найти

Знаете ли вы, что индустрия программного обеспечения как услуги (SaaS) сейчас стоит более 144 миллиардов долларов? Он тоже растет, как бамбук, со скоростью более 25% в год. Неудивительно, что многие молодые единороги предпочитают пастись на этом зеленом пастбище SaaS. Итак, что вам нужно, чтобы присоединиться к гонке?
Деловая хватка — одна из составляющих формулы. Но создание приложения SaaS — работа не для одинокого волка. Каждому основателю нужна отличная команда разработчиков SaaS, чтобы добраться до вершины пищевой цепочки. Но кого нужно иметь в такой команде?
Разработчик SaaS — загадочный зверь. Многие утверждают, что видели их, но лишь немногие понимают, чем именно они отличаются. Итак, вот краткое руководство для программистов SaaS от технического директора компании- разработчика SaaS (и большого поклонника документальных фильмов о природе!).

Экосистема: что такое приложения SaaS?

Представьте себе бескрайнее зеленое пастбище, полное дивных единорогов. Stripe, Canva, Revolut — все это SaaS-бизнесы. Но когда вы просите людей точно описать, что такое SaaS, вы часто получаете пустой взгляд. Это не просто бизнес-модель , в которой пользователи платят за подписку в обмен на цифровую услугу. Гибкость, экономическая эффективность, надежность и регулярные автоматические обновления — все это отличительные черты решений SaaS . Следовательно, большинство приложений SaaS имеют следующие технические характеристики:

Многопользовательская архитектура

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

Простая настройка

У разных арендаторов могут быть совершенно разные требования. Вот почему простая настройка так важна, особенно для приложений B2B и B2B2C.
Возьмем, к примеру, Choo i Skyen — специализированную систему SaaS CRM и систему управления членством, которая обслуживает десятки сообществ и бизнес-ассоциаций в скандинавском регионе. Каждая из этих организаций имеет различную структуру и потребности в членстве, поэтому приложение имеет широкие возможности настройки:
  • Веб-портал с настраиваемым дизайном для каждого арендатора.
  • Простой способ настроить иерархические структуры для участников. Вы можете группировать пользователей по местоположению, интересам, отделам и так далее. Приложение поддерживает вложенные роли и права пользователей.
  • Премиум-функции, такие как расширенные отчеты о платежах, которые скрыты от большинства арендаторов.
  • Возможность скрыть дополнительные функции, если арендатору они не нужны и так далее.

Единый вход (SSO)

Типичное предприятие использует более 140 различных решений SaaS. Внедрение единого входа позволяет сотрудникам войти в систему один раз и использовать все свои авторизованные системы.

Высокая доступность

Если вы хотите, чтобы вашу систему SaaS использовали несколько арендаторов, она должна быть доступна круглосуточно и без выходных. Многие SaaS-компании стремятся обеспечить доступность на уровне 99,9%.

Автоматическая подготовка

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

Высокая масштабируемость

Трафик SaaS может значительно различаться и иметь непредсказуемые всплески. Чтобы сократить расходы, ваша инфраструктура должна автоматически увеличивать или уменьшать вычислительные ресурсы, доступные для использования.

Ограничение скорости и качество обслуживания

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

Журналы аудита

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

Виды: как выглядит хороший разработчик SaaS?

Когда дело доходит до сложных навыков, большинство разработчиков SaaS-компаний ничем не отличаются от обычного инженера-программиста. Вам просто нужно убедиться, что они знают важные вещи (о которых я расскажу ниже). Тем не менее, если вы хотите добиться успеха в качестве SaaS-компании, вам нужно найти людей с тем, что я называю продуктовым мышлением .

Навыки SaaS-разработчика

Итак, давайте рассмотрим ключевые технические навыки программиста SaaS.

Понимание современных архитектурных моделей.

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

Уверенное понимание фреймворков фронтенд-разработки

Не существует универсального решения, когда речь идет о выборе технологии для разработки решений SaaS. Каждый проект отличается. У каждой компании разные функциональные и нефункциональные требования, которые определяют оптимальный стек технологий для проекта. Кстати, если у вас возникли проблемы с выбором оптимального стека технологий для вашего проекта, я настоятельно рекомендую воспользоваться консультацией по разработке SaaS от MindK.
Для начала разработчик SaaS должен знать некоторые фреймворки и библиотеки, используемые в приложениях SaaS. Обычно выбор сводится к Vue vs React или Angular. В то время как первые две технологии отлично подходят для B2C SaaS, Angular почти обязателен для крупных корпоративных проектов, таких как CemaSYS . Это мощный и современный фреймворк с безошибочной структурой для проектов SaaS прямо из коробки.
Чтобы внести свой вклад в ваш проект, инженер SaaS также должен иметь практический опыт создания высокодоступных и доступных приложений.

Опыт разработки бэкенда и API

Когда дело доходит до бэкенд-разработки, выбор намного шире. Многие приложения SaaS используют Java, Python и даже PHP (вздох) в качестве основного языка на стороне сервера.
Node.js также имеет массу фреймворков, которые используются при разработке продуктов SaaS . Минималистичный Express.js несколько уступил свою популярность NestJS. Такие фреймворки имеют множество мощных архитектурных решений прямо из коробки. Он заимствует у Angular три базовых компонента — провайдеры, контроллеры и модули. NestJS использует последний для решения проблем со сложной архитектурной иерархией. Поскольку NestJS имеет много общего с Angular, инженеры SaaS могут легко переключаться между бэкендом и интерфейсом.
API играют огромную роль в разработке SaaS. Они позволяют микросервисам взаимодействовать друг с другом и интегрировать ваше приложение со сторонними системами.
Это одна из причин, почему нам нравится использовать подход API-first , при котором вы строите все приложение вокруг его API. Для этого разработчик SaaS должен знать:
  • Протоколы API, такие как Representational State Transfer ( REST ), Simple Object Access Protocol ( SOAP ), Google Remote Procedural Call ( gRPC ) или язык запросов Graph ( GraphQL ).
  • API-first design (разработка API на основе потребностей целевых разработчиков).
  • Фреймворки API (например, NestJS, AdonisJS, Express.js).
  • Форматы данных JSON/XML.
  • HTTP/HTTPS, основной транспортный протокол, используемый API.
  • Меры безопасности API, такие как методы контроля трафика OAuth2 и OpenID и API.
  • Глубокое понимание масштабируемости и гибкости приложений.

Навыки управления базой данных

Не существует базы данных, которая подходила бы для всех вариантов использования на рынке SaaS. Во многих случаях разработчики программного обеспечения объединяют каждый микросервис с отдельной базой данных (БД), оптимизированной для выполнения поставленной задачи. Поэтому программист SaaS должен знать как современные реляционные базы данных (MySQL/PostgreSQL), так и нереляционные БД (MongoDB/ ArangoDB ).

Глубокое понимание безопасности веб-приложений и внимание к качеству

В отличие от ваших обычных веб-приложений, программные продукты SaaS требуют частых обновлений (для проверки идей и удовлетворения клиентов). Это сокращает циклы тестирования, увеличивает потребность в автоматизации и поднимает планку для разработчиков.
Приложения SaaS также имеют более широкие возможности настройки для арендаторов, что увеличивает количество сценариев тестирования. Качество обслуживания становится серьезной проблемой, поскольку многие арендаторы имеют совершенно разные ожидания от приложения. Вот почему хороший инженер SaaS будет обращать внимание на качество приложения с помощью таких методов, как разработка через тестирование (TDD) и тому подобное.
Им также необходимо иметь четкое представление о безопасности веб-приложений. Для этого разработчики программного обеспечения SaaS должны иметь опыт работы с различными службами и инструментами аудита безопасности, такими как SonarQube, Wapiti и Arachni.

Знание облачных вычислений

SaaS живет в облаке. Существует множество современных платформ, таких как Amazon Web Services (AWS), Microsoft Azure и Google Cloud Platform (GPC). Каждый из них имеет множество функций, которые необходимо учитывать при создании приложения SaaS.
Поэтому, если вы работаете с AWS, ваши разработчики должны знать:
  • AWS Lambda для бессерверных вычислений.
  • AWS Aurora, RDS, DynamoDB, DocumentDB для облачных сервисов баз данных.
  • AWS Cognito для аутентификации пользователей.
  • AWS S3 для хранения данных.
  • API-шлюз для разработки API.
  • Простая служба очереди (SQS) для организации очереди сообщений.
  • Простая служба уведомлений (SNS) для push-уведомлений.
  • Простая служба электронной почты (SES)
  • CloudWatch для мониторинга и ведения журнала.

Продуктовое мышление и социальные навыки

Компании SaaS похожи на маленьких черепашек. Статистика показывает , что SaaS-компании с CAGR 20% имеют коэффициент выживаемости всего 8%. Так что вам нужно быстро расти или рискнуть быстрой смертью. В отчете Growth Hackers за 2021 год отмечается, что рост остается главной проблемой для большинства пользователей SaaS. Чтобы расти на упакованном рынке SaaS, вам необходимо создать команду с сильным мышлением о продукте.

Гибкое и бережливое мышление при разработке

Мышление продукта — это, прежде всего, успех в среде Agile.
Очень немногие инженеры имеют опыт работы в действительно межфункциональных командах. Это означает, что если у ваших разработчиков нет задач на сегодня, они должны помочь QA-инженеру закончить их тесты или тесно поработать с дизайнерами над UX продукта. Такой подход требует гибкого мышления. Вашим разработчикам должно быть комфортно выполнять широкий круг обязанностей в команде.
Однако Scrum не для всех. У него нет менеджеров проектов, которые бы присматривали за разработчиками, поэтому Agile работает только со зрелыми и опытными командами. Каждый член команды должен взять на себя ответственность за весь проект и уделять внимание работе своих товарищей по команде.

Сотрудничество и работа в команде

Мышление о продукте также связано с отличными навыками межличностного общения. В Agile-командах не может быть ситуации, когда владелец продукта разговаривает только с менеджером проекта, а инженеры молча сидят на заднем плане. Отличные разработчики SaaS — это ответственные работники, хорошие коммуникаторы и технические консультанты, которые могут работать с несколькими заинтересованными сторонами.

Отношение к пользователю

Разработка продуктов SaaS связана с ростом. Многие SaaS-компании используют так называемую метрику North Star Metric (NSM) для отслеживания устойчивого роста. Это единая метрика, отражающая основную ценность вашего продукта для целевых пользователей.
Чтобы улучшить NSM, разработчикам SaaS необходимо хорошо понимать ваших самых лояльных клиентов. Удовлетворение таких пользователей является ключом к росту SaaS. Таким образом, отличный инженер SaaS — это не просто человек, который пишет эффективный код. Это высококвалифицированные специалисты с ориентированным на пользователя мышлением, хорошим пониманием лучших практик UX и вниманием к деталям .

Заключение

Разработчик SaaS — увлекательный вид. Это не просто квалифицированные инженеры, умеющие писать эффективный код. Хорошие инженеры SaaS — настоящие стартаперы. Они живут и дышат, чтобы приносить больше пользы вашим клиентам.
Наше ИТ кадровое агентство предлагает вам найти разработчиков менее чем за 2 недели. Свяжитесь с нами сегодня, чтобы узнать больше о том, как мы можем помочь масштабировать ваш следующий проект до новых высот. Мы гарантируем поиск самого сильного, а не самого дорого кандидата. За 10 лет в подборе it специалистов, мы закрыли 5500+ вакансий и собрали 25+ команд с нуля. Убедитесь сами и ознакомьтесь с отзывами клиентов о нашем рекрутинговом агентстве! Нужно больше референсов? Напишите нам в телеграмм.