[мегапузырь_IT] лажевый мегапузырь наших дней: сфера IT Очередной пример того, как обдумывание объяснений для студентов фокусирует Das Denken (если оно в мозге есть).
Сначала быстренько повторим главное:
Имеется явление антропологического, даже геохимического масштаба:
впервые в истории Жизни на Шарике
комбинаторный интеллект вырвался из
(
Read more... )
Эта, ну откуда у большинства беспрецедентная сложность и крутизна? Это у нас сложность и крутизна, а у большинства... Смайл. Впрочем, поразмышляв, понял, что значительная доля правды в этом наблюдении есть.
>С другой -- спонтанное самофункционирование приматического интеллекта в этих условиях создаёт беспрецедентные приматические нагромождения
Я бы даже сформулировал лемму, пиженую у по аналогии с законами Паркинсона. А именно:
Группа софтверных изделий поддерживаемая неким коллективом хомо сапиенсов неизбежно стремится к максимуму сложности, что этот коллектив приматов еще способен вынести.
(Посему, даже если задача и не так сложна, решатели все равно могут чувствовать свою крутизну, не только по реакции обделенных окружающих, но и по собственным ощущениям).
Доказательство - путем наблюдений.
Наблюдение 1. Изделие, находящееся под лучшим контролем создателей легче и быстрее нацелить на новый сегмент рынка - больше шансов выиграть заказы - будет больше предложений от заказчиков по изменению и улучшению (т.е. увеличению сложности).
Наблюдение 2. Изделие, находящееся под лучшим контролем создателей - больше и активнее вовлекается в нагромождения изделий, как создателями, так и заказчиками. Тут сложность каждого отдельного кубика не обязательно меняется, но сложность конструкции из кубиков может превзойти всякие ожидания. Тут должна бы быть поучительная и в других отношениях история, как мы заменили кубик с полностью потерянным контролем, размером в 120 тыщ строк на кубик с полностью восстановленным контролем в 8 тыщ строк - и что тут началось. Если коротко: и заказчики, заметив, что ЭТО внезапно стало работать как часы - начали использовать в самых невероятных конструкциях, и мы сами, обнаружив строительный блок, более не нуждающийся в уходе - понастроили такого... Расскажу подробней, когда время будет. В любом случае: 120 тыщ строк - далеко позади. В результате сокращения сложности - сложность выросла.
Наблюдение 3. Когда из изделий громоздят башню из разных кубиков - см.Набл.2, и прямо не сопрягается, то изменения (т.е. повышение сложности) будут сделаны в кубике, находящемся под лучшим контролем создателей. Вашему покорному слуге пару раз говорили заказчики, что при возникновении трабла, они молятся, чтоб в трабле было виновато изделие нашей фирмы, или чтобы мы согласились его подкрутить. Ибо если трабл - в соседнем кубике "партнеров", то решения они будут ждать чуть ли не годами. (Почему-то такое поведение - взять и решить трабл быстро - называется агрессивным. As in: "за 15 лет работы в ИТ я первый раз встречаю такую агрессивную компанию". Всего-то подключили человека напрямую и за 3 месяца порешали все его проблемы, совершенно не напрягаясь. Крутили в том числе и кубик на 8 тыщ строк из предыдущего примера. Крутить его было легко и приятно. А прежний, на 120 тыщ, мы крутить уже вообще не могли). То есть: принес простое решение - именно его будут крутить и усложнять.
Отдельным случаем Набл.3 является ситуация, когда соседняя банда потеряла контроль за своим изделием абсолютно (as in потеряли по разгилядяйству менеджмента команду, а сложность изделия такова, что коллектив с улицы подхватить неспособен). Тут начинаются просьбы вставить в наш кубик такое... вагон бананов же пропадает!! а возражения они понять неспособны (с меня конкретная замечательная история).
Где-то так. Собственно, про возникновение нагромождений вы и сами сказали, а механизмы я, надеюсь, прояснил.
Reply
В самом деле. Сложность "кубика", что команда должна поддерживать состоит из 1) сложности решаемой задачи как таковой, 2) сложности средств, применных для конструирования кубика. Бананы дают только за 1. 2 - позволяет почесать гонорит, но не прямо сшибить банан. Поскольку совокупная сложность - по лемме - достигнет максимума, что команда способна в принципе поддержать, то единственный способ - при заданной команде - повысить сложность решаемой для рынка задачи (т.е. увеличить сшибаемые рыночные бананы) - это понизить сложность применных средств. Т.е. в частности, язык программирования должен и сам быть простым, и поощрять применение простых средств.
Reply
Reply
В примере из наблюдения 2 наглядно показано (надеюсь), как сложность убираемая из средств (120 тыщ -> 8 тыщ) смещается в сторону задач, предлагаемых рынком. Но справедливости ради мы там и команду поменяли. 4-х киевлян на одного Мишу с мехмата... Но он те 120 тыщ тоже не смог бы контролировать. Смайл.
Reply
Группа софтверных изделий поддерживаемая неким коллективом хомо сапиенсов неизбежно стремится к максимуму сложности, что этот коллектив приматов в принципе способен вынести.
Но поправить уже не могу: сам же закрык комментом, ну да и ладно.
Reply
Просто любопытство, не более. "Когда время будет".
Reply
(The comment has been removed)
Reply
Пардон.
Reply
Reply
Reply
Но спасибо за напоминание. В общем-то это все - иллюстрации, но местами веселые, рассказать будет приятно.
Reply
Сразу не отвечаю -- не хочу спешить, тема центральлная.
Reply
Таким образом, в процессе эволюции должен достигаться своего рода регуляторный компромисс между требования адаптивности (соответствия внешним условиям) и требованиям целостности системы.
"Требование целостности системы" - это более сильное и более "кибернетически" корректное требование, чем наше "команда владеет продуктом". Но в программировании. где таки есть "интеллигентный дизайнер", это фактически синонимы: команда владеет продуктом, по определению означает: команда способна менять продукт, не разрушая его (не нарушая целостность системы).
А вот "требования адаптивности" - это просто синонимы в биологии и в ИТ. Я напирал на открывающиеся новые рыночные возможности (в биологии - это бы называлось завоевание новых экологических ниш), а Марков - на приспособление к изменениям окружающей среды (в ИТ - изменение рыночной ситуации), но понятно, что "адаптивность" покрывает и то, и другое, и механизмы для обоих направлений адаптивности - совпадают. "Захватываем новую экологическую нишу с холодной водой" и "приспосабливаемся к похолоданию" - различаются разве что последствиями неудачи, но вряд ли механизмами.
Далее Марков проводит серию наблюдений, как именно в биологии решается обозначенный компромисс. И приходит к выводу: "Очевидно, что любой из перечисленных путей требует дальнейшего усложнения организма и онтогенеза... В этом можно заметить механизм положительной обратной связи: усложнение системы ведет к конфликту, снятие которого возможно только путем дальнейшего усложнения." Squeee!
"Сняв путем усложнения старые конфликты, организм неизбежно сталкивается с новыми...
Moжет быть, в этом состоит одна из причин наблюдаемого ускорения прогрессивной эволюции. Биологи давно заметили эту общую тенденцию: чем сложнее организм, тем быстрее он эволюционирует по пути дальнейшего усложнения. Причины этого до сих пор не вполне ясны".
Лемма получает неожиданное подкрепление. Одно дело - выводить ее из наблюдений за собственно ИТ, другое - обнаружить, что она - проявление общих закономерностей. Впрочем, аналогичность закона Паркинсона мы уже отмечали. Смайл. Но: "положительная обратная связь" - до такой наглости я сам не дошел.
Reply
Всё-таки, наверное, бывают и структурные перестройки, ведущие к упрощению с повышением адаптивности.
То есть рост не монотонный, а с зигзамами.
Сравнивать Эволюцию живой природы и IT -- очень интересно, да.
Однажды кто-то это должен сделать систематически.
Абстрагировать общий делитель.
Reply
Один из общих делителей - это что утверждения как в биологии так и в ИТ можно сделать только про "как правило", а не про "как всегда". Включая это. Смайл. Упомянутый мной скачок со 120тыщ до 8тыщ - все же очень большая редкость. Понадобился ряд крупных аварий, чтобы. Разумность разумных дизайнеров очень сильно ограничена ежеквартальностью финансового отчета. В частности. И да, скачок вниз был временным.
Reply
Leave a comment