Ответ
Начну с простой или средней по сложности задачи.
Почему так?
- Быстрый вход в поток: Позволяет разобраться с кодовой базой, процессами и инструментами, не погружаясь сразу в глубины архитектуры.
- Ранняя победа и feedback: Завершение первой задачи даёт положительный импульс команде и позволяет получить обратную связь по стилю кода и процессам.
- Снижение рисков: Сложная задача часто содержит неизвестные неизвестные. Начав с простой, можно выявить скрытые проблемы окружения или зависимостей, которые затем будут учтены в сложной задаче.
- Практический пример: Вместо того чтобы сразу проектировать распределённую систему кэширования, лучше сначала добавить метод в сервис и его интеграционные тесты. Это подтвердит, что сборка, деплой и мониторинг работают корректно.
Такой подход ("от простого к сложному") систематически снижает неопределённость и наращивает уверенность.
Ответ 18+ 🔞
А, ну ты глянь, классика жанра! Только пришёл новый человек в команду, а ему уже суют какую-нибудь ебучую задачу про перепроектирование ядра системы на микросервисы с нуля. Пиздец, да? Сразу в омут с головой.
Так вот, слушай сюда, мой совет — не надо так. Не надо сразу лезть в эту архитектурную жопу с руками. Это как сразу попросить человека, который только сел за руль, поехать по «Кольцу» в час пик. Он просто обосрётся и въебется в первую же иномарку.
Начинать надо с простого. С хуйни средней степени залупленности. Почему?
Ну, во-первых, быстрый вход в поток. Пока он будет эту простую хуйню делать, он заодно и разберётся, где у вас код лежит, как его собирать, как тесты запускать, куда деплоить и кто тут главный пидарас. Без этого он на сложной задаче просто утонет в незнакомых терминах и процессах, и будет сидеть, как Герасим, и мычать «Муму» в монитор.
Во-вторых, ранняя победа, ёпта! Человек сделал таску, закоммитил, запушил, всё прошло, его похвалили. У него сразу волнение ебать спадает, и появляется уверенность, что он не полный мудак и может тут работать. Команда тоже видит: о, чувак не просто так деньги получает, он уже что-то полезное сделал. Всем пиздато.
В-третьих, риски снижаются, блядь. В каждой, даже самой простой, на первый взгляд, задаче могут сидеть скрытые подводные ебли. То окружение не соберётся, то зависимость какая-нибудь ебанутая вылезет, то процесс деплоя окажется написан инопланетянами. Лучше эти проблемы выловить на какой-нибудь фигне вроде «добавить поле в ответ API», чем когда ты уже полгода проектируешь распределённый кэш и понимаешь, что твой шедевр нихуя не деплоится.
Практический пример, чтобы было понятно. Вместо того чтобы сразу орать «давайте перепишем всё на Rust и разнесём по двадцати подам!», дай человеку сначала, например, добавить новый эндпоинт в существующий сервис. И написать к нему тесты. И убедиться, что это всё собирается, деплоится, логи пишутся, метрики считаются. Вот это вот — реальный, осязаемый кусок работы. Он как чек-лист: если с этой простой хуйней всё прошло гладко, значит, базовые процессы работают. А если нихуя не прошло — ну, значит, сначала надо починить эти базовые процессы, а уж потом лезть в сложную архитектуру.
Короче, подход «от простого к сложному» — это не трусость, а, блядь, системное снижение неопределённости. Ты постепенно, как краб, наращиваешь уверенность и понимание, вместо того чтобы одним махом впендюрить себе в проект кучу неизвестных неизвестных. Понял да?