воскресенье, 17 августа 2014 г.

Теория Решения Изобретательских Задач и Законы Развития Технических Систем

Существует такая теория, согласно которой можно научиться изобретать новые классные вещи. В этой статье кратко изложены основные принципы и ложка дёгтя дабы читатель сам решил стоит оно того или нет.


Зародилась теория ещё в 40-х годах. Генрих Альтшуллер - её автор - бросил вызов методу "проб и ошибок" в решении инженерных задач. Он проанализировал много патентов на всевозможные изобретения и нашёл в них общие черты. На этом анализе базируется данная теория. Альтшуллер был не только учёным и инженером, но ещё и писателем-фантастом и одно из направлений в ТРИЗ - это развитие творческой личности. Инженерная работа в ТРИЗ считается творческой и должна быть верно организована, со своими правилами, стандартами и приёмами. Тогда результат получается наилучшим.

Иногда творчество могут подразумевать как некий хаотичный поток мыслей-чувств, результатом которых художник вдруг вдохновится и нарисует шедевр, а программист напишет идеальный код. ТРИЗ не об этом, а против этого. ТРИЗ учит каким должен быть идеальный реультат ("идеальный конечный результат" - конкретный термин) и как надо делать чтобы приблизиться к этому идеалу. Никаких "творческих порывов". Причём творчеству в ТРИЗ можно научиться. Это приобретаемая способность, а не врождённый "дар".

Тезисы ТРИЗ:
  • Все "сильные" изобретения имеют в своей основе решение какого либо противоречия требований, физических или иных явлений;
  • Существует абстрактный идеальный конечный результат (ИКР), который формулируется на этапе анализа задачи и дальнейшее решение строится в направлении ИКР;
  • Технические системы развиваются по определённым законам, т.о. развитие системы может быть спрогнозировано;
  • Лучшая система - эта та которой нет, а функция выполняется;
