Шрифт:
Интервал:
Закладка:
Эволюционная теория внесла значительный вклад в изучение всех видов систем, будь то биологические, цифровые, экономические или социальные. Утверждается, что команды, проекты и продукты эволюционируют в процессе приспособления к изменяющейся среде. И хотя «эволюционное управление разработкой» систем программного обеспечения – это далеко не та эволюция, о которой писал Дарвин, эволюционное мышление помогло разобраться с ростом, выживанием и адаптацией систем во времени. Поэтому я считаю, что эволюционная теория представляет собой интеллектуальную основу нашего знания о системах.
Хотя несколько открытий в рамках теории хаоса были сделаны ранее, настоящий прорыв был совершен в 1970–1980-х годах, а основной вклад был внесен такими людьми, как Эдвард Лоренц и Бенуа Мандельброт.
Теория хаоса учит, что даже самые небольшие изменения в начальных параметрах динамической системы могут впоследствии вызвать серьезные последствия. Это означает, что поведение многих систем в конечном итоге непредсказуемо, а небольшие затруднения могут трансформироваться в огромные проблемы, с чем легко согласится любая группа разработчиков программного обеспечения. Такая непредсказуемость означает далекоидущие последствия с точки зрения предварительной оценки, планирования и контроля системы – это отлично знают ученые-климатологи и специалисты по организации дорожного движения и значительно хуже понимают менеджеры проектов и линейные менеджеры.
Еще одним из открытий теории хаоса стали фракталы и масштабная инвариантность, то есть свойство графиков, отражающих поведение систем, выглядеть одинаково независимо от применяемого масштаба.
Некоторые считают теорию хаоса непосредственной предшественницей теории сложности, поскольку обе они признают неопределенность и изменчивость в качестве основных свойств исследуемых систем. По моему мнению, теория хаоса – это основа наших знаний о сложных системах.
Как нет единого определения сложности, так нет и единой теории, которая объясняла бы поведение всех сложных систем разом [Lewin 1999: x]. Ученые давно пытаются обнаружить фундаментальные законы, которые были бы применимы к любым системам при любых обстоятельствах, но пока что эти попытки не увенчались успехом.
Представляется разумным задать вопрос: что же такое эта «теория сложности»? И хотя есть множество ее определений, существует точка зрения, что единого описания данная теория не имеет[8].
Каждая система имеет свои специфические особенности, поэтому выводы, сделанные из прошлых результатов, не дают гарантии будущих успехов. Так что, судя по всему, все, что у нас сейчас есть, – это набор различных теорий, которые иногда дополняют друг друга, иногда перекрывают, а иногда и противоречат друг другу.
Более того, существует достаточное количество более локальных исследований, каждое из которых внесло свой вклад в развитие знаний о сложных системах. Их можно сравнить с глазами, ушами и пальцами нашего человека, олицетворяющего всю сумму известных на данный момент знаний о поведении сложных систем. Например, исследования диссипативных систем дали нам представление о спонтанном формировании структур и о том, каким образом может протекать самоорганизация систем внутри границ. Изучение клеточных автоматов продемонстрировало, что сложное поведение системы может быть результатом простых правил. Исследования в области искусственной жизни показали, как осуществляется обработка информации в агент-ориентированных системах. Благодаря изучению самообучающихся систем мы поняли, каким образом генетические алгоритмы обеспечивают способность живых систем к адаптивному обучению. А в результате анализа социально-сетевых структур мы теперь понимаем, как распространяется информация среди людей.
Несмотря на то, что некоторые части тела нашего человека выглядят непропорционально и что сам он уродливее, чем зомби в балетной пачке, он тем не менее весьма живой – как и сумма знаний, которую олицетворяет (рис. 3.1). И когда эти знания применяются к сложным системам, мы называем их теорией сложности. Но что конкретно мы имеем в виду, когда говорим, что система, с которой мы имеем дело, сложная?
В дискуссиях по поводу простоты и сложности отметились многие эксперты. Но их участие не привело к прояснению вопроса, поскольку зачастую присутствовала значительная терминологическая путаница. Ниже приводится моя попытка внести ясность в этот вопрос. Так что же такое простота?
Простота обычно определяется количеством усилий, которое необходимо, чтобы понять или объяснить какое-либо явление. Явление, которое легко понять или объяснить, будет простым, в отличие от тех явлений, что запутанны.
Если мы хотим обсудить, что такое простота, полезно уточнить содержательную разницу между сложными и запутанными понятиями или явлениями. Непонимание этой разницы может привести к тому, что вы выберете неправильный подход к решению той или иной проблемы.
Я считаю, что разница между этими двумя терминами должна объясняться в двух измерениях, показанных на рис. 3.2. Первое измерение относится к структуре проблемы и тому, насколько хорошо мы ее понимаем:
• Простая = легко поддающаяся пониманию.
• Запутанная = очень трудная для понимания.
Второе измерение касается поведения системы и того, насколько легко мы можем его предсказывать:
• Упорядоченное = полностью предсказуемое.
• Сложное = предсказуемое в определенной степени.
• Хаотическое = чрезвычайно непредсказуемое.
Мои трусы устроены очень просто. Нетрудно понять, как они работают. Напротив, устройство моих часов весьма непросто: если бы я разобрал их, то мне понадобилось бы много времени, чтобы разобраться в их конструкции и том, как взаимодействуют отдельные части. И все же ни мои часы, ни мои трусы не обещают никаких сюрпризов (по крайней мере для меня). Это упорядоченные, предсказуемые системы.
Команда разработчиков из трех человек также будет простой системой. Чтобы достаточно хорошо узнать каждого члена команды, потребуется лишь несколько совещаний, совместных походов в кафе во время обеденного перерыва и пара кружек пива. Возьмем в качестве другого объекта город. Очевидно, что город устроен не просто, а запутанно. Таксистам требуются годы, чтобы изучить все его улицы, проезды, отели и рестораны. При этом как команды, так и города будут сложными системами. Как бы хорошо вы их ни знали, сюрпризы неизбежны. Они предсказуемы лишь в ограниченной степени, и невозможно знать наверняка, что случится завтра.