Небольше предупреждение. Это один из самых больших в плане объяснения принципов, возможно, потому, что он ближе всего к «классической» стратегии. Буквально, первый принцип — это важнейшая часть обычной, некастанедовской стратегии, а она весьма обширна и многообразна.
Первым принципом искусства сталкинга является то, что воин сам выбирает место для битвы. Воин никогда не вступает в битву, не зная окружающей обстановки.
Карлос Кастанеда, «Колесо времени».
В первоисточнике эти слова звучат так:
The first principle of the art of stalking is that warriors choose their battleground, she said. A warrior never goes into battle without knowing what the surroundings are.
Carlos Castaneda, «The Eagle`s Gift».
Перевод вполне корректный и точный. Однако из-за того, что «место» упоминается первым, большая часть внимания ему и уделяется. Или по крайней мере может сместить на него акценты.
Лично у меня довольно долго этот принцип ассоциировался именно с изучение «местности». Самый простой и близкий аналог в русском фольклоре — это всем известная поговорка: «Не зная брода, не суйся в воду». Сначала изучи место действия, а потом действуй. Это все правильно и верно, но смысл принципа шире, речь здесь прежде всего про обстановку, а местность — это часть обстановки.
Рассмотрим такой пример. Допустим, есть некоторая улица, проезжая часть. Это очевидно местность. Все понятно, по этой дороге автомобилист может проехать, но какая огромная разница в ситуации на этой улице в разное время суток. Вы может оказаться на ней в часы пик, попав в пробку, а можете ночью, когда кроме вас там никого нет. Это одна и та же улица, но из-за обстановки её влияние на вас может сильно меняться.
В общем и целом можно сказать, что местность — это что-то более-менее постоянное, неизменное, а ситуация — это то, что может измениться. Сама по себе улица — её «ландшафт» — ширина дороги, дорожные знаки и т.д. — это местность. Нахождение на этой улице других автолюбителей — это ситуация, все вместе — это обстановка.
А если на этой улице идёт ремонт, например, меняют асфальт или чинят канализацию?! Это местность или ситуация? Ответ зависит от интервала времени, в котором вы это рассматриваете/действуете. Если вам нужно проехать по улице единственный раз и прямо сейчас (условно вопрос пяти минут), то для вас это, конечно, местность. Перекопанная дорога таковой останется и через пять минут и через час, и таковой она будет в течение нескольких дней. Для жителей тех домов, которые живут на этой улице — это ситуация. Они там живут годами, одним ремонтом больше, одни ремонтом меньше, не принципиально. Да, неприятно, неудобно: шумно, грязно, нужно искать обходные, объездные пути, но это временное явление, через несколько дней или недель оно закончится.
Смысл оценки обстановки в том, чтобы учесть влияние, которое она оказывает на наши действия. Цель изучения обстановки — это ответ на вопрос: это подходящее время и место для выполнения действия? В случае отрицательного ответа, можно дополнить вопрос: для какого действия это время и место является подходящим?
Есть своеобразные координаты, в которых существует обстановка и в которых мы можем её изучать. Давайте рассмотрим их.
Три аспекта обстановки
Временной интервал
Первое на что, нужно обращать внимание при оценке обстановки — это временной интервал, промежуток, в котором вы собираетесь действовать. Если ваш интервал очень большой, например, вы изучаете историю города, вам вообще не особо интересна какая-то ерунда типа ремонта дроги. Для вас такая информация — «шум», а «сигнал» для вас — это что-то типа сноса или постройки новых зданий на этой улице.
Вот вам другой пример. Допустим, вы купили какие-то акции или криптовалюту. Купили в расчёте на то, что через некоторое время, допустим, через год, это принесёт вам доход, т.е. акции или токены, которые вы купили вырастут в цене. Наверняка вы разумный человек, вы понимаете, что покупаете, т.е. можете определить потенциальную ценность этих активов, короче вы в них уверены, по крайне мере на момент покупки. При таких раскладах нет никакого смысла ежедневно (и уже тем более ежечасно) заглядывать в инвестиционное приложение или криптокошелёк, чтобы проверить текущую рыночную стоимость активов. На горизонте планирования в 1 год — это бессмысленно, более того, это даже вредно. Цена колеблется в любом случае, рынок меняется ежемнинутно, но на годовом интервале эти колебания — шум. Такие ежедневные и ежечасные движения цены будут отвлекать внимание, будут вызывать страх или эйфорию, которые в свою очередь могут спровоцировать вас на поспешные решения в виде досрочного закрытия позиции (зачастую даже в убыток) или её избыточного увеличения (из серии «на всю котлету»).
Другое дело, если вы спекулянт или скажем более благозвучно трейдер. Тогда да, если удержание позиции рассчитано на несколько дней или даже часов, тогда вы «живёте» и принимаете решения в другом временном масштабе. В этом случае вы вынуждены отслеживать все колебания цен, чтобы быстро на них среагировать. Но это сложно, это совсем другая история, это более высокие требования к личным качествам и профессиональным навыкам.
Законы местности
Другой важный момент, который нужно оценить в плане изучения обстановки — это законы, закономерности, правила, которые актуальны на той местности, где вы собираетесь действовать. Это не обязательно законы в юридическом смысле слова, это «законы» в широком понимании. Это то, что действует на этой местности, то, что с большой долей вероятности повлияет на наши поступки.
Простой пример: смена работы и как следствие новый коллектив. Всегда, везде, в любом коллективе есть свои писанные и неописанные правила. Типа договорённостей о том, как скидываются на дни рождения/праздники, о «своих» местах за обеденным столом (если в офисе есть обеденная зона) или соглашением о задержках после рабочего времени, а также выходах на работу в выходные и праздники.
Таких нюансов довольно много, думаю, что каждый может их привести десятки, если не сотни.
Понятно, что коллектив со временем меняется какие-то нормы и правила тоже могут измениться, но эти «законы» все же влияют на нас и это влияние нужно учитывать, чтобы не наделать глупостей. Идти против коллектива, особенно, если вы только устроились на работу — не самая лучшая идея.
Есть вполне ожидаемые «законы», которые возникают просто из-за масштаба организации, для примера мой неудачный опыт трудоустройства в крупную телекоммуникационную компанию. Из-за того, что это была очень большая, иерархически сложная организация, я, конечно, столкнулся со всеми прелестями бюрократических отношений. Куча заявок, согласований, требований к рабочему компьютеру, какие-то идиотские ежеквартальные отчёты для формирования KPI. Все это очень на любителя и по итогу я для себя понял, что не хочу работать в таких больших организациях. Вакансии банков и крупных IT организаций типа Авито, Яндекса я после этого вообще перестал рассматривать. Просто не моё.
Обстоятельства
Это те самые ситуативные моменты типа пробок на дорогах, которые могут весьма сильно изменить обстановку. Формально определение звучит так: «обстоятельство — это явление, сопутствующее чему-либо или сопровождающее что-либо». Если по-простому, то это влияние других событий и явлений.
Продолжая пример с улицей/дорогой, по которой вы, допустим, возвращаетесь домой на машине. Представим, что нет никаких пробок, нет дорожных работ, все замечательно, но позвонила жена и попросила заехать в магазин, купить каких-то продуктов. Это обстоятельство, которое может существенно скорректировать ваши планы и сделать ту дорогу, по которой вы обычно возвращаетесь домой не удобной. Если магазин, в котором вам нужно купить продуктов находиться на другой улице, вы, наверное, поедете как-то иначе.
Из всей этой тройки обстоятельства самые сложные для оценки, их может быть много, они не очевидны до той поры, пока вы с ними не столкнётесь. Хорошо бы заглянуть в будущее и как-то их спрогнозировать, но если речь идёт о прогнозировании, то это всегда вероятность.
Когда смотрим в будущее и пытаемся учесть какие-то обстоятельства, которые ещё не наступили, но возможно наступят, мы всегда оперируем вероятностью. Типа того самого звонка жены, которая вероятно попросит вас заехать в магазин за продуктами по пути домой. Мы не можем знать наверняка, позвонит она или нет, но с некоторой вероятностью, мы можем это предположить. Возможно, нам поможет в этом знание о содержимом холодильника, в который мы заглянули утром, возможно, знание о том, как обычно поступает жена или её планы на день, которые помешают зайти ей самой в магазин.
Более того, часть правил и закономерностей из озвученных ранее «законов местности» также имеют вероятностную природу, как и временной интервал, в котором будет происходит действие. Мы можем примерно сказать в каком временном диапазоне мы будем действовать (возвращаться на машине домой), но мы не знаем точную продолжительность.
Всегда, когда речь идёт о будущем, мы оперируем вероятностью, хотим мы этого или нет, осознаем ли мы это или нет, мы работаем с вероятностными сценариями будущего. Ошибкой будет закладываться на то, что сработает какой-то один определённый сценарий. Сработает может быть и один, но какой из…? Сама идея о том, что кто-то или мы сами знаем будущее — абсурдна. Лучшее что мы можем сделать — это прикинуть наиболее вероятные сценарии и продумать свои действия для каждого из них.
Продолжая пример с поездкой на машине. Вы можете иметь несколько вариантов возвращения домой, но какой именно вы выберете, вы решите перед тем как сядете в машину. И решите в зависимости от известных вам обстоятельств. А может быть скорректируете свой маршрут уже во время поездки, если жена позвонит вам в пути.
Вариативность — это одно из важных преимуществ, хорошо, когда можно выбирать из нескольких вариантов сообразно обстановке и плохо, когда у вас всего один единственный вариант действий. Зачастую это просто психологическая установка, мы можем придумать себе какой-то единственный план действий, а потом упорно цепляемся за него. Обстановка может уже двадцать раз измениться или наш план изначально не учитывал какие-то реальные условия, т.е. он ошибочен, а мы все пытаемся ему следовать. Мы не видим, что он ошибочен или просто не хотим этого видеть.
В концепции пути воина наиболее близким к вариативности понятием является текучесть.
Охотник свободен, текуч и непредсказуем. Хороший охотник меняет свой образ действий настолько часто, насколько это необходимо.
«Путешествие в Икстлан», Карлос Кастанеда.
Сила всегда открывает воину кубический сантиметр шанса. Искусство воина состоит в том, чтобы быть непрерывно текучим, иначе он не успеет ухватиться за этот шанс.
«Колесо времени», Карлос Кастанеда.
Идея очень простая: раз обстановка постоянно меняется, то лучше/разумнее быть текучим, чтобы подстроиться под изменившиеся условия. Конечно, возможные сценарии действий или развития событий — это в какой-то мере способ ограничить текучесть, направив её в заранее просчитанное русло (одно из нескольких), но в противном случае — при отсутствии вообще каких-либо вариантов — можно просто растечься бесформенной лужицей. Текучесть вроде есть, но какой от неё прок, если нет направления движения? Что хорошего в хаотичных метаниях?
Я не отрицаю импровизацию, можно прямо в моменте перестроиться и придумать новый классный план действий сообразно ситуации. Но так получается не всегда и не у всех. Если вы мастер импровизаций, то почему бы и нет?! Я лично чувствую себя увереннее, когда у меня есть предварительно обдуманные запасные варианты. Когда-то давно я уже сформулировал один из принципов стратегии на эту тему: «Не полагаться на то, что трудностей не будет, а полагаться на то, с чем их можно встретить», то же самое на другом сайте.
Может ли быть такое, что ни один из запасных планов не подходит, т.е. мы вообще никак не посчитали ту ситуацию, которая сложилась? Да, легко. В этом случае нам придётся импровизировать. Другой вопрос, а почему мы не смогли просчитать такой сценарий, почему его вообще не было в нашем наборе? Это очень хороший вопрос, он помогает улучшить прогностические способности. Ответив на него, вы сможете обнаружить «слепое пятно», за которым скрывалось то обстоятельство, которое привело к неожиданной ситуации и которое вы по какой-то причине упустили. У меня это, как правило, нереалистичные ожидания относительно продолжительности события, т.е. ошибка тайминга.
Причины для ошибок могут быть разные, никто от них не застрахован, но если мы делаем «работу над ошибками», разбираемся в чем они были, то мы повышаем шансы избежать их в будущем.
Тема прогнозирования выходит за рамки первого принципа и мы не будем её здесь обсуждать, но она довольно важна, чтобы её игнорировать. Скажем так, это относится к более общему стратегическому подходу, а первый принцип — это только часть стратегии.
В завершении темы прогнозирования я приведу интересную цитату — руководство из книги «Сигнал и шум», автор Нейт Сильвер.
***
Чтобы делать более верные прогнозы, нужно стать лисой
Хотя в среднем результаты экспертов оказались довольно плохими, Тэтлок обнаружил, что некоторым из них эта работа удавалась лучше, чем остальным. Среди проигравших оказались те эксперты, чьи предсказания чаще всего цитировались в СМИ. Тэтлок установил, что чем больше интервью прессе давал эксперт, тем хуже были его предсказания.
Другая же подгруппа экспертов показывала сравнительно более хорошие результаты. Тэтлок, получивший образование психолога, очень интересовался когнитивным стилем экспертов – тем, как они размышляют о мире. Поэтому он видоизменил несколько вопросов в личностных тестах и задал их всем экспертам.
Основываясь на полученных ответах, Тэтлок смог классифицировать всех экспертов в соответствии с определённой шкалой, распределив их между так называемыми ежами и лисами. Разделение на эти две группы напрямую связано с названием эссе Исайи Берлина о русском писателе Льве Толстом. Берлин, в свою очередь, позаимствовал его из строки, приписываемой греческому поэту Архилоху: «Лис знает много секретов, а еж – один, но самый главный».
Если вы не фанат Толстого или цветистой прозы, то вам совершенно не обязательно читать эссе Берлина. Однако основная его идея заключается в том, что писателей и мыслителей можно разделить на две большие категории.
«Ежи» – это те люди, которые верят в Большие Идеи или управляющие миром принципы. «Ежи» приравнивают их к законам физики, универсальным для каждого вида взаимоотношений в обществе. Можно вспомнить Карла Маркса и идею классовой борьбы или Зигмунда Фрейда и идею бессознательного. Или же Малкольма Гладуэлла и теорию «переломного момента».
«Лисы» же, напротив, верят во множество мелких идей и предлагают разнообразные подходы к решению проблем. Они более терпимы к нюансам, неопределённости, сложности и противоречивым мнениям. Если «ежи» – это охотники, всегда ищущие большую добычу, то «лисы» – это собиратели.
«Лисы», как обнаружил Тэтлок, умеют предсказывать значительно лучше, чем «ежи». Например, они гораздо лучше оценили перспективы Советского Союза. Вместо того чтобы воспринимать СССР исключительно в идеологических понятиях, как «империю зла» или как сравнительно успешный (и, возможно, даже выступающий образцом для подражания) пример марксистской экономической системы, они видели то, что было на самом деле, – все более дисфункционализирующую страну, стоявшую на грани распада. Если прогнозы «ежей» были немногим лучше, чем вероятностный шанс, то прогнозы «лис» показывали, что у них есть определённые способности к предсказаниям.
«Сигнал и шум. Почему одни прогнозы сбываются, а другие – нет», Нейт Сильвер.
***
И это тоже про текучесть/вариативность, здесь она акцентирована на когнитивном аспекте.
Метафора шахматной игры
А теперь мы попробуем взглянуть на три озвученных ранее измерения обстановки (временной интервал, законы местности, обстоятельства) через призму шахмат. Можно выделить три важных составляющих этой игры: 1) продолжительность игры, 2) правила игры, 3) позиция.
Даже если вы не играете в шахматы и вообще относитесь к ним равнодушно, ничего страшного, как это примерно происходит вы наверняка видели. Этого вполне достаточно, чтобы понять суть.
Продолжительность игры
Согласитесь, огромная разница в блиц игре*, классической игре или матче за звание чемпиона мира***.
*10 или меньше минут. ** 60 минут на партию каждому участнику и больше. *** 14 партий с контролем времени 120 минут на 40 ходов, затем 60 минут на 20 ходов и 15 минут до конца партии с добавлением 30 секунд на каждый ход.
В зависимости от типа игры вы совсем по-разному будете расходовать свои силы. Если это не условный блиц, вы просто не можете позволить себе сжечь все силы, ресурсы в моменте.
Вопрос продолжительности — это ещё и вопрос скорости принятия решений, понятно, что в блиц игре шахматист вынужден принимать быстрые решения, у него нет времени долго думать над очередным ходом. Соответственно нужно различать ситуации, где нужно принимать быстрые решения, а где не стоит этого делать. Более того, есть много ситуаций, где быстрые, поспешные решения могут даже навредить.
Реальность в отличие от шахмат вообще никак не формализована и продолжительность «игры» может быть какой угодно. Как я уже писал ранее, зачастую мы не можем точно определить продолжительность, в лучшем случае это какое-то приближение, примерно сколько-то. И хорошо если мы ошибёмся хотя бы на 10-20%, а не на порядки 100-1000%.
Продолжительность «игры» имеет определяющую роль при выстраивании отношений. Сколько глупых споров и обидных замечаний в отношении собеседника мы можем избежать, если подумаем о том, как долго мы собираемся общаться с этим человеком, вести с ним общие дела? Если это «игра в долгую», то и вести себя нужно соответственно. Мелкие придирки, упрёки, несоблюдение договорённостей — все это разрушает отношения. Особенно это разрушительно в близких, семейных отношениях.
Вот хороший стратегический антипринцип на эту тему: «Умный на пенни, дурак на фунт», то же самое на другом сайте.
Правила игры
С этим тоже все более-менее понятно, правила игры — это аналог законов местности.
Можно отметить, что в реальной жизни правила не такие ясные и понятные как в шахматах, но если копнуть теорию шахматной игры глубже, то выяснится, что помимо формальных правил есть ещё и множество менее строгих принципов, рекомендаций. И они могут существенно повысить качество игры, для примера приведу такие слова.
Вы должны знать, какие фигуры и пешки следует менять и когда.
«Дао шахмат», Питер Курцдорфер.
В книге есть несколько рекомендаций по логике разменов, я не буду их здесь приводить, т.к. они специфичны и применимы конкретно в шахматной игре. Но сама идея размена, конечно, глубже и далеко выходит за рамки шахматной игры, к примеру, есть такой известный стратегический принцип: «Пожертвовать малым ради большего», то же самое на другом сайте.
Можно сказать, что идея правильного размена лежит в основе шахматной игры? Да, безусловно, но она не единственная, там есть и другие идеи. Я это привёл для того, чтобы показать что «правила игры» или другими словами «законы местности» выходят за рамки строго определённых законов и правил. В любой области знаний есть свои наработанные решения, методики, подходы, их тоже можно и нужно изучать. По большей части они затрагивают позиционные моменты, т.е. они дают рекомендации о том, как действовать в той или иной позиции/ситуации.
Позиция
Что такое позиция в шахматной терминологии? Это расположение фигур на доске в моменте. Это аналог обстоятельств, о которых мы говорили ранее. Понятно, что «позиция», которую мы оцениваем в реальной жизни гораздо сложнее, но смысл примерно тот же. Если мы говорим про рабочий коллектив и его взаимоотношения, то кажется, что игроками/фигурами будут ваши коллеги да и сами вы тоже «фигура». Условной «доской» будет физическое, экономическое и социальное пространство фирмы, компании, в которой происходят события. Чтобы осмыслить ткущую позицию можно попробовать выделить всех игроков, их мотивацию и их возможности (ресурсы).
Это достояно абстрактный пример и вполне возможно, что такой подход с игроками/фигурами будет не адекватен для какой-то другой сферы вашего интереса. Но одно можно сказать точно, вам нужна «история», на которой вы сможете научиться разбираться в позиции. Подумайте, как развиваются профессиональные шахматисты? Они изучают игру других шахматистов, они просматриваю очень много партий, выявляют перспективные позиции и ищут оптимальные ходы для этих позиций.
Это знание позиций не возникает само по себе в виде какого-то внезапного откровения, для его приобретения нужно изучать предметную область, её законы и правила, расширенная версия которых будет включать в себя в том числе и рекомендации относительно действий в разных ситуациях.
Для примера мысли из книги «Клиенты на всю жизнь», авторы Карл Сьюэлл и Пол Браун. Кстати, отличная книга, я думаю, она будет полезна любому, кто ведёт свой бизнес.
***
Клиент не всегда прав
Вы тысячи раз слышали старую поговорку: клиент всегда прав. И я думаю, это правильно. Почти всегда.
Если клиент недоволен нашей работой, мы спрашиваем его, в чем проблема, и бесплатно исправляем. Почти всегда.
Но прав ли клиент всегда и абсолютно, вне зависимости от любых обстоятельств?
Нет.
Что составляет исключение?
Часто это вопрос справедливости, и иногда — денег.
Когда деньги небольшие, клиент всегда прав. Стью Леонард, который управляет крупнейшим в мире молочным магазином, рассказал историю про женщину, которая купила у него два фунта филе миньон, когда он продавал его по 5,98 доллара за фунт. На следующей неделе он организовал распродажу, и филе стало стоить 4,98 за фунт. Эта покупательница пришла и потребовала, чтобы он вернул ей два доллара, которые она смогла бы сэкономить, если бы подождала неделю.
Он отдал ей два доллара. Я бы тоже так сделал.
Но две тысячи долларов? Это совсем другой вопрос, не правда ли?
Когда рассказывают истории про то, что клиент всегда прав, количество денег всегда невелико. Мы слышим про Стью Леонарда или про McDonald’s, в котором автоматически заменяют ваш заказ, если вы недовольны, но все это касается недорогих продуктов.
Долларов до пятисот, возможно, мы не будем препираться ни с кем. Но больше — это уже спорная область.
Карл Сьюэлл, Пол Браун, «Клиенты на всю жизнь».
***
Это пример того, в каких позициях (обстоятельствах) может оказаться бизнесмен или его персонал и как в них стоит действовать. Конечно, это частный случай и таких «позиций» в бизнесе может быть много, но смысл, думаю, понятен. Чтобы быстро разобраться, в какой позиции вы оказались и как в ней лучше поступить, нужно изучать позиции. Как это делать — отдельный вопрос, можно исключительно на своём опыте, можно читать умные книжки или слушать опытных людей, но суть от этого не меняется. Если у вас есть история (множество разных «партий»), вы можете вынести из неё знание позиций, если нет, то вам будет сложно. Доходить до всего своим умом и делать это сразу, т.е. правильно просчитать непривычную ситуацию в моменте — это, прямо скажем, на уровне гениальности. Впрочем, есть и такие люди, редко, но они встречаются. Обычным людям (коих 99.9%) для правильной оценки ситуации всё-таки требуется опыт, свой или чужой, но опыт.
К настоящему моменту мы обсудили три аспекта или ракурса обстановки. По сути это способ оценки обстановки, способ её изучения. Является ли он единственно верным? Конечно же нет. Это просто модель, которая может помочь в некоторых случаях, возможно даже во многих, но в некоторых случаях она будет малополезной. Вспомним «ёжика» с его главным секретом, не стоит ему уподобляться. Полезнее накапливать свой набор моделей на разные случаи, чем цепляться за какую-то одну, пусть даже и универсальную модель. Лучше быть «лисом» — изучать и осваивать множество «секретов», помогающих в оценке обстановки.
Есть много полезных ментальных моделей, если вам интересна эта тема, то стоит почитать книгу «Супермышление. Как обходить ментальные ловушки и принимать эффективные решения», авторы Габриэль Вайнберг, Лорен Макканн. Еще одна полезна книга на эту тему: «Книга эффективных решений», автор Питер Холлинс.
Не могу сказать, что я их настоятельно рекомендую к прочтению, книги не идеальны, в них приводится много моделей, но разобраны они весьма поверхностно. Там хорошая широта охвата, но она в ущерб глубине. Я бы предпочёл наоборот, но как есть. В общем и целом книги все же полезные, почитать их стоит. Можно воспринимать их как справочники, отправную точку для дальнейшего изучения моделей.
Еще стоит отметить, что какие-то модели будут более подходящими для сферы ваших интересов, а какие-то менее подходящими, т.е. выбирайте и изучайте те, которые больше всего подходят к вашим профессиональным или личным интересам. В качестве примера приведу одну из моделей, которая относится к сфере моих профессиональных интересов. Это так называемый технический долг, в Википедии он хорошо сформулирован, поэтому процитирую.
Технический долг — это метафора программной инженерии, обозначающая накопленные в программном коде или архитектуре проблемы, связанные с пренебрежением к качеству при разработке программного обеспечения и вызывающие дополнительные затраты труда в будущем. Технический долг обычно незаметен для конечных пользователей продукта, а связан с недостатками в сопровождаемости, тестируемости, понятности, модифицируемости, переносимости. По аналогии с финансовым долгом, технический долг может обрастать «процентами» — усложнением (или даже невозможностью) продолжения разработки, дополнительным временем, которое разработчики потратят на изменение программного продукта, исправление ошибок, сопровождение и т.п. Хотя увеличение технического долга как правило негативно влияет на будущее проекта, оно может быть и сознательным, компромиссным решением, продиктованным сложившимися обстоятельствами.
Эта модель помогает адекватно оценить накапливаемые проблемы в коде и спрогнозировать дальнейшее развитие ситуации.
Есть другая родственная модель, которая также используется для объяснения накапливаемых проблем — это модель энтропии.
Несмотря на то что разработка программного обеспечения не подвержена большинству физических законов, все мы сильно подвержены воздействию неуклонного роста энтропии. Физический термин энтропия обозначает величину беспорядка в системе. К сожалению, законы термодинамики утверждают, что энтропия во вселенной стремится к максимуму. Если же беспорядок возрастает в программном обеспечении, то такое явление называется деградацией последнего. Некоторые могли бы назвать это явление более оптимистическим термином «технический долг», подразумевающим, что когда-нибудь они погасят этот долг, — хотя этого, скорее всего, не произойдёт. Но как бы ни называлось данное явление, техническим долгом или деградацией, оно может распространяться бесконтрольно.
Имеется немало факторов, способствующих деградации программного обеспечения, и самый важный из них, по-видимому, имеет отношение к психологии или культуре в работе над проектом.
«Программист-прагматик» (2-е изд), Дэвид Томас, Эндрю Хант.
Я думаю, что модель энтропии применима не только к программным проектам, это в принципе полезно учитывать при оценке любых долгоиграющих проектов. Чем больше время существования события/явления, а это практически любой большой бизнес проект, тем больше будут проявляться эффекты, связанные с энтропией. Обратите внимание, здесь мы вновь затронули один из аспектов обстановки — его продолжительность (временной интервал).
Кстати, вот забавная история, связанная с техническим долгом и энтропией. Как-то раз обсуждая проект с другим программистом, я обратил внимание на качество кода и посетовал, что через пол года — год поддерживать и развивать этот проект будет сложно. На что услышал гениальный ответ: «Да мне все равно, через пол года — год я тут уже и работать не буду». Да, это технический долг, ну и что?) Какая разница, если выплачивать его будет кто-то другой… С одной стороны, это, конечно, безответственное и наплевательское отношение к проекту, а с другой, понимание обстановки, коллега правильно оценил для себя «продолжительность игры».
Упражнения
Здесь я приведу часть упражнений из ранее существовавшего курса обучения и добавлю часть новых, позволяющих закрепить пройденный материал.
Своя территория
Суть этого упражнения в том, чтобы научиться делать местность своей. В рамках этого упражнения вам нужно выбрать некоторый район города и сделать его «своим». А именно:
1) Выяснить местонахождение близлежащих кафе, закусочных и др. мест общепита. Выяснить, где и как кормят, сколько это стоит, где уютно, а где не очень?
2) Выяснить местонахождение близлежащих бесплатных туалетов.
3) Выяснить, какие магазины есть в этом районе, что там продаётся, и сколько примерно это стоит.
4) Найти оптимальные маршруты к станциям метро, остановкам автобуса, троллейбуса, маршрутки, трамвая. Выяснить какие автобусы, троллейбусы и т.д. здесь останавливаются, и куда они ходят.
5) Найти свои любимые места. Места, где можно посидеть, отдохнуть, прогуляться, полюбоваться красивыми пейзажами.
Плюс к этому то, что вы сами посчитаете для себя полезным.
Выслушать и выяснить
Цель этого упражнения проста — научиться слушать и слышать. Да я вроде и так это умею, — подумает кто-нибудь, — чему тут учиться? Увы, как правило, это самообман. Мы редко действительно слушаем, чаще мы заняты своими мыслями и все наше слушание сводится к тому, чтобы дождаться, когда собеседник замолкнет, чтобы высказать свою умную мысль. Мы делаем вид, что слушаем, а на самом деле заняты обдумыванием того, что ответим собеседнику. У нас так много своих идей, воспоминаний, которыми непременно нужно поделиться, что внимания на слова собеседника практически не остаётся. Не верите? У вас все по-другому?! Что же, предлагаю это проверить.
Это задание делиться на две части, начинать нужно с первой.
Выслушать
Максимально внимательно и заинтересованно слушайте собеседника. По возможности остановите внутренний диалог, если не умеете, то просто отгоняйте (рассеивайте, останавливайте) возникающие в процессе слушания мысли. Конечно, мысли могут возникать, никакого криминала в этом нет, проблема в другом. Эти возникающие в процессе мысли могут увлечь, увести внимание. Наша задача в том, чтобы удерживать внимание на слушании, не позволять ему отвлекаться, а если оно отвлеклось, то быстренько возвращать его обратно.
При выполнении этой части задания вам может помочь фиксация внимания на лице, глазах собеседника, на его голосе (звуке голоса). Так же полезно разрешить себе подобную трату времени. Лучше сразу договориться с собой о том, какой лимит времени вы можете безболезненно выделить на выслушивание. Часто проблема со слушанием возникает как раз из-за того, что слушая пустой трёп или неинтересные нам высказывания, мы считаем, что попусту теряем время и пытаемся закруглит собеседника, в том числе высказывая свои мысли и идеи по поводу сказанного, т.е. своей репликой мы, по сути, прерываем неинтересный нам спитч. С одной стороны это, конечно, полезно, мы бережём своё время и внимание, но в рамках данного упражнения, мы будем тратить время, в том числе, на выслушивание всякой ерунды. Мы тренируемся слушать и готовы потратить некоторое время на тренировку. Сколько именно — зависит от ситуации и от ваших текущих задач. Определите его для себя сами, если вам некогда, если буквально горит какая-то рабочая задача, то лучше отложите упражнение на более спокойное время.
Отработав в достаточной мере эту часть (минимум неделя), можно переходить к следующей.
Выяснить
При выполнении этой части мы также выслушиваем собеседника, но после выслушивания мы дополнительно ещё и выясняем отдельные моменты: неоднозначные, туманные и абстрактные высказывания, непонятные термины, а также все, что привлекло внимание, показалось необычным.
Три аспекта
Чтобы научиться пользоваться озвученной выше моделью оценки обстановки через временной интервал, законы местности и обстоятельства, нужно тренироваться в её применении. Это очевидно, но как это делать? Лучше всего брать по одному аспекту и искать примеры его проявления в разных событиях, явлениях. Например, берём временной интервал (продолжительность игры) и смотрим, какую роль играет продолжительность в тех или иных событиях. Вы привыкли бегать по утрам или заниматься в тренажерном зале? Отлично, тогда держа этот аспект в голове, вы обязательно заметите, что вам нужно равномерно распределить свои силы на всю пробежку или тренировку, иначе вам их не хватит.
И так с каждым аспектом. Вы берете его «в работу» и в течение дня смотрите на происходящее через его призму. Настроив своё внимание на этот ракурс, вам будет легче увидеть его проявления. На следующий день можно переключиться на другой аспект и искать уже его проявления.
Если в процессе отработки одного из аспектов попадаются проявления другого, например, вы изучаете продолжительность, но вдруг обнаружили какой-то из законов местности, то просто зафиксируйте это, чтобы обдумать найденное позже при изучении законов. Не нужно это отбрасывать, возможно, это важная и ценная находка, но и не нужно в неё сильно углубляться, чтобы не отнимать время и внимание от отрабатываемого в настоящее время аспекта.
После того, как вы поработаете с отдельными аспектами, можно совмещать их и отрабатывать все три сразу. Как я уже писал ранее, цель изучения обстановки — это ответ на вопрос: это подходящее время и место для выполнения действия? В случае отрицательного ответа, можно дополнить вопрос: для какого действия это время и место является подходящим?
Действие не обязательно должно быть вашим, вы можете изучать уместность, оптимальность чужих действий относительно обстановки.
Модели и ещё раз модели
Как говорится, модели разные нужны, модели разные важны. В рамках этого упражнения я предлагаю, во-первых, провести ревизию тех, моделей которые вы уже используете для оценки обстановки, например, в профессиональной сфере, но это не принципиально, можно и вне её.
Любой более-менее профессиональный навык не возможен без специальных моделей, которые существенно облегчают оценку происходящего и предлагают варианты действий. Хорошенько поищите их в своём опыте, наверняка они найдутся. Может быть, это модели, которые диагностируют проблемных клиентов, может быть, это модели прогнозирующие объем продаж и т.д.
В качестве основы для таких поисков можно использовать модели, которые сформулированы в ранее упомянутой книге: «Супермышление. Как обходить ментальные ловушки и принимать эффективные решения», авторы Габриэль Вайнберг, Лорен Макканн. Найти её в электронном виде не сложно, она точно есть на флибусте.
Как я уже упоминал ранее, недостаток этой книги в том, что она поверхностная. Поэтому найдя модель, лучше всего углубить её понимание из каких-то других источников. Просто для примера, меня в книге заинтересовал «эффект кобры», там о нем буквально пару абзацев, а вот прекрасное познавательное видео от Юлии Большаковой с примерами этого эффекта: ««Эффект кобры» и скандал с «сиротами Дюплесси»».
Не обязательно читать именно эту книгу, есть много других интересных и полезных источников (статей, книг, видеороликов, тренингов), где вы можете почерпнуть новые, полезные модели.
Во-вторых, я предлагаю изучить и освоить одну или несколько новых моделей. Собственно ради того, чтобы обогатить свой стратегический инструментарий это все и затевалось. Не так ли?)
Стили мышления
В ведении к принципам я писал, что принципы сталкинга применимы и для работы с внутренним миром. Так как основное содержание статьи получилось большим, я опустил этот момент, чтобы не перегружать текст. Но в общем и целом ровно те же аспекты обстановки, с помощью которых мы изучали внешние события, мы вполне можем использовать и для изучения своего внутреннего мира, его законов и обстоятельств, влияющих на наше поведение.
Одним из таким способов изучения являются опросники и тесты. Возможно, кто-то относится к ним со скепсисом. Типа куча каких-то дурацких вопросов и в итоге невразумительные выводы. Да, такое возможно. Однако стоит учитывать то, какие тесты вы проходили, какие методики и теории стоят за этими тестами? Далеко не все из них корректны и точны. Часто это вырождается в профанацию, особенно этим страдает так называемая поп-психология.
Но есть и действительно глубокие подходы, изучить которые полезно. В качестве одного из таких я рекомендую методику оценки стилей мышления. Она изложена в книге «Поймите меня правильно», авторы Алексеев А.А., Громова Л.А. Прочитать её можно здесь и по итогу пройти опросник, чтобы определить свой стиль. Можно это сделать прямо на сайте, см. «Опросник «СМ» на сайте» или скачать бланки, распечатать их, заполнить и подсчитать результаты вручную.
Естественное условие для этого — ваше время и желание, т.е. нужно захотеть прочитать книгу и изучать этот подход. Я свою рекомендацию сделал, а дальше уже дело за вами, читать или не читать — решать вам. Проходить тест без понимания основы методики, т.е. не читая книгу — бессмысленно.
Поиск предназначения
По мотивам книги «Меньше, но лучше. Работать надо не 12 часов, а головой» авторы: Мартин Бьяуго, Джордан Милн. Мне понравилась одна из рекомендаций, встреченных в этой книге (стр. 230), с некоторыми дополнениями предлагаю её в качестве задания.
Если вы ещё не нашли своё предназначение в жизни, но хотели бы это сделать, то вам помогут следующие вопросы:
- В какие моменты я наиболее счастлив?
- Почему данная конкретная деятельность приносит мне счастье?
- Какие у меня есть возможности построить бизнес на деятельности, приносящей мне больше всего счастья?
- Что мне мешает?
- Как мне преодолеть эти препятствия?
Проведите 30-60 минут в день, размышляя о своём жизненном предназначении. Делайте это в течение года.
Целый год?! Да! Цена вопроса очень высока — интересная, гармоничная, наполненная жизнь. Я думаю, ради этого стоит постараться и год не такая уж большая цена. Если не будете лениться, то, скорее всего, вы найдёте ответ даже раньше.
Обратите внимание, что это не сделать с наскока. Над этим нужно размышлять, изучать себя, искать варианты. Будьте готовы потратить на это время. Не обязательно целый час непрерывно, можно набрать это время в течение дня. Например, подумать по пути на работу или возвращаясь домой. Можно думать, принимая душ или моя посуду. Найти на это время не так уж и сложно, было бы желание.
Самоисследование
Упражнение состоит из двух частей, которые позволят вам узнать себя немного лучше. Знание себя – неотъемлемая часть 1-го принципа и если вы толком себя не знаете, то применять 1-й принцип вам будет сложно. Конечно, для глубокого изучения себя недостаточно приведённого ниже опросника, но он может помочь задуматься над некоторыми вопросами, дать правильный вектор для дальнейших самоисследований.
Упражнение заключается в том, что необходимо закончить начатые предложения. Эти предложения выступают в роли вопросов, на которые вы отвечаете. В качестве примера я приведу свои ответы.
Мои качества проявляются сильнее всего, когда я изучаю и исследую какую-то новую для себя область знаний.
От хорошего коллектива я жду, что люди будут порядочными, честными и доброжелательными по отношению ко мне и друг к другу. Идеально, если этот коллектив будет из близких по духу людей, людей неглупых и людей, стремящихся к саморазвитию.
Естественно, что это были примеры ответов, вы отвечаете исходя из своих соображений.
Одним из условий получения пользы от этого упражнения является искренность и честность с самим собой и, естественно, желание узнать о себе больше. Если у вас такого желания пока нет, то лучше пропустите это упражнение и вернитесь к нему позже.
Это упражнение лучше выполнять дома, в уединении, в спокойной обстановке. Не нужно торопиться, отвечая на вопросы, делайте это в спокойном темпе. Это самоисследование в первую очередь для вас. Его цель в том, чтобы прояснить для себя, кто вы такой и чем вы живёте. Чтобы использовать затем это знание в жизни.
Если на какой-то вопрос вы не можете ответить сразу или текущий ответ кажется вам неполным, поверхностным, походите какое-то время, подумайте над ним.
Цели
1. Мои качества проявляются сильнее всего, когда я…
2. Больше всего меня интересует…
и наибольшее наслаждение я получаю, когда…
3. Больше всего я боюсь (опасаюсь) …
4. Я испытываю гнев (злость) из-за…
если я не….
5. У меня вызывает сильнейшее любопытство…
6. Я хотел бы научиться…
7. Мой герой – …
8. В детстве в своей семье я чувствовал…
9. Моя жизненная цель требует от меня…
10. Моя жизненная цель выглядит (ощущается, звучит) как…
11. Моя жизненная цель неотделима от моей способности…
12. Моя цель может дать миру…
13. Моя цель должна дать мне самому…
Ценности
1. От хорошего коллектива я жду, что…
2. Руководитель должен, прежде всего…
3. Я не выношу, когда кто-нибудь в коллективе…
4. Я чувствую себя угнетённым, когда…
5. В коллективе я, прежде всего, хочу…
6. Я чувствую себя лучше всего, когда другие…
7. Я никогда не…
8. Родители обязаны…
9. Я надеюсь, что мои дети…
10. Мир был бы устроен лучше, если бы…
11. Больше всего я опасаюсь того, что…
12. Мне совершенно все равно, когда…
13. Мне нравятся люди, которые…
14. Я злюсь, когда…
15. Я нахожу ситуацию сложной, угнетающей, когда…
16. Я требую от себя, чтобы я…
17. Когда я совершаю ошибку, я…
18. Учиться – значит…
19. Если бы я мог пожелать что-то одно, я пожелал бы…
20. От мужчин я ожидаю…
21. От женщин я ожидаю…
22. Деньги значат для меня…
23. Я считаю, что я достоин уважения, потому что я…
24. Мне сложно простить человека, если…
25. Я хотел, чтобы после моей смерти…
26. Больше всего меня обязывает…
27. Лучше всего я чувствую и понимаю людей, которые…
Валерий Чугреев, 25.03.2024
Изучаю книгу «Путь 1С-разработки. Не спеша, эффективно и правильно». Стал применять в своей работе паттерн «Выход из окружения». Суть его в том чтобы перед отправкой в рабочую версию базы код, проверить его работоспособность на своем маленьком тестовом стенде. Так как в тестовом стенде мало данных, загружается она быстро и отладка происходит кратно быстрее. Эта статья хорошая отправная точка для их поиска.
У меня на одной из предыдущих работ был прямо настоящий тестовый стенд, т.е. он был физически воплощён + сервак для него. Мы в той компании SCADA систему (supervisory control and data acquisition) разрабатывали, я тогда ещё на Go писал. Там всякие датчики были установлены и мы проверяли новый функционал на этом стенде.
Это все полезно и правильно, но одна из главных проблем с таким стендами — это недооценка реального объёма данных. Если это высоконагруженная система (пусть даже нагруженная данными), а в нашем случае так оно и было, то легко упустить этот момент, проверив поведение на каком-то искусственном, ограниченном наборе данных.
Я тогда попал в очень неприятную ситуацию. Была разработка для одного заказчика (какая-то крупная энерго распределяющая компания), мы с аналитиком примерно оценили объем данных, я спроектировал и реализовал решение. Проверили на стенде, все замечательно работало. А вот когда выкатили новый функционал заказчику, выяснилось, что с объем данных мы ошиблись чуть ли не на порядки. И все, решение оказалось ошибочным, т.е. пришло перепроектировать и реализовывать новое решение. В итоге минус несколько месяцев разработки, плюс какие-то сложности с заказчиком, я не вникал, но у нас тогда точно был фейл по срокам сдачи проекта.
Наверное, в твоём случае это неактуально, но я для себя выводы сделал. Это прямо стандартная ошибка (коллеги тоже такими историями делились), когда проектируемая система не тестируется на реальных данных, может случиться фатальная недооценка по нагрузке. А в реальности на бою начинают вылезать всякие залаги, типа чудовищных по времени исполнения запросов к базе или DDoS эндпоинтов.
Спасибо что поделился опытом! Осознаю ограничение данного метода, но сейчас они в целом не играют роли. Возможно на другом месте работы эти ограничения станут для меня актуальными. Если не секрет была создана система — конструктор как MasterScada или просто узко заточенная программа, где ты как программист все предопределил?
Решение модульное, типа конструктора. Наша система называлась SEDMAX, да и сейчас продаётся под этой маркой.
Для некоторых заказчиков приходилось писать новые модули под их специфические задачи, но в основном это плюс минус универсальное решение. И это микросервисы, фактически каждый модуль — это отдельный сервис. Есть низкоуровневые сервисы: код отвечающий за опрос датчиков, есть бэкенд сервисы с бизнесовой логикой (я этим занимался), есть фронтенд.
Еще из своего опыта как программиста активно использую несколько метамоделей.
Принцип недотроги — из книги «Путь 1С-разработки. Не спеша, эффективно и правильно».
Суть принципа: не уверен, не трогай. Даже когда в системе что-то кажется странным, ошибочным, избыточным, но нет четкого понимания, зачем оно такое, и что может случиться, если это что-то исправить — убери руки за спину, не трогай.
Когда только начинал два года назад программировать, я старался везде применять свои свежеполученные знания. Если названия переменной мне казалось не логичным я мог её исправить или сделать «микрооптимизацию» в каком-то запросе, который как по моему работал не так быстро как мог бы. Все это приводило к плачевным результатам. Появлялись ошибки в работе программы, тех которых не было до моего вмешательства.
Сейчас я пользуюсь рефакторингом только в том случае, если есть необходимость поменять логику работы функции и есть время / возможность сделать полный цикл тестирования программного кода.
Из указанной книги выше книги «Супермышление. Как обходить ментальные ловушки и принимать эффективные решения» я пользуюсь принципом MVP.
MVP (Minimum Viable Product) — минимально жизнеспособный продукт для тестирования рыночного спроса без крупных вложений на ранних этапах.
Часто бывает приходят с соседнего отдела и говорят нам нужны определенные изменения в программы чтобы нам было проще заполнять данные какого-то документа. Я делаю. Трачу 1-2 рабочих дня условно. Потом показываю, а они говорят что мы передумали. Возвращай все обратно. Не приятно получается. Время потраченное зря, поэтому сейчас я трачу 1-2 часа делаю пробник, показываю и после утверждения делаю задуманную функциональность, если не передумали.