Не нанимайте оригиналов

Ну… Хорошо, не так категорично, но всё равно не нанимайте.

Промышленная (aka массовая) разработка пронизана тонной контрактов. Разработчик открывает файл AppleObject и ожидает увидеть там AppleObject. Если ожидание оправдывается, контракт соблюдён. Если внутри драйвер к марсоходу, контракт сломан. Это может быть сколь угодно великолепный драйвер. Гениальный. Волшебный. Но не на своём месте.

И так со всем. Следование style guide. Выбор инструментов. Декомпозиция на модули. Именование сущностей. Поведение кода. Оптимальность в нужных точках. Выбор алгоритмов. Количество и качество велосипедов. Да буквально всё.

Иными словами, если вы заходите в типовую 5-этажку 60-х годов, открываете типовую дверь в типовую двушку, а внутри обнаруживается семиярусная (по 40см на ярус) квартира с вертикальными лабиринтами, семинаристками в скафандрах и преферансом, кого-то пора переводить на другую работу.


Так вот, бойцы, у которых свой уникальный взгляд на разработку, являются одной из худших категорий вредителя. За всю жизнь я не встречал ни одного такого уникального, у которого уникальность из пользы и на пользу. Обычно иначе.

В-нулевых, уникальность от глупости. Ну тут без вариантов. И так ясно.

Во-первых, уникальность от невежества. Чувак профессионально рос в джунглях, там же и кодил в отрыве от достижений галактики. Вышел к людям, ну и понеслось. Джунгли как буквально, так и метафорически. Всегда были и будут разработчики, варившиеся в собственной голове, пока по этой голове не постучат нежно, от чего случаются озарения. Если разработчик признает, что знаний маловато, есть шанс. Если нет, переходим ко второму пункту.

Во-вторых, уникальность от ЧСВ. Я настолько крутой, что. Не читаю книги — в них одна глупость. Не смотрю и не слушаю лекции — что эти бородатые хмыри могут МНЕ сказать полезного? Не разбираю сторонний код больших библиотек — их писали дауны. Вообще идите все в жопу, я лучше всех знаю и умею. В итоге чувак всё в том же отрыве от галактики. Если причиной ЧСВ токмо личность субъекта, всё ясно и печально. Если причиной является большой опыт, всплывает третий пункт.

В-третьих, уникальность от большого одностороннего опыта. Чем больше лет занят чем-то, тем толще соблазн подвинуть собою пуп Земли во всём. Заросшие мхом академики считают, что уж точно любой сервис за неделю напишут, наверняка это не сложнее, чем лекции студентам читать. По ноздри залитые мазутом тимлиды считают, что уж точно интуитивно считают скопом Big-O сервиса на сто лет вперёд за пять минут. Потому учиться не надо. Первым работать руками, вторым головой. Год за годом. В итоге привычная химера. Вроде чувак действительно опытный, не отнять. Но в двух измерениях. А когда дело доходит до третьего, начинается Содом, после которого с реакции читающих исходник можно слезами писать картину “команда жён Лота осмысляет дальнейшую жизнь и мечтает ЭТО переписать”.

В-четвёртых, уникальность творческой личности. Человеку надо было в художники, а он в разработку пошёл. У него хоть под каждой узнаваемой строкой будет подпись “я так вижу, мне так кажется, я так считаю, короче”. И не дурак вроде. И с ЧСВ на уровне популяционной нормы. И читает немало. Но сколько же от таких людей проблем, диву даёшься. Их код зачастую хорош и красив. Иногда он даже идеален. Для другой альтернативной галактики. В которой типовые 5-этажки выглядят шарами, например. А ты лоб сломаешься биться о творца, объясняя, что на этой планете люди живут не в шарах (справедливости ради, бывает и иначе). Пожалуй, это единственная разновидность, которую имеет смысл беречь и приспосабливать к уместному делу. Давайте им атомарные одноразовые задачи, жёстко ограничив песочницу требованиями. 5-этажки не давайте.


И всё. Вы на каждом шагу будете натыкаться на самобытность. Это замечательно, если требуется отойти от типовых решений. Но я не просто так упомянул в начале эссе, что речь про массовую разработку, про именно типовые решения. Их за 50 лет истории накоплено столько, что бОльшая часть работы разработчика заключается не в том, чтобы изобрести очередной винтик, но порыться в складской документации (да хоть в памяти) и найти уже готовый. Да, возможно, его надо будет подточить. Но он будет.

Уникум не знает. Не умеет. Не хочет. Он состоит из одних “не”.

Львиная доля массовой разработки заключается в том, чтобы быстро выдать готовый продукт с ожидаемым поведением как снаружи, так и внутри. Чтобы любой средний разработчик с рынка труда мог уже через неделю после на(й|ё)ма исправить в коде ошибку или добавить новую фичу. Как группы спецназа тренируются штурмовать типовые помещения, так группы разработчиков натаскиваются штурмовать типовые задачи.

И как же утомили те, кто за дверью дворовой туалетной будочки прячет комнату смеха.

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.