Шрифт:
Интервал:
Закладка:
Одним из достижений теории систем, развитие которой продолжалось вплоть до 1970-х годов, был перенос фокуса с элементов системы как таковых на организацию этих элементов. Тем самым было признано, что взаимоотношения между элементами системы – динамические, а не статические. Ученые идентифицировали и изучили такие явления, как аутопоэзис (самопостроение или способы, которыми системы конструируют сами себя), идентичность (каким образом системы можно опознать), гомеостаз (способность систем поддерживать свою стабильность) и проницаемость (то, как системы взаимодействуют с окружающей их средой) [Mitchell 2009: 297].
Именно общей теории систем мы обязаны пониманием, что группы разработчиков представляют собой системы, которым свойственна способность к самопостроению, а также к созданию и поддержанию собственной идентичности. Таким группам необходимо взаимодействовать с внешней средой, а взаимодействия между членами группы столь же важны, сколь и характеристики отдельных членов группы (или даже важнее).
К сожалению, объединение этих первоначально разрозненных концепций не было доведено до конца (что не должно удивлять тех разработчиков ПО, которые пытались соединить различные практики или технологии). И тем не менее наследие общей теории систем весьма значительно. Почти все законы этой теории применимы и к сложным системам [Richardson 2004a: 75], и в целом эта теория продвинулась дальше, чем попытки унифицирования в области разработки программных продуктов.
Примерно в то же время, когда концепции общей теории систем разрабатывались группами биологов, психологов, экономистов и других исследователей, столь же разношерстная группа нейрофизиологов, психиатров, антропологов и инженеров создала новую область исследований, которая получила название кибернетика. Наиболее известной фигурой, представлявшей данное направление, был математик Норберт Винер.
Кибернетика изучает сложные управляемые системы, имеющие цели и взаимодействующие с окружающей средой через механизмы обратной связи. Задача кибернетики – изучение процессов, происходящих в управляемых системах. Эти процессы состоят из многократных итераций какого-либо действия (которое вызывает изменения во внешней среде), получения информации о состоянии среды (данные о реакции внешней среды на совершенное действие), оценки (сравнение текущего состояния с целевым) и возврата на этой основе к совершению нового действия. Для кибернетики этот циклический процесс фундаментален.
Из кибернетики мы позаимствовали представление, что команда разработчиков представляет, по сути, ориентированную на определенную цель систему, саморегулирующуюся посредством различных циклов обратной связи. Мы поняли, что в саморегулирующейся системе, которой является команда разработчиков, наиболее важными факторами будут информация, коммуникация и целеполагание (в отличие, скажем, от силы и энергии). Кибернетика также помогла осознать решающую роль обратной связи в эволюции поведения сложных систем [Mitchell 2009: 296].
Многие путают общую теорию систем и кибернетику. Это неудивительно, поскольку они очень сильно повлияли друг на друга. Обе они имеют не вполне прозрачные названия, обе ставили себе целью создание единой научной теории, описывающей поведение систем. И ни той, ни другой не удалось реализовать первоначальные цели. И тем не менее кибернетика и общая теория систем продвинули данную область знания вперед, заложив фундамент, на котором были созданы позднейшие теории.
Если рассматривать общую теорию систем и кибернетику как ноги некоего человека, символизирующего собой всю массу знаний о поведении систем, то одной из его рук, бесспорно, будет теория динамических систем.
Возникнув из прикладной математики в 1960-х годах, теория динамических систем говорит о том, что системам свойственно много состояний и одни из них устойчивы, а другие нестабильны. Если отдельные компоненты системы не меняются со временем или же, подвергнувшись тем или иным возмущениям, всегда возвращаются к исходным значениям, мы говорим, что такие устойчивые состояния выступают в роли аттракторов.
Актуальность теории динамических систем для разработки программных продуктов состоит в том, что она помогает объяснить, почему некоторые проекты устойчивы, а другие нет. И почему иногда невозможно изменить организацию, имеющую устойчивую тенденцию возвращаться к своему исходному состоянию.
Теория динамических систем сыграла ключевую роль в возникновении последующих теорий, предложив математические инструменты для работы с трудноизмеряемыми понятиями общей теории систем и кибернетики. (Приятно осознавать, что хотя бы некоторые компоненты теории сложности не результат гениальных озарений, а базируются на надежном математическом фундаменте.)
Мы уже упоминали, что теорию динамических систем можно представить себе в виде руки некоего человека, символизирующего все наши знания о системах. В этом случае теория игр, вне всякого сомнения, представляет собой вторую руку. Многие системы часто конкурируют друг с другом за одни и те же ресурсы – или пытаются съесть друг друга на обед. Как вытекает из теории игр, в таких случаях системы могут создавать конкурирующие стратегии.
Будучи одним из направлений прикладной математики, теория игр ставит себе задачей описание поведения систем в ситуациях, требующих стратегического подхода. В этих ситуациях успех одной системы отчасти зависит от тех моделей поведения, которые выбрали другие системы. Теория игр получила свое развитие в 1930-х годах, а в начале 1970-х нашла применение в биологии и эволюционной теории. Тогда стало понятно, что она вполне годится для анализа стратегий, к которым живые организмы прибегают во время охоты, спасаясь от хищников, при защите своей территории и во время брачных игр.
Теория игр оказалась полезным инструментом во многих областях, включая экономику, философию, антропологию и политологию. И конечно, в сфере разработки программного обеспечения, где она не только позволяет программистам создавать компьютерные игры, электронные аукционы и одноранговые сети, но также объясняет поведение людей в командах и поведение команд в организациях.
Сейчас трудно представить себе человека, который не был бы знаком с эволюционной теорией. Она получила известность с момента выхода в свет в 1859 году «Происхождения видов» Дарвина, одной из самых знаменитых книг в истории. Практически все биологи согласны с базовыми утверждениями теории эволюции: постепенное генетическое изменение видов и выживание наиболее приспособленных организмов в результате естественного отбора.
Конечно, согласие относительно базовых постулатов не мешает бесконечным спорам биологов по поводу деталей процесса. Важность случайного генетического дрейфа (изменение вида без определенных причин), периодически нарушаемого равновесия (внезапные изменения вместо постепенных), эгоистичных генов (отбор на уровне генов, а не на уровне особей или популяций) и горизонтального переноса генов (передача генов другому организму) – все эти гипотезы многократно и страстно биологами обсуждались, принимались или опровергались [Mitchell 2009: 81–87]. (Но стоит только в качестве альтернативы предъявить биологам теорию разумного замысла, как они моментально объединяются в своем отрицании этой ненаучной ерунды.)