Книга: The Programmers

Как развивался этот подход

Как развивался этот подход

Создание этой работы — само по себе пример картостроения, поэтому будет показано, как была собрана вся картинка.

Необходимость этой работы стала ясна после взгляда на то, что произошло, когда в компьютерную индустрию был внедрен стандарт ISO 9001. Оказалось, что в лучшем случае, он обеспечивал гарантию, что сертифицированная по ISO 9001 организация была по крайней мере выше уровня «Лаурел и Харди» ('Laurel and Hardy'), где кто-то смог потерять исходный код работающих у заказчиков программ, но не давал ничего позитивного для улучшения способностей программировать у занимавшихся программированием людей. Несколько лет назад был инцидент, когда работникам организации, которая производила программное обеспечение для управления огромными мельницами, пришлось посетить заказчика под благовидным предлогом, вынуть ПЗУ (ROM) и скопировать его для того, чтобы дизассемблировать содержимое и обеспечить поддержку программы. Никто из тех, кто оказывался в такой ситуации, никогда такое не забудет. Поэтому ISO 9001 был хорош, но реальная работа нуждалась в «инженерном чутье» и «здравом смысле», которые упоминались во всех лучших документах — составляющих, которые мы не могли получить подражая автозаводам.

Но затем мы увидели, что в некоторых организациях, существовала необъяснимая, но почти религиозная вера в то, что сведением всего к упрощающему процедурализму можно достигнуть совершенства, и что метры книжных полок заключают в себе необходимые простые процедуры. Окруженное процессом ограниченное обдумывание того, что нужно делать, могло быть заброшено или лучше уничтожено, и каждый мог бы бегать кругами, будучи «профессионалом», не достигая на самом деле вообще ничего. В те старые времена даже у самых бедных организаций исходный код был достаточно длинным, чтобы продавать его заказчику и платить арендную плату!

Нам нужно было выяснить, в чем состоит настоящее программирование, чтобы противостоять как негативным последствиям плохо применяемого ISO 9001, так и как важный ингредиент, дополняющий хорошо применяемый ISO 9001. Основываясь на том, что в ISO 9001 было нечто упущено из описания рабочего места, и в честь сюрреалистического объявления лондонской подземки, эта работа получила в тот момент рабочее название 'Mind the Gap' («Осознай пробел» / «Напоминаем о перерыве в движении» / «Осторожно, зазор»).

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

Конечно, прямо с самого начала мы столкнулись с трудностями описания на «языке управленцев» того, что мы увидели, разговаривая с великими программистами. Мы проводили много времени споря в кружках, пытаясь поместить двумерное создание в третье измерение, показывая его последовательностью шагов, каждый меньше предыдущего. В целом, конечно, представление было с изъяном, поскольку не важно, насколько тонким был срез шага, он по-прежнему оставался трехмерным объектом, недоступным для двумерной твари. Но тогда мы этого не знали.

В то же самое время мы смотрели на образ мыслей великих программистов изнутри, анализируя наш собственный процесс мышления в процессе работы, и наблюдая за другими. Это дало гораздо больший прогресс, и мы очень быстро идентифицировали «Программиста-Ремесленника» ('Artisan Programmer') как фигуру, больше напоминающую мастера-ремесленника прошлого, чем современного рабочего на конвейере.

Мы также интересовались лежащей в основе акта программирования когнитивной нейропсихологией, но вряд ли вообще что-то получили. Мы не смогли найти много работ, связывающих субъективный опыт с его платформой, и одна из областей, на которую нам особенно хотелось взглянуть, это отличия в программировании у разных полов, оказалась особенно редко исследуемой. Приватно нейропсихологи сообщали нам, что различия полов в мышлении иногда очень трудно исследовать вследствие соображений «политкорректности». Однако, при отсутствии полезных психологических исследований, мы делали попытки сконструировать работающие определения субъективного опыта. Это случайно привело к мысленному эксперименту с простейшей программой, который окончательно похоронил внешний процесс, и заставил нас сконцентрироваться на субъективном опыте.

Период с весны 1992 до осени 1995 мы провели в беседах с программистами, обсуждая и обдумывая то, чему мы научились. Мы должны были испытать сотни способов «рассказать историю», каждый из них погибал на языковом барьере. Однако, мы обнаружили, что некоторые немногие вопросы возникали вновь и вновь, в одном месте за другим, и на эти вопросы имелись правильные ответы. Они были сформулированы как Принципы Проектирования. Мы также обнаружили, что некоторые идеи и истории, которые нам рассказали великие программисты, оказывали очень положительный эффект на новичков, которым мы их рассказывали. Этот материал также был включен в Камень.

