Аналитическая агония: симптомы и лечение
Зацепился я за тему "излишнего думанья" - держу курс дальше.
Слишком уж важной считаю эту когнитивную болезнь - мешает она буквально во всех сферах жизни и не дает счастливо жить и развиваться. Некоторые примеры я привел из родной области разработки, но все метафоры и сравнения переносятся на любой проект вне IT. Все же это болезнь людей, а не проблема в конкретной индустрии.
Откуда возникает болезнь
У каждого True шизоида есть внутреннее, животное желание все усложнять, все учитывать и уничтожать неопределенность в работе и жизни.
Такая аналитическая работа ничего не имеет общего со здоровой рациональностью, так как здесь сразу всплывают несколько когнитивных искажений:
- Иллюзия контроля
Желание все учесть - это желание контролировать ситуации.
Если бы только мы могли все контролировать... - Уклон в сторону поиска информации
Это про те бесконечные часы, проведенные за поисковой строкой Google. - Амплификация.
Пытаемся планировать какую-либо деятельность, наивно думая, что мы имеем достаточно исходных данных для построения глубокого плана. Это в тему иллюзии контроля.
Симптомы болезни
Если не бороться с этими когнитивными искажениями, то болезнь продолжит прогрессировать и начнут проявляться следующие симптомы.
Парализовало
Правило Парето прекрасно описывает корень проблемы: на проработку 80% проблем тратим 20% усилий, а на оставшиеся 20% проблем - 80%.
За собой заметил, что мне сложнее принять хоть какое-нибудь решение, если я начинаю об этих 20% проблем думать. Возникает аналитический паралич.
В эти 20% обычно входят мелкие детали реализации, устранение неопределенность и теоретические размышления о будущем. Если глубоко копнуть в них, то можно сойти с ума и осознать масштаб неопределенность вокруг нас.
Притупилась креативность
Ресурс внимания ограничен и здесь он направлен на проработку мелких деталях, а не на генерацию новых идей и создание общей картины проекта.
В какой-то момент это начинает быть похожим на рытье могилы самому себе. Придумываю N решений, а потом пытаюсь расписать плюсы/минусы каждого, чтобы выбрать оптимальное. В итоге создаю кучу комбинаций вариантов для анализа всех решений.
Естественно, сравнивать все это - неоптимальное действие.
Так что можно забить на 20% проблем и работать продуктивнее.
Повысилась тревожность
Сидишь, формулируешь проблемы, кучу кода пишешь, думаешь. И в момент "обдумывания" все проблемы кажутся такими существенными и важными. Даже ЧСВ повышается, ты же думаешь...
А потом БАЦ, БАЦ и как-то тревожно начинаешь себя чувствовать.
Твой тимлид, менеджер, CEO, CTO и любой, кто хоть как-то от тебя зависит.
Ты сидишь и пытаешься объять всю сложность и многогранности задачи.
+тревожность
Тимлид на daily слушает тебя и не видит никакого прогресса, все ждет завершения задачи уже 5-й день.
+тревожность
CEO деньги считает и не понимает, почему пара важных фич уже 2-й спринт висит и "дорабатывается", а аналитика "требует уточнений".
+тревожность
А в повышенная тревога в долгосроке - это выгорание и хроническая усталость.
Смерть
Лучше бы сделали не очень хорошо.
Со временем каждый продукт становится все сложнее и сложнее.
При этом чем он сложнее, тем медленнее разработка новых фич. Медленнее разработка - больше цикл обратной связи по проверке гипотез.
Большой цикл = медленная адаптация к рынку = смерть продукта из-за конкуренции.
Есть в теории систем один закон - закон Галла.
Любая работающая сложная система развивается на базе работающей простой системы. Сложные системы, созданные с нуля, никогда не будут работать в реальном мире, поскольку в процессе разработки на них не влияли факторы отбора, присущие среде
Этот закон можно связать с одной классификацией сложности в Software Design.
Фред Брукс в своей книге "No Silver Bullet—Essence and Accident in Software Engineering" ввел понятия essential complexity и accidental complexity - естественной сложности и непреднамеренной сложности.
- Естественная сложность - это необходимая сложность, минимально-достаточная для реализации полезного продукта. Рынок и существующие бизнес-процессы создают эту сложность.
- Непреднамеренная сложность - эта уже сложность, которую разработчики сами создали.
Непреднамеренная сложность не помогает зарабатывать денег. Она существует только из-за изъянов в мышлении людей, сложности общедоступных технологий и отсутствия опыта в индустрии.
С ней как раз нужно бороться, иначе весь проект станет песочницей в руках шизоида (разработчика/Product менеджера/основателя) и адаптация к рынку замедлится.
А для системы, которая так и не была протестирована в бою - это смерть.
Лечение
Любая умственная работа провоцирует болезнь, но если регулярно проверяться, то можно избежать последствий.
Составил небольшой check-up для выявления болезнь на ранней стадия.
Ответы на эти вопросы помогают мне не сбиваться с пути и быть чуть результативнее.
Тесты на резистентность к неопределенности
- Готов ли я сейчас подстроиться под изменения в будущем?
- Я привык действовать, как действую сейчас, или так надо действовать?
Тесты на осмысленность действий
Тест на результативность
- Сколько времени я потратил на размышления? Сколько на работу?
- Могу ли я приложить меньше усилий и получить достаточно хороший результат?
- Что мне даст увеличение времени на размышления сейчас? Обязательно ли его тратить сейчас?
Про то, как лечить это все в рамках разработки IT-продукта я напишу в других статьях - непаханое поле для рассуждения об Agile, TDD, XP и принципах в Software Design.
Материалы
- Стартаперы обсуждают виды сложности
- Список когнитивных искажений (да, первая ссылка в гугле)
- Про закон Галла в IT архитектуре
- Рефлексия на reddit о тревожности от overthinking
Телеграмм-канал: https://t.me/vasiliy_shiz