В прошлом году мы с моим партнером отправились навестить наших друзей Девику и Руди, которые живут на противоположном конце нашей маленькой страны. Мы собирались у них переночевать. На половине пути я свернул не туда и заметил это только через пятнадцать минут. Мне не хотелось выслушивать обвинения в том, что я, как всегда, заблудился, поэтому ничего не сказал. Я просто молился, чтобы впереди был еще один поворот, который позволит нам вернуться на основную дорогу, и разворачиваться в итоге не пришлось. К счастью, так и случилось, и я успокоился. Вся дорога заняла два часа, из них на этот небольшой объезд ушло около десяти минут. Мой партнер, который ориентируется еще хуже, чем я, так ничего и не заметил, а наши друзья сказали, что мы добрались достаточно быстро. Поскольку все были довольны, я не видел смысла рассказывать о том, что мы могли приехать еще раньше.
На следующий день по пути домой мы услышали по радио, что впереди огромная пробка именно в том месте дороги, которое мы, заблудившись, случайно объехали накануне. Поэтому я сказал своему партнеру, что беспокоиться не о чем, поскольку мне известен небольшой объезд, который займет не более десяти минут и позволит избежать пробки. В общем, мне удалось с пользой применить информацию, полученную в результате совершенной накануне ошибки. Поскольку у моего партнера плохо с ориентацией в пространстве, я был уверен, что он не узнает участок дороги, по которому мы по ошибке проехали накануне. Пусть временно, но моя репутация опытного водителя была спасена.
Ошибки в проектах по разработке ПО нельзя назвать безусловным злом. Хотя они могут привести к дополнительным затратам, часто в результате возникают некие плюсы, иногда даже способные перевесить минусы. Поэтому не слишком переживайте, если в ходе проекта вы свернули немного не туда. Исправьте ошибку и учтите приобретенный опыт на будущее.
Мутациив сложных системах, независимо от того, преднамеренные они или нет, представляют собой «случайный процесс». Сначала возникает сама мутация, и лишь затем внешняя среда решает, будет ли данное изменение полезным. Таким образом, полезность мутаций можно назвать случайным результатом [Gell-Mann 1994: 67]. Они позволяют выяснить, что работает, а что нет. Следовательно, к ошибкам нужно относиться не как к безусловно нежелательному явлению, а как к механизму обучения [Weinberg 1992: 181].
В книге «Управление фабрикой дизайна» (Managing the Design Factory) Дональд Райнертсен убедительно показал, что невозможно максимизировать доступную нам информацию, если целиком ориентироваться на максимизацию успеха [Reinertsen 1997: 71–79]. Многие специалисты по теории сложности разделяют представление, что, если вы стараетесь не совершать ошибок вообще, многому вы не научитесь.
Преднамеренные или случайные ошибки должны стать неотъемлемой частью любого творческого процесса. Эволюцию можно воспринимать как систематическое управление ошибками [98].
Опираясь на эту идею, некоторые эксперты в области разработки ПО проповедуют отказ от поиска идеальных процессов, полагая, что каждая мутация и каждая неудача дают команде возможность получить дополнительные данные об адаптивном ландшафте и его изменениях в качестве реакции на действия команды. Чем большей информацией об адаптивном ландшафте располагает команда, тем легче ей по нему передвигаться.
В рамках подхода, противоположного стандартизированным процессам, каждый новый проект рассматривается в качестве пилотного. Если существует привычный способ выполнить данную работу, то именно его использовать не разрешается . То есть стандартной будет ситуация, когда как минимум какая-то часть работы выполняется нестандартно [99].
Еще 6000 лет назад люди выяснили, что нагревание металлов с последующим охлаждением меняет их свойства, в частности повышает прочность и твердость (металлов, не металлургов!). Это процесс называется закалкой. При нагревании атомы металла приходят в движение, а когда металл быстро охлаждают, атомы образуют более регулярную структуру. Это своеобразная форма «снятия стресса», при которой намеренное воздействие помогает системе легче обрести новое равновесие, чем она могла бы сделать без вмешательства извне.
Исследователи полагают, что подобные явления происходят и в сложных системах. Ошибки и шум в системе, привносимые внешней средой, приводят систему в движение, позволяя ей отойти от субоптимальных результатов и относительно более легко перейти в лучшее состояние. Ученые называют этот процесс модельной закалкой; в нем случайность помогает системе найти глобальный оптимум [Miller, Page 2007: 24, Lissack 1999: 115–116].
Читать дальше
Конец ознакомительного отрывка
Купить книгу