Код
#статьи

Око Саурона в IT: почему программисты за приватность и против тайм-трекеров

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

Иллюстрация: Ken Rockel / WikiMedia Commons / Colowgee для Skillbox Media

Сергей Гречишников

об эксперте

Android-разработчик, пишет на Kotlin и Java. В свободное время занимается проектами в команде Blurred Technologies, организовывал студенческие конференции, митапы и воркшопы для начинающих программистов. С ребятами из Blurred Education сотрудничал с GitHub в рамках программы Hack Club.


Ссылки


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

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

Трекер умел снимать скриншоты экрана, но родители этим не злоупотребляли — начали следить, когда я научился взламывать Time Boss. А я нашёл способ сделать так, чтобы эта программа не запускалась и я мог играть дольше.

Во второй раз трекеры были уже на работе. В 2017 году я поступил в университет на факультет информатики и вычислительной техники. Спустя пару лет подучил Kotlin с Android и устроился в новосибирскую IT-компанию с коллективом в 20 человек.

На первой работе у нас было два направления — в аутсорсинговом фирма делала крупную систему для серьёзного заказчика, а в продуктовом занималась приложением Skill — мобильным фитнес-трекером для сноубордистов и лыжников.

Хоть я был Android-разработчиком и не относился к аутсорсу, мне платили по часам. Отработанное время я вручную записывал в Excel-таблицу.

Спустя полтора года я ушёл в аутсорсинговую компанию True Engineering. У меня был фиксированный оклад, но часы всё равно приходилось отслеживать. Хорошо, что таблицы не заполняли вручную — у них была система тайм-трекинга.

Сейчас я Android-разработчик в «Домклике» — это продуктовая компания, где задачи оценивают не в часах, а в сторипойнтах.

Зачем работодатели считают время программистов

Когда клиент отдаёт разработку на аутсорс, чаще всего он платит не за результат, а за время. Например, час работы программиста стоит 20 долларов, а в месяц на проект уходит 100 часов. Фирма отправляет заказчику отчёт и получает деньги. Часть она платит программисту, а всё остальное забирает себе. Так это и работает, особенно в небольших компаниях.

Есть разные способы учитывать рабочее время. Самый простой — заставить программиста раз в неделю заполнять отчёт, например в Excel. Чтобы не следить за часами вручную, можно установить тайм-трекер — ты выбираешь задачу и жмёшь кнопку «Старт», закончил — нажимаешь «Стоп».

В компаниях покрупнее обычно есть централизованная система учёта времени. На второй работе у нас был Microsoft Team Foundation Server — он автоматически подтягивал данные из таск-менеджера.

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

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

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

Странно, когда тайм-трекерами пользуются продуктовые команды. Им нужно отчитываться разве что перед инвесторами — а я думаю, что тем фиолетово, сколько работали программисты. Главное, чтобы конечный продукт приносил деньги.

Как падает продуктивность и включается синдром самозванца

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

Работа программиста — не только набирать код на клавиатуре. Иначе нас называли бы какими-нибудь «кодописателями». Если попалась сложная задача, ты можешь полдня рисовать блок-схемы или просто думать, как её решить.

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

Постоянно думаешь: «У нас сейчас был пятнадцатиминутный созвон, куда мне это записать?» А созвоны мы не трекали, потому что заказчик не хотел за них платить. Хотя отнести их куда-то нужно, ведь это твоё рабочее время.

Чтобы учесть это в таблице, мы создавали сервисные задачи — к ним относили время, когда обдумываешь задачу, уточняешь ТЗ с заказчиком и так далее. Основную работу учитывали отдельно.

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

Когда такое случается, к тебе прилетает менеджер и говорит: «Так, я не поняла, мы оценили задачу в четыре часа. Почему ушло двенадцать? Страдаешь фигнёй?»

Ты думаешь: «Блин, а не слишком ли много времени я на это потратил?» Начинаешь копаться в себе, включается синдром самозванца и говорит, что это не задача сложная, а ты дурак.

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

Может быть, не повезло только мне. В своём аккаунте в Twitter я поднимал эту тему — некоторые писали, что им нравилось работать по тайм-трекеру. Как говорится, фломастеры на вкус и цвет разные.

Почему работодателя нельзя пускать в личную жизнь

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

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

Мне некомфортно работать, когда за мной следят. Это всё равно что за спиной сидит начальник и смотрит, что я делаю, иногда позёвывая и потягиваясь. Тайм-трекер демотивирует — он показывает, что между тобой и компанией нет доверия.

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

В моём треде про тайм-трекеры в Twitter мне ответил CTO «Штаба» — его команда сделала этичный тайм-логгер. Нейросеть обучена так, чтобы программа не скринила переписки и конфиденциальную информацию, а отправляла заказчику только скриншоты IDE.

Идея интересная, ведь они пытаются сделать так, чтобы работодатель не получал личную информацию. Мне кажется, что это не идеальный вариант — система же видит данные, обрабатывает их и решает: «Нет, это я скринить не буду». Но это точно шаг в нужном направлении. Если отказаться от трекеров нельзя, лучше пользоваться таким.

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

Как повторяются истории увольнений Xsolla-way

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

Главное, что компании от этого ничего не будет. В августе, когда Xsolla массово увольняла сотрудников, в Twitter подняли тему, что в России не развит институт репутации и компании не отвечают за несправедливые увольнения.

