Не идите в программисты #2. Говнокод
Привет ещё раз, ебаное. Вам снова пишет нытик из поста о том, что не надо идти в программисты. Признаюсь, не собирался писать продолжение, но комменты так доставили , что удержаться просто невозможно<. Благо, я таки уволился с галеры, так что теперь у меня куча свободного времени и хорошее настроение. Высер этот, как и предыдущий, для ребят, которые хотят войтивайти из интереса. Итак, главный столп украинского айти – это говнокод. И причин тому множество. Про первую я писал – галеры не заинтересованы работать качественно. Ну нахуя им это делать, скажите на милость? Чтобы для поддержки продукта было достаточно двух средней руки кодеров, а не овердохуя «синьёров»? Чтобы фича внедрялась за час, а не за неделю? Чтобы продукт можно было передать другой команде без диких затрат? Где тут прибыль? Галерам это не то, что не нужно – противопоказано. Это подрывает столпы их успеха. Конечно ни одна галера не скажет вам прямо, что работать нужно хуёво. Но сделает всё, чтобы у вас не осталось выбора.
Например, то, как будут мерять вашу продуктивность. Такого критерия как «он пишет классный код» нет. Есть «количество тасок в итерацию», «количество закомиченных строк в гите», «количество кунилингусов, которые ты сделал ПМу Маше». Это всё абсолютно контрпродуктивно, потому что качественный код пишется долго, зачастую занимает мало места относительно говнокода, а на лизание всех Маш просто не хватает времени. И если попробуешь пойти против системы – тебя вызовут на ковёр и выдадут что-то типа: «ты – андерперформабл и не умеешь работать в команде, нам придётся расстаться». Это неизбежно, ведь любой организм отвергает чужеродные элементы, а для галер нет ничего более далёкого, чем романтики-перфекционисты. И не думай, что если вся иерархия над тобой состоит из бывших программистов – то будет иначе. Есть такой Принцип Питера — «В иерархической системе каждый индивидуум имеет тенденцию подняться до уровня своей некомпетентности». Не говоря уже о том, что «на высокий пост» пробиваются самые «успешные». Ну то есть профессиональные Маш лизатели, тасок закрыватели.
Другой момент – это борьба за клиентов. Галеры конкурируют друг с другом и заказчику есть из кого выбирать. Главный аргумент в борьбе – время. Клиент – он не программист, он не понимает всяких нюансов. Не понимает, что экономия месяца сейчас означает потерю шести через год. Что не все фичи одинаково полезны. Всё это можно объяснить (вопреки распространенному заблуждению большинство клиентов таки не дураки), но нахуя? А вдруг не поверит и уплывёт к конкурентам? В общем, вас попросят слепить за вечерок прототип, чтобы хоть какой-то функционал был. Потом переделаем, ободрит вас ПМ Маша. Ага, щас. Этот слепленный на скорую руку прототип станет фундаментом всего проекта. Сначала к нему прилепят небольшую фичу, потом ещё и ещё… И вы будете участвовать в строительстве небоскрёба на основе дачного сортира. Отсутствие долгосрочного планирования и, как следствие, нормальной архитектуры – это вообще болячка аджайла, а когда к нему примешивается спешка… В общем, «большие динамично развивающиеся проекты» – чуть менее чем всегда невыносимо ужасны.
Вторая причина – это твои коллеги. Их условно можно поделить на 4 типа: «умеет и хочет работать качественно», «не умеет, но хочет», «умеет, но не хочет», «не хочет и не умеет».
Первых очень мало, и далеко не факт, что они станут союзниками/помощниками. Многие предпочитают страдать молча, лишь бы не заработать неприятностей себе на жопу. Другие самореализуются в своих пет-проектах, а на работе лямку тянут.
Вторые – это джуны, недавно с ВУЗа. Их можно (и нужно) взять под крыло и обучать. Иногда из такого джуна вырастает человек. Но чаще всего всё прекращается после воспитательного уан-ту-уана с вышеупомянутой Машей. Начинающие программисты не могут легко менять галеры, боятся начальства и делают, что скажут. Скажут им писать говнокод – будут писать.
Третьи – обычно дяди за 35, которым всё это давно надоело. У них семья, дети, ремонт. Да ебали они напрягаться. В конце концов – не их же галера.
Четвёртые – это те самые 23-летние сеньоры, профессиональные формошлёпы, мерзкие смузихлёбы, посетители барбершопов, пожиратели плесневелых сыров за 500 гривен. В моё время таких не было, но сейчас их если не половина, то треть уж точно. Они знают полтора фреймвёрка, банду четырёх если и читали, то не поняли, Макконела не осилили, про Фаулера вообще не слышали. Единственный развитой скил – прохождение собеседований. У этих людей мышление «в глубину» в принципе не работает, а эту вашу архитектуру они считают какой-то непонятной хуйнёй. Саморазвиваться не хотят, потому что жизнь и так удалась. Подробнее писать нет смысла, на ёбанном об этих кадрах и так всё сказано.
Сознательно или нет, но все эти кадры идут лёгким путём: делают по образцу (тому самому сортиру-прототипу), если он есть, а если нет – говнокодят. Более того, даже если ты будешь исходить из принципа моя хата с краю, буду делать правильно, а остальные пусть творят, что хотят – то погоришь. На галерах очень не любят разделение ответственности. Обычно все занимаются всем. Под этот идиотизм придумывают миллион аргументов («а вдруг кто-то заболеет?», «а вдруг кто-то уволится?», «мы решаем любые проблемы»), но факт остаётся фактом: пока ты будешь ковыряться в чужом говне – кто-то изговнякает твой блестящий няшенький модуль. И сделать с этим, дорогой друг, ты ничего не сможешь. Я пытался, но это уже совсем другая история, которую я напишу в следующий раз.
Всем защекоинов и хорошего настроения!