Telegram

[ГРЕЙДЫ И ИХ КРИТЕРИИ ЧАСТЬ 3]

[ГРЕЙДЫ И ИХ КРИТЕРИИ ЧАСТЬ 3]

**Middle
**__Парень, да у тебя большое будущее, стальная голова, сильные ноги и длинный хвост!

__Middle наследуют все требования и обязанности junior

**Экспертный уровень и ответственность

**- Самостоятельно решает задачи из бэклога.
- Самостоятельно оценивает риски в знакомом функционале, довольно точно может оценить сроки на реализацию.
- Умеет работать с возникшими трудностями в решении задач, например привлекает для этого аналитиков, дизайнеров, тестировщиков и др. коллег, если требуются от них уточнения или дополнения по задаче.
- Анализирует возникающие проблемы, старается докопаться до сути и решить корневую проблему. Предлагает и продвигает превентивные решения для предотвращения рецидивов.
- Обязательно участвует в code review, при необходимости оставляет комментарии автору с описанием своей точки зрения.
- Всегда при оглашении проблемы сразу вместе с анонсом проблемы предлагает возможные решения. Желательно с анализом: плюсами, минусами, оценкой.
- Декомпозирует задачи так, чтобы сабтаски были лаконичными и максимально независимыми друг от друга, pull requests маленькие, а последующее тестирование легким.
- На всех этапах следит за задачей и помогает её продвижению. Не использует оправдание «На моей машине работает и ОК».
- Уделяет внимание краш-рейтам в аналитике, анализирует проблемы, предлагает решения.
- Ориентирован на бизнес, интересуется фидбэком пользователей, периодически самостоятельно проверяет метрики.

**Инженерная культура

**- Следует style guides проекта, а также способствует соблюдению данных правил на code review.
- При разработке придерживается подходов KISS и DRY.
- Старается максимально покрыть свой код тестами.
- При реализации или внедрении новых технических решений, библиотек и подходов, согласовывает и обсуждает их с ответственными.
- Находит оптимальный баланс в скорости решения задач и качестве, понимая, что в приоритете всегда конечно же должно быть второе.
- Пишет качественный, легко читаемый код, с хорошей производительностью.
- Старается максимально контролировать и избегать утечек памяти, оверинжиниринга, устаревших подходов.
- Устраняет/избегает распространенных уязвимостей безопасности приложения при решении своих задач.
- Старается максимально описать реализованный функционал, особенно в тех местах где у других разработчиков могут возникнуть вопросы.

**Архитектура
**- Хорошо знает архитектуру своего сервиса
- Видит весь набор компонент сервиса, которые затрагивает задача
- Проектирует архитектуру решений под контролем Старшего/Ведущего разработчика
- Имеет представление об архитектуре смежных сервисов
- Может нарисовать архитектуру работы сервиса на "квадратиках" и рассказать как он работает
- Самостоятельно может спроектировать небольшие архитектурные изменения

**Коммуникация

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

**Самообучение и наставничество

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

**Онбордит новичков.

**- Делится своей экспертизой с другими членами команды, участвует в обсуждениях новинок технологий, различных подходов и практик.
- Периодически, по мере получения опыта, участвует в роли наставника новичков, в своей команде.