Программист не должен решать задачи бизнеса
Привет, я разработчик и считаю что выражение »программист должен решать задачи бизнеса» это чудовищная ложь, губительная для индустрии.
Узнать, почему я так думаю
Вступление
Это будет статья про нытье, разочарование, выгорание и возрождение.
Эту статью я пишу в первую очередь для себя, чтобы разложить по полочкам свое понимание определенной области на данный момент.
Возможно пройдет время и я изменю свое мнение. Адекватные дискуссии приветствуются.
Определенно хочу сказать спасибо fillpackart за его статьи. Я часто не согласен с его суждениями и выводами, но, пожалуй, именно его публикации подтолкнули меня к размышлениям. Итогом некоторых таких размышлений стала эта статья.
Также вышла интересная дискуссия с TimeCoder, в которой я понял, что мне не хватает продуманных аргументов. «Как собака — все чувствую, а выразить не могу!»
Кто ты вообще такой?
Можно сказать, что я программист по призванию. Увидел компьютер первый раз года в 4, батя на работе дал мне порисовать на черно-белом мониторе в чем-то типа Paint. Я был поражен и осознал что хочу уметь командовать машиной, абсолютно и безраздельно. Потом были книжки дома типа «Познаем компьютер», первая программа на QBasic в 13 лет, институт по специальности «ПО ВТ и АС» с квалификацией «Инженер» и работа. В продакшен я писал код на VBA, JS, T-SQL, PL/SQL, Битрикс (прости Господи) и как основной язык C#.
В общем обычная крепкая веб-макака. А еще я не хочу решать задачи бизнеса.
Почему ты так решил?
Когда я был молодой, то узнал про разделение программистов по уровню квалификации — junior, middle, senior. А так как я хочу уметь командовать машиной, значит моя цель — стать сеньром! Не ради лычки, а чтобы заслуженно обладать таким же количеством знаний и умений.
Шло время, я читал умные книжки, набирался опыта от старших товарищей.
И кто такой сеньор?
На работе меня потихоньку начали таскать на совещания. Сначала на обсуждение частей сервиса. Потом на интеграцию сервиса с другим сервисом. Потом на обсуждение дизайна UI. И потом я осознал, что сижу среди менеджеров, они обсуждают увеличение конверсии и воронку продаж, и поглядывают на меня, хотя я вообще бэкенд.
Тогда я спросил своих знакомых сеньоров, нормально ли это, мне ответили «Конечно, это обязанность сеньора». А это реально крутые ребята, я хотел быть как они. И я начал ходить на совещания.
И было все больше совещаний и мне говорили «Надо думать, как решать задачи бизнеса».
И тут я понял, что сеньор — это тот, кто решает задачи бизнеса.
А что значит решать задачи бизнеса?
На одной работе мне однажды выдали сеньорскую лычку. Хотя там все поголовно были сеньорами, я все равно обрадовался, и погрузился в сеньорство с головой. Спорил с менеджером проекта, и аналитиком, и дизайнером, чтобы сделать пользователю удобнее и комфортнее, хотя это было некрасиво с точки зрения кода и архитектуры. Код проекта получался все хуже. Начальство ставило задачу всей команде, а спрашивали потом с меня. «Ну ты же сеньор». Я был связующим звеном между менеджером, базистом, фронтом, аналитиком и дизайнером. И еще писал бэкенд.
И как-то это все начало меня напрягать и я подумал «Наверно надо найти другую работу».
Собеседования выглядели примерно так:
— Вы же претендуете на позицию senior software developer?
— Да. А какие обязанности у senior software developer?
— Решать задачи бизнеса, разумеется.
Оказалось, что везде одно и то же.
Начальство, знакомые сеньоры, рекрутеры, инвтервьюверы мне говорили «Настоящий программист должен решать задачи бизнеса. Бизнес зарабатывает деньги. Ты должен делать такой продукт, который бы приносил деньги. А иначе за что тебе платить?».
И тут я понял, что решать задачи бизнеса — думать о том, как принести работодателю больше прибыли.
И в чем трагедия?
А я не хочу об этом думать.
Эй, а за что тебе тогда платить?
А вот наконец и вылез культивируемый миф, то что сеньор позиционируется как Настоящий Программист! То, к чему должны стремиться все разработчики.
Мне кажется, что я открыл заговор работодателей.
Бизнесу выгоден этот миф. «Эй, парень, хочешь лычку? Мы назовем тебя Настоящий Программист, а ты думай в первую очередь о том, как будет легче продать то, что ты напишешь.»
И самое плохое то, что некоторые скудоумные разработчики сами в это верят и поддерживают миф.
«Я решаю проблемы бизнеса, мне выдали сеньорскую лычку, значит я Настоящий Программист, а ты нет!» — маркетинговый буллшит.
Поясни на примерах
Программист это такое смешение инженерии и творчества.
Инженер, который строит мост, должен ли вообще задумываться о том, как этот мост будет окупаться? Вообще нет, его задача — спроектировать и построить мост, который уложится в сроки, в смету и простоит указаное по плану количество лет.
Авиациионный инженер не должен думать, как же компании надо будет окупать рейсы. Он должен построить эффективный, мощный, удобный в обслуживании двигатель.
Художник с детства мечтал о том, как его рисунок на коробке хлопьев будет способствовать увеличению продаж?
Врач-хирург просто делает операцию, чтобы спасти жизнь пациенту, а Настоящий Врач-Хирург делает операцию и продумавает, как бы ее сделать так, чтобы пациент заплатил больше денег больнице?
Смешно? Бред? А с программистами почему-то работает.
Сам-то не сеньор, вот и бесишься!
«Раб мечтает не о своей свободе, а о своих рабах».
Я осознал что мне наплевать, как бизнес будет монетизировать мой труд. Пусть этим занимаются менеджеры, продажники, маркетологи и product owner.
«О нет, ты теперь не сеньор!» — вообще наплевать, лычки никак не влияют на квалификацию разработчика.
Я просто стараюсь хорошо делать свою работу, писать качественный и легко поддерживаемый код.
Давайте вспомним Linux. Скажите что Линус плохой разраб, потому что он не задумывался о монетизации.
Я бы посоветовал разработчикам, которые думают о проблемах бизнеса, открыть свой бизнес и думать о нем, это будет полезнее для всех.
А всем остальным желаю заниматься любимым делом в комфортной обстановке и не вестись на всякие льстивые уловки.
Спасибо что прочитали.