Затем, осенью 1995, экстраординарная работа Фредерика Кантора (Frederick W. Kantor) в области физики «Информационная механика» (Information Mechanics) дала главное вдохновение. В ней Кантор отбросил все костыли и попытался построить целостную картину физики чисто на концепциях информации. Вероятно, решением нашей проблемы стало бы отбрасывание всего того языка, который, как мы знали, не работал, и использование языка, который, как мы знали, работал. Возможно, посредством такой онтологической строгости, мы смогли построить самодостаточную картину, даже если она шла в разрез «главному направлению» реальности, что мы видели достаточно отчетливо.

Очень быстро мы сфокусировались на движении сознания и увидели связь с алхимией. Быстро проявились связи с другими мистическими традициями, и мы пытались использовать инспирированный мистикой язык к новичкам, и объяснили цикличность алхимических путешествий. Мы обнаружили, что можем улучшить производительность программистов лучше прежнего, но мы все еще не могли объяснить на обычном языке — почему. С этого момента мы называли наш проект «Развернутое сознание» (`Deployed Conciousness').

Летом 1997 мы столкнулись с ADHD, и сразу распознали в чертах характера детей с ADНD великих программистов, с которыми мы разговаривали. Мы могли видеть, что делали дети, но нам казалось совершенно очевидным то, чего не видели психологи и другие профессионалы, и они могли бы научить их реальным вещам вроде теории чисел вместо того, чтобы пичкать амфетаминами, чтобы те сидели тихо и выполняли бессмысленную, в духе школы паковщиков, «работу». Это было большое потрясение, но оно дало нам важный ключ: здесь должно присутствовать некоторое ослепление сознания, что означает, что эти психологи были просто не способны понять детей и не могли даже осознать, что происходит нечто, что они не могут понять.

Это показало нам, почему существует проблема языка — восхитившись, когда это проявилось, нам пришлось заключить, что все наши коллеги действительно находились в одном из двух (и только двух) возможных состояний, и мы могли описать различия между ними. Мы быстро это записали, предполагая некую лежащую в основе нейрологию в виде черного ящика, возможно включающую сдвиг в стратегии обработки, раз некий ресурс или что-то другое достигло критического уровня и сделало переключение на другую стратегию оптимальным решением, и распространили среди друзей, которые с самого начала обсуждали с нами эти темы.

Мы получили много откликов, в большинстве случаев положительных, но один комментарий оказался критическим. Нас спрашивали, не могли бы мы найти какую-нибудь связь между нашей работой и ME (aka CFIDS), истощающим послевирусным расстройством (debilitating post-viral disorder), которое разрушило жизни многих активных творческих людей. Многим картостроителям казалось, что они знают нескольких людей, пострадавших от ME, и мы составили список. Да, это все были активно думающие люди, а не наглые неинтеллектуальные «юппи», о которых говорили бы, что они подхватили «грипп юппи» (`yuppie flu'). Но далее, они все были думающими людьми, чьи чрезвычайно вежливые характеры вынуждали их отвечать на действия величайшей глупости, набрасывающейся со всем презрением, на какое может мобилизоваться паковщик, унынием, а не, скажем, гневом или презрением. Побейте обезьяну палкой подольше, и у нее повыпадают волосы. Это психологический эффект от постоянной психологической жестокости. ME проявлялась в период, когда фундаментализм паковщиков сокрушил все в мире, приводя к гигантской глупости и жестокости. ME с успехом могла бы быть следствием. Но почему только у вежливых? Они все были очень активны, они бы покрыли черепицей дом, потому что стало тепло, или объездили бы Канаду на велосипеде, чтобы отпраздновать ее открытие, хотя все они были мечтателями. Это не могло быть мечтательством, поскольку мы все мечтатели (daydreamers)… и упал пенс.

Различие между паковщиками и картостроителями заключается в том, что паковщики социально обусловленно подавляют свои естественные способности строить мысленные модели мечтая (фантазируя), и вместо этого скатываются к механически заучиваемым процедурным, ориентированным на действие реакциям. Мы могли отбросить нейрологические черные ящики, и просто сказать «мечтание» ('daydreaming'), чтобы навести мост к обычному языку. И тогда эмпирическая работа, как и понимание природы проблемы языка, все стало на место.

Так завершился путь нашего исследования. Когда начинали, мы не знали, что найдем, но у нас была уверенность, что это окажется полезным. За первых три с половиной года мы помогали нескольким новичкам разрабатывать, но мало чего достигли еще. Мы собирали материал и искали закономерности.

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

Оглавление книги


Генерация: 1.358. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз