DOU Проектор: Hurma — автоматизація HR-процесів та рекрутингу

У рубриці DOU Проектор всі бажаючі можуть презентувати свій продукт (як стартап, так і ламповий pet-проект). Якщо вам є про що розповісти — запрошуємо взяти участь. Якщо ні — можливо, серія надихне на створення власної made in Ukraine продукту. Питання і заявки на участь надсилайте на [email protected] .

Привіт всім, я Володимир Федак, CEO компанії IT Svit. Хочу розповісти вам історію створення Hurma — HRM системи, яка комбінує весь базовий функціонал для HR, рекрутингу та OKR в одній платформі.

Ідея

IT Svit створює віддалені команди для бізнесу, що працює з DevOps-технологіями та аналітикою великих даних. Коли кількість співробітників у компанії перевалила за 45, справлятися з рутинними HR-завданнями вручну стало важкувато.

Облік лікарняних і роботи з дому, нарахування та затвердження відпусток, ведення графіка співбесід, зустрічей з працівниками, підготовка звітності. Все це стало забирати левову частку робочого дня HR-фахівців, практично не залишаючи часу на проведення зустрічей 1:1 і performance review, роботи по OKR та інших завдань.

Наші ейчари отримали карт-бланш на вибір підходящої HRIS/HRMS-системи . Розглядалися як популярні на HR-ринку продукти типу Workable, Zoho HR, BambooHR, Workday, так і менш відомі системи. На жаль, деякі з них відлякали вартістю, у деяких немає російськомовного інтерфейсу, а у деяких надмірно складний функціонал. Вирішили робити систему для себе.

Застосовуючи напрацьовану в ході багатьох проектів експертизу, ми побудували внутрішній продукт для автоматизації рутинних завдань HR-відділу — Hurma , скорочено від Human Resource Management.

Розробка почалася в кінці 2017 року, реліз був у вересні 2018, зараз активно ведеться подальша розробка функціоналу системи.

Як працює сервіс

Hurma підходить для маленьких стартапів і компаній, в яких потрібно управляти великим штатом співробітників і наймати нових. Сфера може бути будь — IT-компанії, заводи, об'єкти інфраструктури, держпідприємства, будівельні концерни, рітейлери, фінанси, маркетинг.

На даний момент Hurma System надає такі функції:

Профіль кожного працівника в системі містить ключову інформацію про нього — контакти, кількість відпрацьованих днів та лікарняних, нараховані за дні відпустки та ін. Всі профілі організовані зручним списком, де можна швидко знайти будь-якого співробітника. Крім того, можна відсортувати співробітників з декількох фільтрів, знайти потрібних, перевірити статуси співробітників (хтось у відпустці, хтось на випробувальному терміні і т. д.).

Performance review — важливий функціонал для оцінки ефективності роботи співробітників і пошуку шляхи її поліпшення. Hurma system дозволяє створювати зручні шаблони анкет для таких зустрічей, планувати їх і зберігати звіти про всіх проведених зустрічах, щоб мати можливість у будь-який час перевірити прогрес співробітника.

Однією з ключових фішок системи є моніторинг настрою. Кожен співробітник при вході може вибрати один з рівнів і, якщо чимось незадоволений, — відразу вказати причину. Це зручно для компаній з сотнями співробітників, де у HR-менеджерів фізично немає можливості за день обійти всіх і поцікавитися, як у кого справи. Моніторинг настрою співробітників допомагає тримати руку на пульсі ситуації в компанії і оперативно реагувати на проблеми, що знижують продуктивність співробітників.

Ще одна важлива частина функціоналу Hurma system — робота з ієрархією цілей по системі OKR (Objectives and Key Results), що застосовується в провідних компаніях світу, наприклад в Google, Twitter і Amazon. OKR допомагає створити ієрархію цілей від самого високого рівня — всієї компанії — до цілей кожної команди і кожного окремого співробітника. Ієрархія відкрита, таким чином кожен співробітник бачить, ніж хто зайнятий і як внесок кожного впливає на роботу компанії.

