TGViewer
Products | People | Process Products | People | Process @program_man · 854 subscribers
Post #30 729
Рубцовая ткань. Что это такое? У нас один из партнеров написал скрипт, доводящий наш продукт “до ума” в недружелюбной для продукта среде. Видимо, в какой-то момент этот скрипт передавался от одного админа к другому и второй оставлял свои примечания, в основном в духе “WTF?!”. Там правда было очень много жутких и страшных извращенных приемов программирования. Но веселее всего то, что во многих местах продукт уже давно не требовалось допиливать скриптом, он давно уже научился сам нормально решать неприятные ситуации, а админ за админом продолжали поддерживать эту обвязку. Исправления в продукте вызывали поломку этой обвязки, и эти поломки чинились еще более жуткими обвязками, но все эти многие слои обвязок были НЕ НУЖНЫ, потому что в ее сердцевине уже давно не было проблемы. Это наиболее яркая иллюстрация того, что я называю РУБЦОВАЯ ТКАНЬ. Это код, это обходные решения, построенные из-за невозможности решить суть проблемы. Хуже всего, что со временем суть проблемы вообще забывается и эта рубцовая ткань может стать вполне самостоятельным “организмом”, высасывающим силы из команды. Рубцовая ткань это не всегда код. Это может быть процесс, или шаблоны поведения в команде. Сложившиеся когда-то давно под воздействием каких-то обстоятельств, которые уже могли давно пропасть, а рубец остался. Наилучшая иллюстрация это анекдот про “здесь так принято”
Клетка. В ней 5 обезьян. К потолку подвязана связка бананов. Под ними лестница.
Проголодавшись, одна из обезьян подошла к лестнице с явными намерениями достать банан. Как только она дотронулась до лестницы, вы открываете кран и из шланга поливаете ВСЕХ обезьян очень холодной водой. Проходит немного времени, и другая обезьяна пытается полакомитЬся бананом. Те же действия с вашей стороны. Третья обезьяна, одурев от голода, пытается достать банан, но остальные хватают ее, не желая холодного душа.

А теперь уберите одну обезьяну из клетки и замените ее новой обезьяной.
Она сразу же, заметив бананы, пытается их достать. К своему ужасу, она увидела злые морды остальных обезьян, атакующих ее.
После третьей попытки она поняла, что достать банан ей не удастся. Теперь уберите из клетки еще одну из первоначальных пяти обезьян и запустите туда новенькую. Как только она попыталась достать банан, все обезьяны дружно атаковали ее, причем та, которую заменили первой еще и с энтузиазмом.
И так, постепенно заменяя всех обезьян, вы придете к ситуации, когда в клетке окажутся 5 обезьян, которых водой вообще не поливали, но которые не позволят никому достать банан. Почему?

Потому что тут так принято... И в коде, и в поведении убирать рубцовую ткань очень сложно, потому что в первую очередь нужно понять, что она рубцовая. Ведь она живая, люди работают, шестеренки крутятся. Просто она грубая и не гибкая. Но убирать надо, для чего надо приучаться смотреть все время в корень проблем
More from @program_man
  1. Sep 30, 2026Ушла эпоха. Помните часто говорили, что русский это 2й после английского язык в инете? Сов…
  2. Sep 17, 2026Коллега принес новость, которую я упустил, и мнение, с которым, я согласен. Новость была ч…
  3. Aug 12, 2026Когда ИИ полтора года назад был еще довольно хромой, для меня было актуально сравнение с и…
  4. Aug 5, 2026На неделе возникла мысль в обсуждении о внедрении ИИ в организациях, что есть мощный огран…
  5. Jul 31, 2026Помню довольно болезненное открытие разницы мышления инвесторов и управляющих. Вот приходя…
  6. Jul 16, 2026Попался изящный способ развести Клода на данные владельца. ИИ довольно много со временем н…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →