Теория всей ху*йни: почему мы делаем сложно
YouTube | Подкаст | Слушать
Теория, о которой пойдет речь, не универсальна, зато она замечательно объясняет зыбкие вещи в нашей индустрии, о которых принято просто бухтеть. Она не сможет объяснить, как с первого раза правильно расставить const у указателя в Си, но сможет — почему вы не можете дать нормальных эстимаций. Это теория про людей.
Занятно, что эта теория-то в научных кругах довольно известна и широко признана. У нее есть критика, но критика вялая, без огонька, шаблонная: не всегда 100% воспроизводятся результаты.
По-русски эта теория называется «Теория конструктов разного уровня». По-английски — CLT (Construal Level Theory). Ее разработали 20 лет назад 2 израильских ученых: Нира Либерман и Яков Троуп. Это социально-психологическая теория, которая описывает взаимосвязь между психологической дистанцией и уровнем его конструирования в сознании. Если проще: она вводит концепцию дистанций между нами и явлением, а потом описывает, каким именно образом наш мозг абстрагируется от явления в зависимости от этой самой дистанции.
CLT предлагает 4 дистанции: временную, пространственную, социальную и гипотетическую. Давайте дальше на примере временной дистанции: явление, которое анализирует мозг, может случиться очень скоро или очень нескоро. И в зависимости от этого человек начинает думать об этом явлении в рамках концепций как высокого, так и низкого уровня. В случае высокоуровневого мышления мы начинаем думать о явлении абстрактно, с низкой детализацией, но сохраняя суть. В случае низкоуровневого мышления мы рассуждаем уже конкретно, в конкретных терминах, акцентируясь на конкретных вещах. Суть теории в том, что с увеличением дистанции мы начинаем думать о проблеме все более высокоуровнево. С уменьшением — низкоуровнево.
Ничего не понятно, да? Усложним дело примером: отпуск на море. Если вы сейчас начнете планировать отпуск где-нибудь в Таиланде следующей зимой, то начнете представлять прекрасные пляжи, мотороллеры, дайвинг. Но если у вас вылет через неделю, то основные проблемы — пищевые аллергии, с кем оставить собаку, кто будет поливать цветы, как бы дети не заболели.В этом случае вы не будете представлять себе песочек, равно как в случае долгого срока для вас даже в голову не придет подумать о передержке для собаки.
Подтянем теорию к предыдущей теме, к техдолгу в смысле переусложнения. В прошлом эпизоде я рассуждал, что техдолг, вызванный необходимостью закрыть конкретную проблему здесь и сейчас, как правило намного безобиднее техдолга, который вызван оверинжинирингом.
В случае оверинжиниринга мы в первую очередь думаем о будущем. А раз мы думаем о будущем, значит мыслим в более высокоуровневых концепциях, откидывая негативные аспекты и сосредотачиваясь на позитивных. Это значит, что мы начинаем идеализировать систему, и хотим сделать все правильно, элегантно. Одновременно с этим, если мы хотим бороться с проблемами, мы начинаем думать о них тоже довольно абстрактно: а что если у нас будет 1000 классов, как мы будем их единообразно конфигурировать? А что если у нас помимо Докера будет что-то другое для контейнеров? А что если мы поменяем библиотеку?
Теперь так: если и поменяем, то не от хорошей жизни, наверное. И так как ближайшие 5 лет нам и ее будет достаточно, а я не планирую работать в этой богадельне больше 2 лет, то нафига мне себе жизнь усложнять. Это все примеры низкоуровневого мышления. Так думают здесь и сейчас. И делают так, чтобы работало здесь и сейчас. Но в случае оверинжиниринга у вас не то, что мыслей таких не возникает, у вас даже лексикон другой.
Хорошим ответом является принцип KISS, суть которого в рамках CLT заключается в насильственном подмешивании низкоуровневых подходов к выскокоуровневым. Проблема KISS в том что он выглядит и является набором трюизмов, предлагая думать о низкоуровневое в тот момент, когда мозг колотит высокое. Это не работает именно потому, если человек недостаточно страдал, ему кажется, что именно сейчас-то можно и нужно. Желаемый результат перевешивает недостатки. Происходит так называемое временное дисконтирование.
Post #16
130