Ефективність досягнення кожної мети оцінюється за кількома ключовими результатами. Це дозволяє комплексно підійти до вирішення кожного завдання. 50% цілей призначається керівництвом зверху, 50% — пропонується співробітниками знизу, що підвищує залученість і мотивацію команди. Шляхи досягнення кожної мети не регламентуються, що дозволяє співробітникові проявити креативність і компетентність у виборі способу розв'язання поставлених завдань. Цілі повинні бути амбітними і жорсткими, але не космічними, інакше пропадає глузд і мотивація намагатися досягти їх.

Крім того, Hurma System дозволяє автоматизувати обчислення, нарахування та затвердження відпусток, облік лікарняних і відряджень, запити на роботу з дому, відстеження процесу адаптації співробітників, менторство та внутрішнє навчання, річниці важливих подій в житті працівника і його сім'ї і багато іншого.

Доступно створення одноразових і повторюваних подій (мітинги, Performance review, зустрічі 1:1, різні види інтерв'ю) з розсилкою нагадування по електронній пошті їх учасникам. Розробляється інтеграція з сайтами роботи і LinkedIn для публікації вакансій в 1 клік; вже доступний імпорт резюме кандидатів з різних форматів і системи CleverStaff, доопрацьовується за запитами клієнтів та інший функціонал системи.

Більш докладно про функціонал системи можна дізнатися, подивившись нашу презентацію на Youtube . Крім того, ви можете подати заявку на надання пробної версії і своїми руками подивитися, що і як працює.

Реалізація

У розробці Hurma System зайняті ПМ, дизайнер, тимлид/full-stack девелопер, back-end девелопери, верстальник, тестувальник і DevOps-інженер.

Команда Hurma System

Станом на сьогодні стек технологій включає в себе наступні компоненти:

Проблеми на шляху до релізу

На етапі розробки продукт деплоился вручну протягом 3 годин. За цей час:

  1. Під конкретного клієнта підготовлений окремий Docker Image.
  2. Під конкретного клієнта редагувалися Kubernetes маніфести.
  3. Застосовувалися і перевірялися зміни. Йшло тестування і налагодження.

На стадії бета-тестування і видачі тріальних версій, потрібно було підтримувати 10 серверів. Для прискорення процесу релізу і забезпечення стабільності роботи складання в експлуатації був розроблений план, який складається з наступних кроків:

  1. Підготовка Docker образу з актуальною версією програми. Проводиться один раз при новому релізі. Немає специфічних для конкретного клієнта налаштувань.
  2. Підготовка шаблонів Kubernetes-маніфестів. Проводиться тільки якщо структура програми змінена за час підготовки релізу. Трапляється набагато рідше, ніж реліз.
  3. Автоматизація процесу з використанням Jenkins Pipeline.

Завдяки цьому ми змогли зменшити час деплоя з 3 годин до 30-45 хвилин.

Оптимізація процесу — з 30 хвилин до 10 хвилин

На стадії релізу у вересні 2018 кількість активних серверів стало стрімко рости, так що нам потрібно було ще більше прискорити процес деплоя оточень для нових користувачів і конфігурації/оновлення існуючих. Створення Jenkins Pipeline дозволило кількісно оцінити стадії підготовки і розгортання оточень. Були визначені найбільш затратні за часом етапи.
Найбільш довгим виявився етап завантаження бібліотек і модулів. Так як залежності змінюються рідко, вони стали готуватися і зберігатися окремо від основного процесу складання і підключатися тільки в момент, коли повинна була виконуватися завантаження цих компонентів. Після створення локального кеша бібліотек, час підготовки оточення скоротилася до 10 хвилин.

Робота в експлуатації — з 10 хвилин до 1 хвилини

Система Hurma активно розробляється, ми регулярно додаємо новий функціонал, і виникла необхідність у більш швидких релізах нових версій. Багато оновлень зачіпають бази даних, і необхідність застосовувати їх у правильному порядку стала наступним bottleneck'ом, який необхідно було виправити.

Використання Jenkins Pipeline дозволило визначити оптимальний шлях вирішення і цієї задачі. Був застосований механізм міграцій для забезпечення прозорості та легкості застосування змін, як для операцій з початкової підготовки бази даних при оновленні, так і при зміні схеми бази даних.

Таким чином, ми отримали уніфікований підхід до оновлення бази даних. Спростився процес оновлення оточень. Пропала необхідність мати версію бази даних специфічну для кожної версії програми. Будь-яку версію оточення стало можливим оновити до будь-якої нової версії. Це дозволило скоротити час запуску нового оточення до 5 хвилин, а оновлення до 1 хвилини.

Усунення рутини і human mistakes

Наступним кроком стала повна автоматизація процесу оновлення багатьох десятків (а потім і сотні) оточень. Процес оновлення займає 1 хвилину, але для сотні оточень, його треба було повторити сотню разів. Задавати вручну всі необхідні параметри стало дуже довго і нудно. Через монотонність процесу могла підвищитися ймовірність людської помилки.
Вихід — автоматизація та Infrastructure as Code.

Так, як Jenkins Pipeline для підготовки одного оточення вже готовий і добре себе зарекомендував, залишалося тільки підготувати рішення щодо запуску цього pipeline для декількох оточень автоматично. Для цього було створено додатковий Jenkins Pipeline, який брав інформацію про бажаному стані системи контролю версій (Version Control System). Використання Jenkins і Kubernetes дозволило не тільки запускати оновлення декількох оточень за раз, але і робити це паралельно, заощаджуючи при цьому величезна кількість часу.

Плани на майбутнє

Ми працюємо над подальшим прискоренням і формалізацією деплоя системи Hurma. Всі компоненти, які специфічні для оточення і залишаються незмінними протягом релізу увійдуть до складу Docker Image, тим самим прискоривши процес підготовки оточення ще більше.

Для удосконалення та уніфікації шаблонів починаємо використовувати Helm. Використання інструментів з великим співтовариством дозволяє набагато ефективніше масштабувати оточення і полегшує онбординг нових учасників в команду.

Кожен новий клієнт Hurma system запитує функціонал, який потрібен конкретно їм. Найбільш популярні запити стають основою для нових функцій системи. Наприклад, ми отримували багато запитів з управління робочим часом персоналу — облік лікарняних, автоматизація нарахування відпусток, управління роботою з будинку або надання відпусток за свій рахунок.

До того ж ця тематика була актуальною для IT-шників за результатами опитування DOU длярейтингу українських ІТ-компаній в 2018 . Найяскравіші коментарі увійшли в статтю «Глас народу» , і ефективність управління лікарняними і відпустками виявилася гострою проблемою. А в Hurma system цей функціонал вже реалізований і доступний в березневому релізі системи.

Крім цього, нещодавно HurmaSystem тестувала авторитетна компанія в сфері HR та рекрутингу — UCG. Перша і друга частини їх огляду були опубліковані в ФБ-співтоваристві «HR і рекрутери. Україна» і підтвердили необхідність впровадження другого найбільш частого запиту від наших клієнтів — розширення можливостей рекрутингу та інтеграції з різними порталами робіт. Робота над цим зараз ведеться, і цей функціонал Hurma System запланований до випуску на квітень.

Висновки

За півроку, що минули з дати релізу, кількість наших клієнтів перевищила 120 і в черзі перебуває понад 700 заявок. У нас з'являються перші клієнти і партнери в інших країнах — у Республіці Білорусь, Казахстані і Узбекистані. На підставі запитів від клієнтів і у відповідності з довгостроковою стратегією розвитку йде доопрацювання системи та впроваджуються нові функції.

Trial-версія Hurma System доступна безкоштовно на тиждень. До того ж компанії з штатом до 15 осіб можуть користуватися нею безплатно, в обмін на доступ розробників до статистики по використанню системи. Це допомагає нам більш ефективно допрацьовувати функціонал продукту.

Ми сподіваємося, що Hurma System стане надійним інструментом для HR-менеджерів та керівників у вашій компанії. Будемо раді зауважень і пропозицій з доопрацювання системи!

Опубліковано: 18/04/19 @ 10:07
Розділ Різне

Рекомендуємо:

Чим займається Developer Advocate та чому ця позиція непопулярна в Україні
Реаліті: інфо-сайт, звіт #2 (промокод на 1000 крб на контент всередині)
Job interview in English: як готуватися і що відповідати
C++ дайджест #14: Graphics API OpenGL, DirectX, Vulkan, Metal
Проектування retry обгортки для функцій на Swift