В споре рождается истина - известное выражение. Теперь понятно что в нём должна быть доля правды.
Фридрих Гегель в своей "Диалектике" считал что именно на столкновении противоречий "тезис - антитезис" происходит создание новой, сильной идеи - "синтеза", рождённого в противоречии, который в последствие стновится тезисом и т.д. [http://iph.ras.ru/elib/2960.html]

Карл Маркс описывает конфликт классов: раб и его владелец. Конфликт между ними приводит к синтезу новой, сильной идеи - капитализму, в которой конфлик наёмный рабочий (пролетарий) и капиталист (бизнесмен, работодатель) приводит... Пресловутая Кремниевая долина обязана своему существованию холодной войне - именно в противоречии двух разных взглядов рождались жирные заказы на разработку ракет и радиосвязи. Наш постиндустриальный мир смартфонов и интернета вырос из этого. [http://psychological.ru/default.aspx?s=0&p=80&0a1=892&0o1=0&0s1=0]

Изначально ТРИЗ появился для технических задач и со временем развивался в другие направления (экономические, например). Мне не удалось найти полной адаптации ТРИЗ для задач по разработке ПО, хотя по некоторым слухам он используется некоторыми крупными разработчиками АО и ПО. [Samsung, список компаний от некоммерческой организации, список клиентов консалтинговой компании, использующей ТРИЗ, больше ссылок в (1)]

На самом деле большинство принципов, описываемых в ТРИЗ не завязаны на конкретную техническую или предметную область. Просто так сложилось что типовые приёмы решения противоречий приводятся для технических систем и физических явлений. Например, есть ТРИЗ в искусстве.

Лейтмотивом всей ТРИЗ является решение противоречия. Система должна делать это и одновременно не делать этого. Обладать каким-то свойством и не обладать.
В 800 году происходила коронация Карла Великого. По ритуалу возложить корону на Карла должен был папа римский. Перед Карлом возникла нелёгкая задача. С одной стороны, коронация была нужна для укрепления власти, поэтому её надо провести «по всей форме». С другой стороны, из политических соображений было совершенно недопустимо, чтобы папа римский короновал Карла, поскольку получалось, что папа выше императора: раз папа дал корону, он может когда-нибудь и забрать её. Возникла сложная ситуация: Карл должен быть коронован папой римским, чтобы соблюсти ритуал, и не должен, чтобы не оказаться в зависимости от духовенства. Карл Великий нашёл оригинальный выход: в момент коронации он выхватил корону из рук папы и сам водрузил её на свою голову.

Законы развития технических систем

Позволяют прогнозировать развитие технических систем зная лишь немного об их текущем состоянии.Например, зная что любая система по мере развития становится многофункциональной и гибкой можно при решении конкретной задачи идти именно в эту сторону. Всякая система стремится стать ближе к идеалу подобно закону неубывания энтропии.

Переход "моно-би-поли" 

Сначала некая система представляет из себя монолитную сущность, направленную на решение конкретной задачи. Следующим этапом развития этой системы будет совмещение двух (би) или более (поли) аналогичных монолитных систем в одной. Например, ружьё. Сначала 1 ствол - 1 выстрел. Потом двуствольное ружьё - 2 ствола - 2 выстрела. Потом автоматическое оружие - 1 ствол - много выстрелов.

Подсистемы и надсистемы 

Любая техническая система является часть какой-то большей системы (надсистема) и состоит из подсистем. Закон перехода в надсистему гласит что любая техническая система стремится как-бы перенести свою функцию в надсистему. Помните что идеальная техническая система - это та, которой нет, а функция выполняется? Например, антикрыло у Koenigsegg Agera R.

S-образное развитие системы

Любая система (не только техническая) проходит условно 4 этапа развития:
  1. "Детство". Начальный этап. Высокие затраты, низкий результат;
  2. "Юность". Бурный рост. Затраты всё ещё высоки, но снижаются, а результат повышается;
  3. "Зрелость". Рост сильно замедляется или вовсе останавливается. Максимальный результат при минимальных затратах - пик развития системы;
  4. "Старость". Система более не отвечает предъявляемым требованиям и умирает.


Переход "моно-би-поли" явялется циклом. В какой-то момент система стала полисистемой, затем ей грозит "свёртывание" - это переход, где полисистема объединяется с надсистемой и вместе они снова становятся моносистемой. И так далее. На S-образной кривой это происходит около этапа 4 когда для выполнения функций умирающей системы приходит новая, либо принципиально модернизируется существующая. Снова прослеживается аналогия с "Материалистической диалектикой", упомянутой выше - закон перехода количества в качество. В программировании этот принцип особенно ярко заметен по большому слою абстракций и всеобъемлющим фреймворкам. Сначала писали программы на "голом" языке со стандартной библиотекой (или вообще без неё), потом заметили что всякий раз в этом деле повторяется большое кол-во одинакового кода для схожих задач (gui, web и т.д.) и решили что его можно вынести во фреймворки - это переход в надсистему.

Почему ТРИЗ - фуфло

Для соответствия этой статьи самой идеи ТРИЗ не хватает противоречия. Если бы реальный мир был таким как его видят в ТРИЗ, то вероятно нас бы в нём не было. Заинтересовавшийся читатель найдёт более подробную информацию об этой теории и непременно столкнётся с "вепольным анализом" и "паттернами" для технических систем. По началу сам Альтшуллер пытался классифицировать все изобретения и создать таблицу по которой можно было бы просто найти готовое решение любой проблемы. В этой статье нарочно не приведены эти подробности т.к. во-первых тогда она раздуется и станет скучной и во-вторых - это всё настолько сферично в вакууме, что в какой-то момент кажется что это всё не про реальный мир вообще. 

"Сферический ТРИЗ" во многом напоминает паттерны проектирования от архитектурных астронавтов. Правда в отличии от паттернов проектирования ПО тут приводится хоть какое-то пояснение когда какой именно надо использовать. Тот же вепольный анализ и АРИЗ (Алгоритм Решения Изобретательских Задач) помогают именно решить проблему последовательно начиная с анализа, а не просто показать 100500 способов решения каких-то абстрактных проблем. Можно объяснить это отличиями программной инженерии от других направлений (для которых ТРИЗ создавался и развивался).

Считать ТРИЗ спасением, лженаукой или просто ребяческим стремлением находить чрезмерно простые объяснения сложных вещей - решать Вам.

Ссылки

  1. "Найти идею: Введение в ТРИЗ - теорию решения изобретательских задач" Генрих Альтшуллер
  2. Законы развития технических систем - википедия 
  3. Закон S-образного (логистического) развития систем 
  4. Введение в теорию решения изобретательских задач для программистов
  5. Основы ТРИЗ
  6. "И тут появился изобретатель" Г. Альтов
  7. Mumbo Jumbo?
P.S. (1) рекомендуется как классическая книга - первоисточник. 

Комментариев нет:

Отправить комментарий