Skip to content

Latest commit

 

History

History
89 lines (77 loc) · 9.56 KB

GradationMiddle.md

File metadata and controls

89 lines (77 loc) · 9.56 KB

Middle-разработчик

Кто такой middle-разработчик?

Один из вариантов описания

  • Отлично знает инструментарий — html, cssm, js, ts, работу сети... Знает и понимает все основные возможности языка, синтаксис, основные приёмы...
  • Имеет навыки проектирования и знает основные принципы разработки поддерживаемого продукта, т.е. владеет ООП, ФП, понимает DDD и SOLID.
  • Умеет спроектировать небольшого и среднего размера стандартные проекты (интерфейс для проекта до ±100k строк с командой до ±10 участников).
  • Умеет эффективно решать задачи в рамках заданной архитектуры (например, следуя парадигме от React+Redux).
  • Знает, как решить нетривиальные локальные задачи, чаще всего не связанные с интерфейсами напрямую, например, написать небольшую библиотеку для удобного API по работе с URI.
  • Понимает бизнес-ценность своей работы, может предложить пересмотр требований задачи для лучшего достижений этих ценностей, может предложить убрать задачу из бэклога, аргументировав возможными альтернативами или даже доказав её низкий приоритет.
  • Умеет декомпозировать и довольно точно оценить объем работ для небольших работ (до 2-х человекомесяцев). Умеет явно увидеть области риска при оценке, сузить их наименьшими усилиями и явно фокусировать внимание команды на них.
  • Проявляет эмпатию, не перебивает, умеет выслушать, понять точку зрения оппонента и предложить аргументированные альтернативы.
  • Хорошо умеет гуглить, в том числе на английском
  • В достаточной мере знает английский, чтобы читать тех. документацию и вести деловую переписку в чате. Ок, с помощью переводчика. Кстати, возможность беседовать с англоязычной командой на ежедневном митинге по тех. вопросам — тоже очень желательна.
  • Обладает базовыми soft-skills — регулярно проводит code-review junior-разработчиков (не вгоняя их в недельную депрессию), умеет задавать вопросы, может эффективно общаться со старшим руководством и клиентами, помогает менее опытным коллегам, может подготовить и провести учебный семинар, выступить с докладом на конференции...
  • Ему можно доверить в работу отдельную фичу. Т.е. составную задачу, отвечающую за часть функциональности продукта — например авторизация (интерфейс, модальное окно, авторизация по почте, по соц. сетям, запрос на сервер, хранение данных в browser API и т.д.). И при этом не надо дотошно проверять каждый его коммит.


Требования к разработчику уровня Middle

  • от 1-1,5 года опыта на комплексных проектах;
  • работает почти самостоятельно, периодически консультируется со старшими товарищами (на старте проекта и не очень часто при возникновении нетиповых ситуаций);
  • в принципе знает про планирование и оценки, но на практике применяет редко (если не попросят), получается не очень хорошо;
  • не занимается управлением требованиями (соответственно сроками, качеством и составом фичи);
  • обычно делает, что просит менеджер или смежники, и редко предлагает оптимизировать задачу (на основе технических знаний о надежности и технологичности, а также экспертизы по платформе);
  • способен решать типовые продуктовые задачи, содержащие: верстку, анимации, взаимодействие с бэком, взаимодействие с существующей инфраструктурой приложения;
  • обычно достигает результата, который внешне устраивает заказчика;
  • результат содержит дефекты, проявляющиеся в краевых случаях и при расширении функциональности приложения.

Требования к разработчику уровня Middle +

  • плюсом ко всем навыкам «Middle»
  • в среднем от 2+ года опыта;
  • работает самостоятельно, нетиповые ситуации решает самостоятельно, редко велосипедит, эскалирует вопросы редко и при наличии реальной необходимости;
  • умеет планировать и оценивать задачи, активно практикует эти навыки;
  • чаще управляет требованиями, чем нет, обычно получается неплохо;
  • старается решить задачу/проблему, с которой к нему пришли, не воспринимая требования менеджера/заказчика как истину в последней инстанции;
  • способен проводить технические исследования;
  • умеет оценивать профессиональный уровень разработчиков, проводит собеседования;
  • способен решать продуктовые задачи любой сложности, при этом учитывает неочевидные моменты: – гибкость, расширяемость, совместимость с существующими компонентами, – интернационализация, – темная/светлая тема, – медленная сеть / офлайн режим, – энергопотребление, – производительность, – работа в разных окружениях (устройства, операционные системы);
  • почти всегда достигает результата, который устраивает заказчика и даже превосходит его ожидания;
  • результат редко содержит дефекты, проявляющиеся в краевых случаях и при расширении функциональности приложения.

Требования к разработчику уровня Senior

  • плюсом ко всем навыкам «Middle +»
  • 3+ года опыта;
  • уровень знания кода/технологий: гуру;
  • улучшает процессы, инструменты и сотрудников вокруг себя;
  • внедряет новые технологии;
  • проводит крупные рефакторинги;
  • проектирует крупные проекты, в том числе кроссфункциональные;
  • способен организовать работу небольшой группы разработчиков.


Ссылки



*[Legmo, 2019-2023](https://github.com/Legmo/notes/)*