Как вести учёт рабочего времени, не отправляя в облако ни одного байта

Как вести учёт рабочего времени, не отправляя в облако ни одного байта

Содержание

За почти каждым продуктом учёта рабочего времени на рынке стоит молчаливое допущение: отметка сотрудника - это данные, которые нужно куда-то загрузить. Обычно в облако поставщика. Иногда с копиями в трёх регионах «для надёжности». Часто с бессрочным хранением по размытой формулировке «столько, сколько нужно для работы сервиса».

Это допущение не всегда ошибочно. Но для многих небольших организаций (стоматология, типография, районный театр, крафтовая пивоварня) оно в лучшем случае избыточно, а в худшем создаёт реальные проблемы. Поэтому вот руководство по альтернативе: как вести учёт рабочего времени так, чтобы ничего не уходило с устройства.

Сначала скучная полуюридическая часть, потом практическая настройка, потом подводные камни.

Зачем вообще обходиться без облака?

Три причины, которые мне называют, примерно в таком порядке.

Закон. Если вы работаете с биометрией (а лицо - биометрические данные почти по всем современным законам), передача её третьим лицам добавляет вам длинный список обязанностей. Проще всего их избежать, если данные вообще не покидают устройство. По 152-ФЗ, статье 9 GDPR, BIPA или CCPA «мы это никуда не передаём» - законный и понятный ответ. Письменное согласие работника в России всё равно понадобится, но вопросы о поручении обработки, локализации и трансграничной передаче просто исчезают.

Деньги. SaaS для учёта времени обычно стоит от 3 до 8 долларов за пользователя в месяц. Для команды из 15 человек это 540-1440 долларов в год, бессрочно. Примерно от 30 человек расчёт меняется, но для большинства небольших организаций вопрос звучит так: «Почему я плачу абонентку за привилегию записывать, когда пришли мои сотрудники?»

Доверие. Сотрудники не всегда понимают, как относиться к просьбе загрузить своё лицо на сервер поставщика. Кто-то слышал об исках в Иллинойсе. Кому-то это просто не нравится. Нет загрузки - нет разговора.

Все три причины не нужны. Обычно хватает одной.

Из чего состоит система без облака

Полноценный офлайн-учёт рабочего времени состоит из пяти частей:

  1. Устройство для отметок: планшет, телефон или киоск
  2. Проверка личности: лицо, отпечаток, PIN, RFID или просто список имён
  3. Локальное хранилище: место, где записи живут на самом деле
  4. Отчёты и выгрузка: обычно CSV
  5. План резервного копирования

Пятый пункт почти все пропускают. К нему вернёмся.

Устройство для отметок

В большинстве случаев это просто Android-планшет у входа. Недорогой сегмент (восстановленный Samsung Tab A8 или Lenovo Tab M9) стоит 100-150 долларов и служит годами. Подключите к розетке и забудьте про батарею.

Несколько практических советов:

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

Проверка личности

Здесь нужно решить: как человек подтверждает, кто он, перед терминалом?

PIN-коды. Проще всего. У каждого четырёхзначный код. Дёшево. Можно передать другому, и в этом вся проблема: отметка за коллегу.

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

RFID-карты или брелоки. Отличный вариант, если у команды уже есть пропуска. Слабое место - потерянные карты.

Распознавание лиц. Без рук, быстро и нельзя передать, но это биометрия со всем её юридическим весом. Если сделано правильно (только на устройстве), большая часть этого веса снимается без потери удобства.

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

Локальное хранилище

На телефоне или планшете это просто файл SQLite в закрытом каталоге приложения плюс папка с фотографиями отметок. Вся база команды из 15 человек через полгода весит, может быть, 30-60 МБ. Масштаб тут не проблема.

Что стоит проверить: записывает ли приложение отметку на диск сразу или держит в памяти и пишет потом? Буферизация в памяти - именно то, что вас подведёт, когда устройство зависнет или его выдернут из розетки. Хорошо сделанное приложение пишет на диск до того, как показать «отметка принята».

Отчёты

В 95% небольших организаций нужен CSV. Каждая строка - смена, со столбцами для имени, прихода, ухода, длительности и необязательных заметок. Вы кладёте CSV в общую папку. Бухгалтер открывает его в понедельник утром. Готово.

Всё сложнее CSV обычно означает интеграцию с зарплатной системой, а это уже настоящий технический проект, и подход «на устройстве» для него, скорее всего, не подходит. К этому вернёмся.

Резервное копирование

Эту часть все пропускают. Правило такое: если записи есть только на планшете на стене, их нет. Планшеты бьются. Уборщица выдёргивает шнур. Иногда они просто умирают во вторник утром.

