Опираясь на эту идею, некоторые эксперты в области разработки ПО проповедуют отказ от поиска идеальных процессов, полагая, что каждая мутация и каждая неудача дают команде возможность получить дополнительные данные об адаптивном ландшафте и его изменениях в качестве реакции на действия команды. Чем большей информацией об адаптивном ландшафте располагает команда, тем легче ей по нему передвигаться.
В рамках подхода, противоположного стандартизированным процессам, каждый новый проект рассматривается в качестве пилотного. Если существует привычный способ выполнить данную работу, то именно его использовать не разрешается. То есть стандартной будет ситуация, когда как минимум какая-то часть работы выполняется нестандартно
[99].
Еще 6000 лет назад люди выяснили, что нагревание металлов с последующим охлаждением меняет их свойства, в частности повышает прочность и твердость (металлов, не металлургов!). Это процесс называется закалкой. При нагревании атомы металла приходят в движение, а когда металл быстро охлаждают, атомы образуют более регулярную структуру. Это своеобразная форма «снятия стресса», при которой намеренное воздействие помогает системе легче обрести новое равновесие, чем она могла бы сделать без вмешательства извне.
Исследователи полагают, что подобные явления происходят и в сложных системах. Ошибки и шум в системе, привносимые внешней средой, приводят систему в движение, позволяя ей отойти от субоптимальных результатов и относительно более легко перейти в лучшее состояние. Ученые называют этот процесс модельной закалкой; в нем случайность помогает системе найти глобальный оптимум [Miller, Page 2007: 24, Lissack 1999: 115–116].
Это выглядит как будто бы систему во время прогулки по адаптивному ландшафту подталкивают в том или ином направлении, заставляя скатиться с холма, на котором она могла застрять (рис. 15.5). После такого толчка система может внезапно оказаться в долине, а оттуда добраться до более высокого пика. Модельная закалка демонстрирует, как случайные процессы оказываются полезны при движении по адаптивному ландшафту [Miller, Page 2007: 108].
А разве все не наоборот?
Я рисую адаптивные ландшафты, как это обычно делают биологи – точкам максимальной приспособленности соответствуют пики. Это интуитивно понятнее, поскольку с совершенством обычно ассоциируются вершины.
Однако физики рисуют адаптивные ландшафты ровно наоборот: у них позициям наибольшей приспособленности соответствуют самые низкие положения. И действительно, для иллюстрации понятия модельной закалки их способ подходит лучше, поскольку в результате «встряски» система благодаря гравитации скатывается вниз, к более оптимальному положению.
Но не забывайте, что, как бы вы их ни рисовали, адаптивные ландшафты – это метафора. В действительности нет никаких горных цепей, встрясок или гравитации. Есть только чрезвычайно сложная математика.
При разработке ПО аналогичный подход позволяет командам не застрять в точке локального оптимума и найти способы повышения своей эффективности. Демарко и Листер призывают использовать политику «конструктивного привнесения дозированного беспорядка» [DeMarco, Lister 1999: 160]. Я иногда называю это «повышение эффективности через несовершенство».
Стратегия секса
Мутации – это эксперименты по замене отдельных частей или компонентов проекта с целью увидеть, какие результаты будут получены в результате такой замены – хорошие или плохие. Но это не единственный метод в нашем распоряжении. Еще одной стратегией будет секс. Или, лучше сказать, кроссинговер, что звучит более научно.
Кроссинговер – способ, к которому прибегает природа, чтобы биологические виды могли достигать пиков в адаптивном ландшафте за один прыжок, а не в результате серии мелких шагов. Ребенок наследует половину своих генов от матери, а другую половину – от отца. Мать и отец – вполне приспособленные особи, каждая из которых располагается в своем адаптивном ландшафте на пике или где-то рядом с ним. (Если бы это было не так, они были бы больны или мертвы – в том и другом случае размножение было бы затруднено.) Случайным образом перемешанные гены, унаследованные ребенком, помещают его в адаптивном ландшафте где-то посередине между отцом и матерью. Если в этой точке долина, то ребенок будет хуже приспособлен к данной среде, чем его родители. Но существует достаточно высокая вероятность, что в этой точке может оказаться даже более высокий пик, чем те, на которых находятся его родители. С точки зрения сложных систем две системы произвели на свет третью, которой за один прыжок удалось достичь более высокой точки в адаптивном ландшафте (см. рис. 15.6)!
Данная стратегия работает, потому что в сильно пересеченных адаптивных ландшафтах пики часто группируются. Поэтому при выведении улучшенных сортов растений или при разведении скаковых лошадей люди применяют кроссбридинг [Holland 1995: 66]. В качестве родителей берут две особи, показавшие лучшие результаты, их гены перемешивают и в итоге получают потомство, которое часто превосходит своих родителей.
Мутации – это способ, при помощи которого природа ставит эксперименты. Это осторожные шаги в новых направлениях с помощью произвольного изменения маленьких составляющих системы. Кроссинговер позволяет природе объединять хорошо зарекомендовавшие себя практики. Это способ относительно безопасно совершить прыжок в адаптивном ландшафте и таким образом провести дополнительное исследование территории, о которой в общих чертах уже известно достаточно много [Miller, Page 2007: 184].
Вы спросите, в чем здесь практический урок для команд разработчиков? Я бы рекомендовал проводить скрещивание команд и проектных подходов. Когда вы начинаете новый проект, попробуйте сочетать метод, оказавшийся эффективным в предыдущем проекте, с процессом, оказавшимся эффективным в каком-то другом проекте. Или попробуйте создать из существующих команд новую, особенно если команды существуют достаточно давно и темпы взаимного обучения сотрудников в них замедлились. Такое перекрестное опыление может дать «потомство», эффективность которого будет превышать эффективность даже очень сильных исходных команд.
Стратегия горизонтального переноса опыта
Мутации и секс далеко не единственные существующие в природе способы, позволяющие биологическим видам передвигаться по адаптивным ландшафтам. В частности, существует третья стратегия, чья роль в эволюции многоклеточных организмов до последнего времени недооценивалась, хотя, по-видимому, в мире бактерий она всегда играла существенную роль. Имеется в виду горизонтальный перенос генов (ГПГ).