Про степень осведомленности
Люди презабавнейшим образом делятся на три категории: эрудиты, узкие специалисты и невежды.
С эрудитами интересно. Они знают, кто первым среди Тредиаковских использовал рифму «кровь-любовь», могут объяснить на пальцах принцип работы трансмультиплексора и помнят наизусть дату Куликовской битвы. Знания их обширны, но поверхностны. Пока вы пытаетесь разобраться в подоплеке отличий холодного термоядерного синтеза от нагрева плазмы в токамаке, они уже погружены в изучение планов Маска на ближайшую декаду.
Эрудиты, попавшие в разработку программного обеспечения, — мечта линейного менеджера и кошмар команды сопровождения. При решении мало-мальски нетривиальной задачи, они ограничатся сиюминутным гуглежом, и беглым взглядом на первую ссылку в выдаче. Глиссандо по диагонали той заметки на медиуме — и инструмент, который будет поддерживать всю конструкцию в течение ближайших десяти лет — выбран.
Эрудиты считают, что сносно владеют дюжиной языков программирования и способны поддержать разговор еще о паре сотен: от алгола до малболджа. И это в каком-то смысле правда. Они действительно могут написать полэкрана кода на питоне и подправить функцию на си в глубине ядра. Правда, асимптотическая сложность решения… Ну, тут уж как повезет. Впрочем, если эрудит умен, — этот код будет ничуть не хуже, чем результат работы узкого специалиста среднего дарования с двадцатилетним стажем. И все же невозможно написать Тайную вечерю в перерыве между доказательством гипотезы Ходжа и открытием нового инертного газа.
Узкие специалисты, наоборот, выходящий за рамки конкретных нужд кругозор — презирают. Специалист по крепостному праву в России нипочем не назовет дату открытия лондонского метро. Зато они могут часами копаться в исторических архивах, бытовых блокнотах автора теоремы и ключах компилятора. Перед началом использования чужой библиотеки они штудируют документацию с таким усердием, словно следующий этап — сдача по ней экзамена дотошному психопату, от которого зависит их дальнейшая судьба.
В разработке они — причина мигрени менеджера, пример идеала для отдела тестирования и заноза в заднице для всей остальной команды. Пока узкий специалист скрупулезно доводит покрытие тестами в Виларибо до заветных 100%, в Вилабаджо уже выкатывают релиз третьей версии. Такие люди иногда бесценны: они способны найти ошибку в поросшей мхом функции, доставшейся нам от предков, — просто буравя ее взглядом в течение нескольких дней. Они помнят наизусть документацию и нуждые им программные вызовы. Алгоритмическая сложность им очевидна с точностью до константного множителя.
Но сверстать страничку на три строки разметки с примером они уже не в состоянии. Они настолько глубоко залезли в свой шурф, что ни изменение рельефа, ни даже прорытые коллегами штольни — выбраться на поверхность им уже не помогут. С другой стороны, все решения, все-таки доведенные ими до релиза — скорее всего будут лишены явных ошибок, покрыты тестами и снабжены прекрасной документацией. И все же невозможно эффективно заколотить шуруп, когда из инструментов под рукой — лишь микроскоп.
Из-за эрудитов рушатся мосты и накапливается технический долг. Поверхностного взгляда далеко не всегда достаточно, чтобы оценить масштаб проблемы и спроектировать подходящее решение. Из-за узких специалистов накапливается технический долг и рушатся мосты. Двойной запас прочности опоры — недостаточное условие для устойчивости всей конструкции, да и время поджимает.
Поэтому мне лично милее всего невежды.
Если представитель этой касты неглуп — и горизонт взглядом окинуть не проблема, и правильное место для ямы выбрать несложно, а там уж и вынуть пару кубометров грунта — задача вполне посильная.
При этом на невежд обычно искоса поглядывают представители и эрудитов и узких специалистов: ведь они не помнят наизусть дату имерийского восстания, да и вряд ли вообще способны сказать, кто такие имерийцы. Самое удивительное, что ни то, ни другое почти никогда не требуется для качественного решения поставленной задачи.