Три разумных варианта:

  • Еженедельная выгрузка CSV в общую папку. Проще всего. Кто-то каждую пятницу делает выгрузку и отправляет файл в папку, которую видит бухгалтер. Если планшет умрёт, вы потеряете максимум неделю.
  • Ежедневная выгрузка для загруженных мест. Те же два нажатия, при закрытии. Имеет смысл от 20 человек, когда потерянная неделя означала бы мучительное восстановление.
  • Ежемесячный PDF в дополнение. В PDF-выгрузке есть фото прихода и ухода, так что она пригодится как доказательство, если спорная смена всплывёт уже после того, как 90-дневное окно стёрло её с устройства.

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

Замечание: резервировать агрегированные данные по сменам (CSV) нормально. Резервировать биометрические векторы, как правило, нет: это сводит на нет смысл хранить их локально.

Живой пример, коротко

Вот как устроено в стоматологии на 9 человек, которую я помогал настраивать прошлой весной:

  • Samsung Tab A8 в служебном коридоре у входа
  • Установлен FaceClock; заранее никого не заводили: каждый зарегистрировался сам при первой отметке в понедельник утром, имя и одно фото
  • Максимальная смена 12 часов; клиника почти никогда столько не работает, но это спасает, когда кто-то отметился на субботний срочный приём и забыл отметить уход
  • Автоочистка старых смен через 90 дней (по умолчанию)
  • Каждую пятницу выгрузка CSV с экрана смен прямо в папку Google Drive, которую видит бухгалтер. Вручную, два нажатия, это пункт в пятничном списке администратора клиники
  • Распечатанный лист рядом с планшетом с инструкцией на крайний случай: имя, время и инициалы от руки. За 11 месяцев не пригодился ни разу.

Итого: около 130 долларов за планшет, одно воскресенье на настройку и ноль ежемесячных платежей.

Как считать переработки, если у вас только CSV

Тут многие пугаются: «А как считать сверхурочные без админ-панели?» Ответ немного скучный: в таблице, как десять лет назад. Типичная формула:

weekly_hours = SUMIF(employee_id, [name], duration_hours)
overtime_hours = MAX(0, weekly_hours - 40)

Для России 40 часов в неделю - как раз нормальная продолжительность рабочего времени по ст. 91 ТК РФ. Но при суммированном учёте переработка считается за учётный период, а оплата сверхурочных по ст. 152 ТК РФ идёт в полуторном размере за первые два часа и в двойном за следующие. Все эти правила живут в таблице, а не в приложении для отметок. Задача приложения - дать чистый журнал смен. Расчёт - дело бухгалтерии.

Когда всё это перестаёт работать

Хочу честно сказать про масштаб.

  • Несколько точек. Если у вас три кафе и головной офис хочет видеть смены в реальном времени, офлайн-киоск на каждой точке - не та форма. Вы будете пересылать CSV по почте и жалеть, что не взяли SaaS для сетей. Точка перелома примерно на трёх точках.

  • Автоматизация зарплаты в реальном времени. Если системе графиков нужно знать прямо сейчас, что кто-то опоздал, офлайн-приложение не сможет ей об этом сообщить. Нужна интеграция через API. Большинство офлайн-приложений её не дают, и это осознанно.

  • Больше примерно 50 человек на одно устройство. Распознавание замедляется по мере роста числа зарегистрированных. 50 человек на современном железе - нормально. 200 на дешёвом планшете - нет.

  • Несколько пересменок в режиме 24/7. Больницы, заводы, любые места с тремя сменами в сутки. Можно, но работы по исправлениям (забытые уходы, подмены) становится много, и захочется централизованной картины из облака.

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

Напоследок

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

Иногда старомодный ответ оказывается и современным. Устройство у двери. CSV в конце недели. Записи, которые существуют ровно там, где вы их видите.

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

Поделиться :

Похожие статьи

Учёт рабочего времени в кафе и ресторанах: что реально работает в загруженную субботу

Учёт рабочего времени в кафе и ресторанах: что реально работает в загруженную субботу

У моего знакомого кофейня в Лиссабоне. Двенадцать сотрудников, три администратора посменно и постоянно меняющаяся команда студентов. Прошлым летом он прислал мне длинное голосовое в воскресенье в два часа ночи. Если коротко: в субботу в 11 утра в кафе упал Wi-Fi, а вместе с ним и приложение учёта времени на iPad у кассы. Четыре часа никто не мог отметиться. Никто не знал, ждать или записывать имена на салфетке. К закрытию в журнале смен были дыры в семи местах, и восстановление зарплаты за тот день съело ему почти всё воскресенье.

Читать далее