Психбольница в руках пациентов
Шрифт:
Вероятность правдивости утверждения о монете огромна, а хомо сапиенс живет в мире повторяющихся событий. Но всегда есть вероятность отрицательного результата, а программисты живут в мире возможностей. Если это может произойти, об этом следует задуматься. В мире программного обеспечения, где преобладают точно сформулированные утверждения, даже маловероятные события попросту нельзя игнорировать.
Программисты называют эти события с крайне низкой вероятностью «исключительными ситуациями» 21 . Наступление подобных событий маловероятно, но если их не предусмотреть, программа даст серьезный
21
Другие названия – «крайние случаи», «специальные случаи», «граничные условия».
Есть основания полагать, что самым главным отличием профессионала от дилетанта в сфере программирования является одержимость эксперта подготовкой к исключительным ситуациям. Столь фанатичная подготовка к вероятному неизбежно заслоняет правдоподобное. Результатом становятся продукты, взаимодействие с которыми щедро сдобрено редко востребованными или совсем не востребованными органами управления, мешающими работать с нужными функциями. Самая распространенная жалоба пользователей: с программой тяжело работать, потому что в ее интерфейсе слишком много настроек, не отличающихся одна от другой.
Замечательный пример «щедрости в эгоизме», по Бронсону, – изобилие ненужных и нежелательных возможностей, появляющихся в результате возможностного мышления программистов. Они поставляют нам много такого, что нужно только им самим.
Программисты шутят, что существует всего три числа: нуль, единица, бесконечность. В мире компьютерных вычислений она обретает смысл. В двоичном внутреннем мире компьютера процесс либо происходит, либо нет – это нуль или единица. Если какое-либо событие может случиться единожды, это означает, что оно может повториться бесконечное количество раз.
Код установки программы и завершения работы системы пишется таким образом, что может выполняться лишь единожды. Если программа попытается выполнить его повторно, это может привести к сбою компьютера или, по меньшей мере, к серьезным ошибкам в работе. Другие фрагменты программы спроектированы таким образом, что могут выполняться повторно. Практически любая часть произвольной программы, способная отработать дважды без сбоев, может исполняться любое число раз. Для кода и для хомо логикус, программиста, нет особой разницы между двумя запусками и двумя миллионами или миллиардами запусков.
А что же люди? Они понимают нули и единицы, но, кроме того, еще твердо понимают двойки, семерки и число тридцать один. Большинству людей сложнее представить миллион вещей, чем 300 вещей. Типичный человек выполняет действия в количествах, которые не исследуются программистами. Скажем, заядлые лыжники-любители могут потратить на лыжные походы десяток выходных за сезон. За сорок лет активного катания это составит менее 500 раз. Современные цифровые компьютеры способны обработать 500 объектов за долю секунды. Фанат любой программы запустит ее не более нескольких тысяч раз, а программисты продолжают думать в масштабах бесконечного числа событий.
Хорошие программисты преднамеренно игнорируют
Программисты ведут себя грубо и прямолинейно
Вероятно, самое удивительное в хороших программистах – это их подражание бугаям. Я вполне сознательно употребляю слово «бугаи», поскольку оно ассоциируется с незрелостью, эгоизмом, соперничеством, а также с физической силой и координацией.
Говоря «бугай», я вспоминаю уроки физкультуры в средней школе. Некоторым ребятам природа дала более развитую, сильную мускулатуру и хорошую координацию. Они добивались превосходных результатов в организованных занятиях спортом, однако, кроме того, обнаружили, что могут подчинять себе других, не таких сильных соучеников. Эти «спортсмены» господствовали не только на бейсбольных и футбольных полях, но еще и в раздевалках и на школьном дворе, в соревнованиях, не предусмотренных расписанием.
Семнадцатилетний парень ростом метр восемьдесят обладает силой мужчины, но не обладает его зрелостью. Этот мужчина-мальчик не проявляет сострадания к тем, кто слабее. Его донимают подростковые муки, и к нему еще не относятся как ко взрослому человеку. Его философия жестока и проста – держи удар или умри: «Не можешь сделать то же, что и я? Ты просто никчемный неудачник». Любой юноша на игровой площадке, не способный состязаться с ним в физическом плане, считается недостойным. Имея физическую возможность доминировать, он доминирует.
И вот с этим амбалом происходит интересная вещь. Окончив школу и попав в реальный мир, он обнаруживает, что способность физически доминировать над другим человеком быстро перестает быть его сильной стороной, становится бесполезной. В школе потенциальную угрозу со стороны круглолицего очкарика можно с легкостью устранить: пара хороших ударов и надменный гогот школьной спортивной команды быстро ставят парня на место. В деловом мире кулаки и нахальство использовать невозможно. В конференц-зале недопустимы и не действенны приемы с пинками и ударами мокрым полотенцем. И хотя бугай по-прежнему сохраняет физическую возможность для победы над другим, более слабым человеком, в случаях, когда этот человек является коллегой или руководителем, победа обязательно станет пирровой.
Бугаи, в прошлом незрелые школьники, обнаруживают, что приходится выучить весьма унизительный урок. Вырвавшись на просторы внешнего мира, они понимают, что общество обрезало им крылья, и учатся успешно сосуществовать с людьми, обладающими менее развитой мускулатурой. Бугаи широко представлены в бизнесе, и в конечном итоге они неплохо справляются. Они успешно совершают этот переход, пусть без готовности и желания. Сохраняя врожденный дух соревнования, они достигают также определенного уровня зрелости и самоотверженности, становясь достойными членами общества.
Программисты – совсем как эти бугаи. Учась в школе, многие программисты не имели физического уровня бугаев, но обладали более острым умом и лучшей координацией интеллектуальных функций. Они превосходно проявляли себя в организованной деятельности: в дискуссиях, в литературных клубах, в шахматной команде.
Что касается терзаний переходного возраста, здесь их способности стоили не так много, как мускулатура. На школьной спортплощадке более сильные юноши легко доминировали над ними. Тощий семнадцатилетний, обладающий познаниями взрослого в математике, физике и информатике, по-прежнему остается физически слабым мальчиком, которого игнорируют на футбольном поле и считают неудачником на любовном фронте. Этого ребенка мы называем «ботаником».