Одна идея этого урока: в инженерии нет «лучшего решения» – есть компромиссы. Сеньор отличается тем, что называет их вслух и выбирает осознанно.
Знакомая ситуация
Ты просишь агента добавить в бот школы приём оплат. Он отвечает: «Готово, сделал самым правильным способом». Через неделю другой агент в другом чате смотрит тот же код и предлагает всё переделать – «так будет лучше». Кто из них прав?
Никто. И оба. Каждый молча выбрал свой набор компромиссов (trade-offs) и назвал его «лучшим». А выбирать должен был ты – потому что только ты знаешь, что для твоего продукта дороже: день задержки или сломанная оплата у ученика.
Инженерное решение – это всегда обмен: что-то получаешь, что-то отдаёшь. «Лучшего» варианта не существует, существует подходящий под контекст. Сеньор не ищет правильный ответ – он выясняет, чем готов заплатить.
Четыре оси, по которым платят всегда
Почти любой выбор в твоих приложениях ложится на одну из этих осей. Научись их узнавать – и споры «как лучше» превратятся в спокойный расчёт:
1
Скорость выпуска против надёжности speed vs reliabilityЗапустить лендинг к завтрашнему вебинару или неделю страховать каждый сценарий? Ответ зависит от цены отказа: упавший тестовый бот – мелочь, упавшая оплата на запуске – потерянные деньги и доверие.
2
Простота против гибкости simplicity vs flexibilityГибкое решение «на все случаи» всегда сложнее. Платишь сложностью сегодня за сценарии, которые, возможно, никогда не наступят.
3
Стоимость против производительности cost vs performanceБолее мощный сервер, более дорогая модель ИИ, кэширование. Вопрос сеньора: а сколько у нас реально пользователей и заметят ли они разницу?
4
Своё против готового build vs buyСвоё – контроль и уникальность, готовое – скорость и чужая поддержка. Настолько важная ось, что ей посвящён отдельный урок 12.
«Зависит от…» – признак силы
Джуна ответ «зависит от контекста» бесит: кажется, что специалист увиливает. На деле всё наоборот. Мартин Фаулер целую статью посвятил вопросу «стоит ли качество кода своих денег» – и даже там ответ не «всегда да», а расчёт: когда окупается, а когда нет.
Уверенное «есть один правильный способ» – почти всегда маркер того, что человек (или агент) не видит осей компромисса. Честное «зависит от нагрузки, цены ошибки и того, как часто это будет меняться» – маркер того, что видит.
Как забрать выбор себе. Агент по умолчанию решает за тебя – молча. Лекарство простое: запрещай ему выдавать единственный вариант. Формула: «дай 2 варианта с плюсами, минусами и ценой ошибки (cost of failure) каждого». Цена ошибки – ключевой пункт: она переводит разговор с «что технически красивее» на «что случится с моим бизнесом, если это сломается».
И второе: когда выбор сделан – зафиксируй ПОЧЕМУ. Одна строчка «выбрали быстрый вариант, потому что вебинар завтра, надёжность добьём после» спасает от вечного спора «кто это придумал и зачем» через месяц.
Как думают три уровня
ДжунИщет «правильный» ответ. Гуглит «какая база данных лучшая», принимает первый уверенный ответ агента как истину. Компромиссов не видит, поэтому платит по ним вслепую.
МидлЗнает плюсы и минусы вариантов, может их перечислить. Но выбирает по моде или привычке: «все сейчас берут вот это». Оси видит, а к своему контексту не привязывает.
СеньорВыбирает по контексту задачи и цене ошибки: что за продукт, сколько пользователей, что случится при отказе. Говорит «зависит от…» и уточняет, от чего именно. Решение фиксирует вместе с причиной – чтобы через месяц можно было пересмотреть осознанно, а не случайно.
Проверь себя
1. Агент сделал приём оплат в боте и говорит: «Реализовал лучшим способом». Реакция сеньора?
«Лучший способ» без оговорок означает, что компромиссы выбраны молча и не тобой. Второй агент даст просто другой молчаливый выбор – это не проверка. Сеньор вытаскивает оси на свет: что мы получили, чем заплатили, что будет при отказе.
2. Ты спрашиваешь двух консультантов, переносить ли сервисы школы на новую архитектуру. Первый: «Зависит от нагрузки, команды и планов на год – давайте посчитаем». Второй: «Однозначно переносить, это современный стандарт». Кто ближе к сеньору?
«Однозначно» про архитектуру, не глядя на нагрузку и команду – признак, что человек продаёт моду, а не решает твою задачу. «Зависит от…» с конкретным списком, от чего именно – это и есть зрелость. А точные цифры без данных – просто уверенная выдумка.
3. Завтра запуск потока, нужен лендинг с оплатой. Агент предлагает быстрый вариант за час и основательный за три дня. Что сеньор взвешивает в первую очередь?
Дедлайн – важный вход, но не автоматический ответ: если быстрый вариант может уронить оплату в пик продаж, его цена ошибки выше, чем перенос запуска на день. Сеньор сравнивает варианты именно по последствиям отказа, а красота устройства тут вообще не критерий.
Что говорить агенту уже сегодня
Перед любым решением: дай 2 варианта с плюсами, минусами и ценой ошибки каждого
Ловить молчаливый выбор: какие компромиссы ты только что выбрал за меня в этом решении?
Привязка к контексту: учти контекст: пользователей мало, но отказ оплаты в день запуска стоит очень дорого
Фиксация: запиши в заметку проекта, какой вариант мы выбрали и почему