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