Недавно поучаствовал в интервью с Додо пиццей, и один их подход никак не шел у меня из головы. Они проповедуют погружение в свою предметную область (пиццу), даже если это не нужно по работе. Программируешь? Сходи-ка поработай на кухне и будешь знать, что и как разрабатывать еще лучше.
И якобы разрабы, сменившие на пару недель ide на плиту с прихватками возвращаются довольные, как слоны — полные «бизнес-инсайтов», боли клиентов и идей, как ее разрешить.
Ну не знаю.
Я, например, представления не имею, что за продукты разрабатывал на большинстве своих работ. Мне было чихать, что там болит у клиентов. Это не мудачество, не лень и не упрямство. Это осознанное решение, и я гоню тряпками всех эйчаров, кто заводит свое зазубренное «нам нужен не просто хороший программист, нам нужен человек, который горит нашей миссией».
Предметную область может и полезно знать. Так же полезно, как коллекционировать фантики от шоколадок. А для карьеры это вредно. И вот почему.
Мир сейчас устроен так, что хочешь или не хочешь — работу нужно менять часто. ИТ развивается так быстро, что ни одна компания не успевает. Настал новый день — появились новые инструменты, а лох-работодатель как всегда не хочет переходить, потому что… да плевал я почему.
Мне важно только то, что ради набивания своих карманов он будет тормозить мое развитие. Когда у него все схлопнется, я буду устаревшим динозавром на рынке. А рынку нужны те, кто работает с новым. Мысль, что мне когда-нибудь придётся искать работу «для динозавров» — как сейчас её ищут всякие перлисты-дельфисты — пугает меня до чёртиков. Эти люди кажутся мне жалкими, я не хочу думать, что я жалкий. Я не хочу уходить в управление. Не хочу свой бизнес. Я хочу писать код — сейчас, и через тридцать лет тоже.
Можно тратить на развитие личное время. Я в целом так и делаю, но его мало. У меня двое детей, и смотреть как они растут, интереснее, чем латать дыры в технологии, которая завтра умрет. Уж простите.
Каждый час, который я мог потратить на изучение, скажем, Хаскеля, но потратил на изучение предметной области — этот час я у себя украл. И вот всякие менеджеры говорят мне, что так думать — преступно, и бизнесу такие «незаинтересованные» не нужны.
Меня это бесит. Я заинтересован делать свою работу хорошо в сто раз больше, чем они, дурацкие лицемеры, которые притворяются будто жизнь положат на дело своего работодателя. Сами же, через час после разговора со мной идут проводить собес, и не берут какого-нибудь бедолагу, потому что он не работал с immutable.js. Конечно он не работал. Вместо этого парень изучал, сколько сантиметров должна составлять корочка от пиццы.
Когда от меня требуют погружения в процессы, которые описывает мой код — они отнимают у меня право оставаться профессионалом. При том, что именно профессионалы им и нужны.
Самое страшное, этого требуют люди, которые вообще не представляют, что такое программирование. Они меряют мир по себе. Может им и нужна предметная область, но я могу пойти разработчиком в медицину, робототехнику, авиацию, ракетостроение, банкинг, страхование, на робоферму, в ФСБ, ЦРУ, куда угодно — и везде буду хорош, ни черта не зная предметных областей.
Я — не школьный учитель, которого без проблем можно отправить расчищать снег у школы, потому что надо. У меня есть эго размером с планету, огромная зп и гостеприимный рынок. Каждый раз, когда от меня требуют, что бы я занимался чем-то таким, что нельзя будет инвестировать в будущее — меня обманывают. Погружение в медицину минимально увеличит мою пользу в разработке мед.оборудования. Но катастрофически сузит скоуп при следующем поиске работы.
Мне нужен только тот опыт, который заработает везде. И не я создал рынок, который живет по таким законам.
Но то, что мне не выгодно — это только одна сторона. Есть другая — бизнесу тоже не выгодно. Я не знаю, кому и когда пришла в голову эта нелепая идея иметь разработчиков-пицамейкеров, разработчиков-медиков, разработчиков-ракетостроителей. Но я знаю, почему эта идея появилась.
В любой ИТ-компании, из всех профессий, что там обычно бывают, мы — разработчики — самые умные. Мы умнее менеджеров, умнее эйчаров (намного, намного умнее эйчаров), умнее бизнес аналитиков, бухгалтеров и юристов. Но мы далеко не самые хитрые.
Если бизнес хочет сделать ящик, который хорошо определяет давление человека, придётся нанять кучу учёных и аналитиков, чтобы превратить эту идею в набор чётко поставленных задач. Но это сложно и дорого. Гораздо легче упросить разработчиков изучить предметную область. А потом и вовсе убедить, что это в порядке вещей. Серьезно, я сам делал CRM для гигантской корпорации, о который вы слышите каждый день, и я в одиночку, сидя дома в своем мухосранске, принимал продуктовые решения, просто потому что куча народу за перекладыванием бумажек забыла, что и как вообще делать.
Ок, даже если мне не жалко, и это вроде бы работает, тут есть баг. Разработчики не несут ответственности. Если ты напишешь код, из-за которого погибнут люди, посадят владельцев бизнеса и менеджеров. Если из-за твоего непонимания бизнес-процессов клиенты начнут получать не ту пиццу, которую заказали — они уйдут в другую пиццерию, бизнес сдохнет, а ты на следующий же день будешь пришивать синьорские лычки на новенькую униформу какого-нибудь банка. С нас ни юридически, ни морально нельзя спрашивать за плохое понимание предметной области.
Поэтому при такой системе жить получается только у тех, кому везёт нанять разрабов с совестью. Таких немного, да и у всего есть границы. Менеджеры маскируют недостатки своей системы, пытаясь сделать из девелоперов универсалов, но маскировка — есть маскировка. Это не работает так, как должно, и риск последствий тем крупнее, чем серьёзнее бизнес.
Мне странно видеть, что для всех это не очевидно. С тех пор, как люди изобрели разделение труда, труд стал намного сложнее. Человек, который заставляет тебя изучать, как устроен его бизнес, сам никогда не смог бы делать то, что делаешь ты. Можете себе представить, что менеджеры заставят эйчара написать код? Хаха, я бы на это посмотрел. Разделение труда — единственная вещь, которая хоть как-то спасает нас от сложности современного мира.
Мы даже внутри разработки разделяем труд. У нас есть беки и фронты, мобильные разработчики и бд-шники, люди, которые специализируются на алгоритмах, и спецы по оптимизациям производительности конкретных платформ. Даже просто быть фуллстеком — это обречь себя на вечную недоквалификацию в конкретных вещах.
Так не пойдёт. Я всю жизнь смотрю на свой код и вижу, что он не совершенен. Я за тысячу лет не изучу и половину того, что хотел бы изучить и понять в разработке. Вот так просто сдаться и пойти печь пиццу? Ни за что. Люди, которые не занимаются программированием, никогда не поймут, почему это так важно. Но хотят, чтобы я понял, почему важна их хрень. Нет.
Смотрите мой подкаст