malikov.tech

Как я к своим решениям доверие терял

Cover Image for Как я к своим решениям доверие терял

Чем старше я становился, тем чаще стал ставить под сомнения принятые ранее решения. А правильно ли я поступал в той или иной ситуации? Если говорить не о жизненных перипетиях, а о работе, то чаще всего с опытом приходили более элегантные или компромиссные решения. Вообще стал давно замечать, что желание отстоять свою позицию стало уходить на задний план. Мягче стал чтоли... И вот буквально на днях осознал одну очень неоднозначную штуку - "Правильность решения оценивается не возможностью поступить как-то иначе, а результатом наступивших последствий в моменте и дистанции".

"Опять капитанишь!" - может кто-то сейчас возразить, но все не так просто. Вот запилили вы из какашек и фантиков прототип и он докатился до продакшена, криво косо, но свою функцию выполняет. В моменте вы отработали гипотезу и молодцы, а на длинной дистанции надо было сразу его переделывать и чем дальше тем хуже, такой прототип в скором будущем станет легаси и техдолгом, а ваши приемники будут вспоминать вас исключительно через мысленную оральную пенетрацию ротовой полости. И с их точки зрения точно поступили не правильно. Был ли другой способ? да конечно! И более того не один. Но!

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

Рассмотрим ситуацию с другой стороны. Появилась задача склепать прототип и очень умный-матерый разработчик сел, написал все через tdd, сформировал кучу документации, архитектурных схем нарисовал пачку и вообще привлек еще аналитиков мешок. Писал в конечном счете всё это пару месяцев и конечно получилась конфетка на выходе. Запустили в продакшн, а там оказалась гипотеза не состоятельной. Разработчик то молодец и сделал все по канонам, но толку от его работы не оказалось. А может быть задача была поставлена плохо? А может быть надо было больше аналитической работы провести? А может быть еще что-то поменялось на рынке в тот момент. Короче программка то работает, она отлично поддерживается, вносить изменения туда одно загляденье, но вот только ей никто не пользуется и изменений оно не требует. Спустя много лет этот сервис тоже станет легаси, правда по другим причинам, но его уберут или перепишут под другие задачи.

Это что же получается такое - результат одинаковый? И получается, что если вы на пальцах слепили что-то и это дало ожидаемый выхлоп - это лучше чем сделать как следует основательно и без выхлопа? Нее.. это Лёш ты факты подтасовываешь! Вот если сделать супер хорошо и это выстрелит, вот тогда и оправдываются все вложения понимаешь?!

И вот тут то я кое что понял.

Так затраты то те же самые. Сделал быстро, завелось, отрефакторил за долго == сделал за долго, завелось. Только в первом случае цена ошибки ниже. И именно поэтому у крупняков есть отделы r&d и есть core разработчики. Потому что быстро занять нишу, проверить гипотезу и в целом выкинуть фичу на рынок - вот где бабки, Карл! А писать по хентаю и феншую - это супер-супер важно и я об этом напишу еще не раз ибо проникся БР всей душой, но без денег никому она не впаялась. А вся проблема в том, что лица принимающие решения боятся выкинуть тот прототип из веток и соплей что бы освободить место для качественной замены. Вот тут и кроется проблема. А рефлексия о прошлых не верных решениях бесполезна, ибо если вы сделали хрень - это станет понятно сразу, а если был хоть какой-то профит от ваших трудов, то скорее всего решение было верным.

Такая вот капитанская истина.