The Programmers Stone (Программистский камень) - Alan Carter
Шрифт:
Интервал:
Закладка:
Урок прост. Без лежащего в основе картостроения, TQM превращается в черную комедию. С картостроением методы Качества могут учить и побуждать, а энтузиазм и удовольствие от работы, о которых говорят защитники TQM — это ничто иное, как обычное настроение картостроителя!
В этой модели Системное Мышление — подход, защищаемый Питером Сенге в «Пятой дисциплине» (Peter Senge The Fifth Discipline ), может рассматриваться как коллекция полезных концепций и технологий картостроения, оптимизированных для вопросов управления.
Заставь себя!
В наше время живет гораздо больше паковщиков, чем картостроителей. Одна из целей этой работы — показать эффективные методы картостроения, но другая цель — объяснить, почему озарения многих из нас кажутся непонятными для других. Мы должны осознать, когда наши представления творцов-программистов непонятны для коллег-паковщиков, чтобы дать им возможность освоиться со сложными явлениями, требующими некоторого времени на обдумывание. Мы также должны осознать, что быть правым — это не значит быть популярным, а личная заинтересованность в качественной работе часто приносит больше удовлетворения и меньше стресса, чем страусиное поведение.
Мы должны также осознать, что возможно эффективное взаимодействие с картостроителями, даже с теми, кто далек от нашей области. Признавая существование специфического коммуникационного барьера при общении с одними, мы также должны осознавать, что с другими взаимодействие часто оказывается гораздо проще, чем можно было бы предположить.
Необходимо также четко осознавать границы нашей ответственности. Если при обсуждении с заказчиком оказывается, что он не ухватывает существенные моменты задачи, помните, что наша личная, поставленная нами самими цель — найти наилучший ответ — не обязательно означает заставить заказчика принять один лишь этот ответ. Любое размышление, которое допускает одну стратегию, обычно допускает несколько других стратегий, каждая из которых имеет свои достоинства и недостатки. Это всегда можно обобщить и получить удовлетворение от хорошо проделанной работы по изучению возможностей и обоснования своего выбора заказчику. Если, при полном понимании, заказчик делает выбор, который вам кажется глупым, то каким еще способом организация заказчика может чему-то научиться?
Вы не должны спасать весь мир, только свой небольшой кусочек и еще чуть-чуть, если сможете!
Terra incognita
В своей книге Peopleware Том де Марко (Tom de Marco) и Тим Листер (Tim Lister) наводят на мысль, что великие программы делают «однородные» (gelled) команды, и предлагают способы повысить сплоченность команд. Рассматривая «однородные» команды, мы можем заметить в них легкость общения и эффективность работы. Но добавим в уравнение концепцию картостроения, и картинка изменится. «Однородные» команды выглядят скорее как группы эффективно взаимодействующих друг с другом картостроителей, поскольку они могут ссылаться на общую мысленную карту ситуации с помощью нескольких, возможно странно звучащих слов. (Как-то раз разработчики назвали свою подсистему связи с гарантированной доставкой «Фабрикой спагетти». Дело было в неких колечках, свободно летающих в воздухе.)
Они могут не просто быстро обмениваться информацией о своих картах — они могут отрывать кусочки своих карт и перемещать их. Они могут обмениваться кусочками своих карт. Они могут очень быстро реагировать все вместе, как команда. Все они знают, что происходит, они уже тщательно проработали все в своих умах. Они не петушатся и не теряют время на несинхронные действия. Они соответствуют друг другу, хотя у них могут отличаться вкусы в музыке, политике и еде. От роста производительности захватывает дух, тот, кому посчастливилось работать в такой команде, знает, о чем идет речь.
Необходимо найти время для обеспечения понимания всеми того, с чем они имеют дело, и жить станет интереснее, поскольку в 17 часов каждый будет испытывать ощущение успеха.
Попадание в эту ситуацию не случайно, оно воспроизводимо.
Пакеты знаний, фантазии, карты и понимание
Как инженеры-программисты, мы могли бы описать обучение как формирование ассоциаций между референтами[4]. Небо голубое. Дождь в Испании выпадает главным образом на равнине. Эти факты, поддающиеся заучиванию, можно назвать «пакетами знаний»: маленькие кусочки истины (или заблуждений), которыми мы обладаем.
Можно долго идти по пути собирания пакетов знаний. Раннее обучение (как оно направляется взрослыми) для большинства детей почти полностью фокусируется на добывании пакетов знаний. Вещи, которые следует и не следует делать. Методы выполнения задач. Данные, которые необходимо запомнить, чтобы потом вспомнить в нужный момент.
Трюк с пакетами знаний состоит в идентификации ключевого свойства ситуации и определении действия, которое нужно предпринять. Кто-то может достигнуть высокого положения и степеней, управлять автомобилем, и даже знакомиться с представителями противоположного пола используя пакеты знаний. Особо талантливые пользователи пакетов знаний могут набить свои головы мегабайтами законов и умеют складывать в уме шестизначные числа. Некоторые политики опускают стадию распознавания паттерна и используют один единственный универсальный пакет знаний для всего.
Конечно, мы не складываем пакеты знаний в своей голове стопкой, как тарелки. С самого раннего возраста наша естественная реакция на каждый новый пакет — это вопрос: «Почему?»
Мы стремимся соединить пакеты знаний, чтобы создать структуру в нашем знании, мысленную карту, которая дает нам понимание причин и следствий в ситуации. Это понимание позволяет нам получать решение для любой проблемы в рамках этой ситуации, вместо попыток выбрать бездумно заученную реакцию.
В дальнейшей жизни мы должны периодически проводить время в размышлениях, или фантазиях, исследуя отношения между тем, что мы знаем. Это расширяет нашу интегрированную карту и позволяет нам идентифицировать на карте структуры, которые применимы в различных областях. Затем мы можем получить более подробную карту, в которой то, что математики называют «изоморфизмом» (isomorphism), а программисты называют «наследованием» (inheritance), позволяет нам повторно применять знание.
Мы реорганизуем наши мысленные карты, чтобы получить более простые выражения и иметь возможность удержать в уме больше знаний. Когда мы находим более простой способ посмотреть на вещи, то оказывается, что трудно вспомнить, на что это было похоже, когда предмет казался сложным, и мы сами подросли (вырос наш уровень познания). Если есть понимание, то где кончается личность и начинаются собственно данные? Если вспомнить о пакетах знаний, то граница очевидна.
Мы становимся экспертами в применения методов рефлексии, позволяющих исследовать наши карты и пакеты знаний, которые мы еще не включили в эти карты. Вероятно, должны существовать нейрологические механизмы для того, что мы делаем при рефлексии, но в основе должна лежать некая деятельность по распознаванию абстрактных структур. Мы учимся использовать наши мозги.
Без понимания не может быть разумных действий. Без мысленных карт не может быть понимания. Без размышлений (рефлексии) не может быть мысленных карт, только пакеты знаний.
Существуют компьютерные структуры данных, называемые «онтологиями» (ontologies), содержащие массу утверждений (истин), связанных в сети некоторой формой логики предикатов. Например, база данных CYC может использовать карты значений для естественного языка, достаточно хорошие, чтобы интерпретировать подписи к фотографиям и подобрать из них те, которые требуются журналистам.
Картостроители и паковщики
Или, по крайней мере, всему этому следует оказаться правдой. К сожалению, мы происходим из индустриальных или аграрных обществ, где один день был очень похож на другой. Эффективность зависела от согласованной работы в небольших группах. С другой стороны, не требовалось большой изобретательности. Мы создали общественный порядок, который учит людей собирать пакеты знаний и фокусироваться на действии. Размышление («фантазии») подавляется еще в начальной школе. Мы тщательно присматриваемся к детям и замечаем отклонения от норм поведения, основанных на действии. Известно даже, что некоторые родители считают своих детей психически неполноценными, если те не желают заниматься определенным видом спорта.
Нельзя легко научить ребенка размышлению (рефлексии). В отличие от активных физических упражнений, субъективный опыт должен обсуждаться.
Нелегко установить, насколько хорошо личность умеет мыслить. Только в неторопливых беседах или наблюдая за ребенком длительное время, можно убедиться в том, что он может эффективно рассуждать.