Если увольнять людей начнёт IT-гигант, его репутация пострадает. Но если это сделает средняя компания на 200 человек, через пару месяцев всё затихнет. Те, кто не следит за новостями, пойдут туда устраиваться.

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

Почему сторипойнты — хорошая альтернатива часам

Сейчас я Android-разработчик в продуктовой компании. В «Домклике» мы оцениваем задачи не в часах, а в условных единицах трудоёмкости — сторипойнтах.

У нас уже слаженная команда, поэтому мы точно оцениваем задачи и вовремя их закрываем — система работает хорошо. Никто не заморачивается с часами и потраченным временем. Я даже чувствую, что без тайм-трекера стал продуктивнее.

Бывают погрешности, когда задачу почему-то оценили неправильно, но и это заложено в план — за двухнедельный спринт может не сгорать 10–15% сторипойнтов, и это нормально. Хотя со временем скорость команды в сторипойнтах становится предсказуемой, и это помогает лучше планировать спринты.

СторипойнтыТрудоёмкость задачи
1Код писать не нужно. Это может быть задача проверить работоспособность системы или залить код в мастер-репозиторий.
2Очень простой минорный фикс. Например, подправить где-нибудь строку и переименовать кнопку с «Заказать» на «Купить».
3Задача, над которой нужно подумать. Как вариант — поменять дизайн на несложном экране.
5Сложные изменения в коде — сделать новую бизнес-логику или сложный интерфейс.
8Дремучая задача, где всё придётся переписать заново.
13Очень сложно и запутанно. В работу не берём, пока не разобьём на более мелкие задачи.

Система сторипойнтов, по которой оценивает задачи моя команда в «Домклике»

Несмотря на то, что мы не считаем время, разработчик не может пилить задачи сколько захочет. Если он возьмёт вещь на два сторипойнта и будет делать её неделю, ему сразу никто ничего не скажет. Но в конце спринта на ретроспективе у него спросят: «А почему ты так долго её делал?»

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

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

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

Соглашусь ли я на тайм-трекер за миллион рублей

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

Если бы мне предложили зарплату 800 000 рублей, я бы задумался об оффере, даже если бы мне сказали: «Сергей, работать будешь с жёстким тайм-трекером, который будет делать скриншоты, записывать видео и снимать логи с клавиатуры».

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

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

Почему джунам лучше принимать любой оффер

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

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

Тогда я ещё учился в вузе и не мог работать по сорок часов в неделю. Вместо этого получалось то тридцать, то двадцать шесть и так далее. Сколько отработал — столько и получил. Когда учёба закончилась, я остался на полный день.

Если у тебя фиксированный оклад и ты хочешь зарабатывать больше, нужно договариваться с начальством и проходить через бюрократию. С почасовой оплатой здесь проще, потому что ты сам регулируешь нагрузку и можешь поднажать, чтобы повысить зарплату. Но иногда оплата по часам поощряет овертаймы — разработчик хочет больше денег, перерабатывает и выгорает. Это бьёт и по нему, и по компании.

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

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

Бонус: как перейти с Java на Kotlin и развиваться в Android-разработке

Я начал писать Android-приложения ещё в 2016 году. На первых курсах университета занялся этим плотнее, писал разные проекты, а потом сделал MVP для стартапа.

Java я выучил в бесплатной IT-школе Samsung — у них есть отделения в десятках городов России. Я честно считаю, что это крутое место, где школьники могут получить начальные навыки. Некоторые материалы по Java и Android у них в открытом доступе, нужно только зарегистрироваться в личном кабинете.

После этого мне было довольно просто перейти на Kotlin — я читал документацию и прошёл на Stepik бесплатный курс по Kotlin от JetBrains.

Тем, кто учит Kotlin сейчас, рекомендую прикольную интерактивную штуку — Kotlin Koans. Параллельно можно смотреть официальную документацию и курсы.

По Android-разработке есть старый, но клёвый сайт Александра Климова. Много бесплатных курсов есть на Stepik — берите самый залайканный и проходите его.

Я интересуюсь мультиплатформенной разработкой на Kotlin и Kotlin/Native — много полезного пишут в блоге IceRock. Полезные вещи в своём Medium публикуют зарубежные ребята Touchlab. Ещё читаю официальный блог Android на Medium.

Слежу за сайтом Android Broadcast — этим ресурсом занимается Кирилл Розов, довольно известный человек и Google Developer Expert по Android.

До пандемии я ходил на офлайн-конференции — в последний раз побывал на большой двухдневной конференции Google Developer Summit в Новосибирске.

Если спикер сделал доклад, но у тебя остались вопросы, ты просто идёшь с ним в столовую и обсуждаешь интересную вам обоим тему. В онлайне с этим сложнее — мне некомфортно задалбывать человека в Telegram. А в приложениях для нетворкинга люди почти не сидят.

Надеюсь, что рано или поздно мы вернёмся к офлайн-формату, начнём ходить на конференции и учиться новому там. Удалённые мероприятия мне почему-то не нравятся, нет той вовлечённости.

Но в феврале будет Podlodka Android Crew — хочу попасть туда. На мой взгляд, это хорошее мероприятие. Там и спикеры интересные выступают, которые абы куда не пойдут.

Проверьте свой английский. Бесплатно ➞
Нескучные задания: small talk, поиск выдуманных слов — и не только. Подробный фидбэк от преподавателя + персональный план по повышению уровня.
Пройти тест
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована