Как Junior-разработчики делают мой проект правильнее

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

Почему не нанять сразу крутых разработчиков:

  • Дорого, сложно найти.
  • Держать компетенцию желательно распределенно.
  • Не всегда уживаются вместе в силу конкуренции, бывает.
  • Завышенные требования

Junior-разработчик - минусы:

  • Нет фундамента и знаний правильной разработки.
  • Не проверяет за собой, спешат быстрее сказать “Я сделал”.
  • Не знают маломальских регламентов.
  • Тесты - знают что полезно, но никогда их не писали.
  • Метрики - что черт возьми это такое.
  • Легко хантятся на сторону.

Junior-разработчики - плюсы:

  • Стоят копейки, легче найти
  • Можно состряпать человека под команду.

Из сего видно что минусов у них гораздо больше чем плюсов, так как же минусы превращаются в плюсы? Для начала предстоит немного попотеть самому и создать фундамент для этого:

  • Микросервисная среда, причем микросервисы должны быть максимально стандартизированы. О микросервисной архитектуры можно тут - https://www.atlassian.com/ru/continuous-delivery/microservices/building-microservices и https://habr.com/ru/company/flant/blog/347518/ на русском. Микросрвис должен быть понятен даже маме разработчика, которая работает в библиотеке.
  • Документирование всей системы (нет-нет это не та глупая бездумная документация которую никто не читает) это понятная схема причем если она будут интерактивной еще лучше. Если разработчик за 1 день не разобрался с вашим микросервисом, то у вас проблемы с документацией.
  • Тесты-тесты-тесты. По моему мнению самый эффективный результат дают функциональные приемочные автотесты, а также тесты real-time по боевому окружению. Тесты должны писать совсем не разработчики софта - разработчики пишут тесты получаются де...мо.
  • РЕГЛАМЕНТЫ - вот над чет стоит действительно поработать и следить за этим. Я считаю это наиболее весомым делом. Старт разработки, описание стандарта кодирования, описание для тестирования, тесты, сдача метрик и алертов, культура деплоймента, да даже регламент на попить чаю - все это должно занимать около 50% всего времени.
  • Разработка с Junior-разработчиком строится исключительно по принципу - сдал тесты, метрики, алерты, документацию = сдал задачу.

Что в итоге это дает:

  • В первую очередь ты всегда контролируешь процесс и никогда не отдаешь работу в которой плохо понимаешь.
  • Если что-то сломалось ты всегда знаешь что, где и как это починить.
  • У тебя в 2 раза больше людей (твоя гарантия MVP команды) за меньшие деньги.
  • Бонусом ты получаешь самое ценное в разработки - актуальные метрики, алерты и тесты - ради этого все делалось.

Главная идея данного поста, что при таком подходе ты вынужден строить фундамент для качественной работы сервисов.

0
Комментарии
-3 комментариев
Раскрывать всегда