Компетенции разработчика InSales

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

Список компетенций

  1. Эффективная коммуникация

  2. Хорошая производительность

  3. Самостоятельность

  4. Инициативность

  5. Клиентоориентированность

  6. Нацеленность на результат

  7. Growth mindset

Эффективная коммуникация

  • Способность коммуницировать без агрессии.

  • Умение и желание тактично высказывать своё мнение и давать своевременную обратную связь.

  • Уважение к коллегам, например, вовремя присоединяться к звонкам Zoom, время которых известно заранее, грамотно формулировать сообщения, уметь выбирать оптимальный способ связи для решения конкретного вопроса (текст или аудио), писать читаемый код, уделять внимание неймингу (коммиты, PR)

Вопрос для оценки: хотелось бы вам работать с этим человеком над одной задачей или в одной команде?

Хорошая производительность

По истечении испытательного срока мы ожидаем от джуниор-разработчика, что он/она:

  • берет в работу мелкие, простые задачи с планерки (0,3-0,5 поинтов) и выполняет их за адекватное время (максимум в 2 раза больше заявленного времени, если не всплыли тонкие моменты);

  • выясняет тонкие моменты с постановщиком задачи;

  • пишет тесты, если необходимо

  • тестирует своё решение (локально или на стейджинге) перед код-ревью и выкаткой;

  • исправляет замечания рубокопа, оперативно исправляет по комментариям/отвечает на вопросы коллег в процессе код-ревью;

  • уведомляет постановщика задач и саппорт переговорку перед выкаткой;

  • мониторит после выкатки, что решение работает (Rollbar, саппорт переговорка) и откатывает в случае ошибок (с помощью revert в Github, новый PR и новый деплой);

От миддл/сеньор-разработчика в дополнение к предыдущим пунктам мы ожидаем, что:

  • Берет в работу сложные задачи (1 поинт и больше) и выполняет их за адекватное время

  • умеет оценить необходимость рефакторинга и старается заложить его в оценку задачи, если считает, что он необходим;

  • старается регулярно делать код-ревью;

  • возможно здесь будут и другие ожидания, по которым необходимо дополнительное обсуждение;

Вопрос для оценки: сколько времени уходит на решение задач? Есть ли динамика? Мы рекомендуем первое время логировать, сколько времени уходит на задачи, чтобы оценить динамику и чтобы было проще ответить на этот вопрос.

Самостоятельность

  • Умеет самостоятельно искать ответы, но при этом не боится просить о помощи, сам задает вопросы, если ответ найти не получается. Мы предлагаем начинать с 30-минутных попыток найти ответ самостоятельно, после чего обращаться за помощью, и постепенно увеличивать это время с ростом опыта.

  • Сам(а) приходит за задачей, если непонятно, что делать

  • Не требует постоянного внешнего контроля для продуктивной работы

Вопрос для оценки: нужно ли контролировать? Ждёт или ищет себе занятие?

Инициативность

Cтремление изменить к лучшему продукт, компанию, свое окружение, код.

  • проактивность в уточнении задачи;

  • в работе с кодом - стремление оставить после себя лучше, чем было;

  • если замечает возможности для улучшений и мелкие проблемы, действует без подачи извне

  • может где-то что-то поправить, улучшить, помочь, ответить на вопрос или поднять обсуждение найденной проблемы;

  • готовность брать ответственность.

Вопрос для оценки: реализовал(а) ли какие-либо из имевшихся возможностей для улучшений? Какие были примеры инициативы с его/ее стороны?

Клиентоориентированность

Понимание, что главная цель - это польза для клиентов. Всегда во время решения задач стоит помнить об этом, задавать себе вопросы “какую проблему клиента мы сейчас хотим решить?”, отталкиваться от проблемы, а не от формулировки ТЗ и предлагать альтернативные или более полные решения проблем клиентов, даже если они не описаны в ТЗ. Иногда для этого потребуется погрузится в область глубже, чем бы хотелось. А иногда, когда проблема клиента серьезная и срочная, следуя этому принципу, нужно суметь делать выбор в пользу быстрых субоптимальных решений.

Вопрос для оценки: пытается ли решить проблему клиента, выйти за рамки ТЗ? Приведите конкретные примеры.

Нацеленность на результат

Умение сфокусироваться на конкретной задаче и стремление довести ее до конца. Поскольку, наша главная цель - это польза для клиентов, то задачу можно считать выполненной лишь в тот момент, когда она окажется на продакшене в работающем виде. Мы считаем, что оптимально, если разработчик работает одновременно над 1-2 задачами, если задачи совсем мелкие, можно и больше, но стоит отслеживать момент, когда переключение между задачами начинает замедлять работу над каждой из них. Чувство ответственности за задачу.

Вопрос для оценки: доводит ли все задачи до конца? Не осталось ли хвостов?

Growth Mindset

https://en.wikipedia.org/wiki/Mindset#Fixed_and_growth_mindset

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

Вопрос для оценки: как оценивает свои неудачи?

Критерии для принятия решений

  • Если захочет уволиться, приложим ли мы все силы, чтобы его удержать?

  • Есть ли ощущение, что у человека много отвлекающих факторов, не позволяющих ему продуктивно работать на постоянной основе?

  • Однотипные задачи, идущие подряд, решаются нормально? Не повторяет ли ошибок из PR в PR?

Мы пишем тесты на:

  • Сервисы

  • Джобы

  • Контроллеры, отвечающие за критичный для клиентов функционал. Например, авторизация, чекаут, оплата.

  • Экшены контроллеров, в которых есть сложная бизнес логика

  • Фильтры базовых контроллеров, обеспечивающих работу критичного функционала

  • Методы моделей, в которых есть сложная бизнес логика