Число Миллера: секрет ясного кода, простых систем и фокусированных команд
У мозга есть встроенный лимит: мы можем одновременно держать во внимании примерно 7 объектов. Понимая это ограничение, можно проще писать код, строить архитектуру, управлять командой — и даже планировать день.
В 1956 году американский психолог Миллер опубликовал работу, в которой в результате экспериментов обнаружил, что кратковременная память человека способна удерживать во внимании одновременно от 5 до 9 элементов информации (в среднем 7). Это «магическое» число 7 стало основополагающим в современной когнитивной психологии.
Современные исследования вносят уточнения: число 7 +/- 2 относится к сгруппированным элементам информации, а не к отдельным элементам. Более поздние работы показывают, что реальная способность зависит от типа информации, и реальная емкость нашей памяти может быть 4 +/- 1 элемент.
Если подвести краткий итог, наш мозг не может оперировать большим числом разноплановой информации. Поэтому стоит эту информацию ограничивать, структурировать и группировать по смыслу.
Как может это нам помочь в нашей деятельности?
Как это применять в разработке
В разработке мы в основном оперируем структурами данных, и число Миллера — это отличный ориентир для снижения когнитивной нагрузки.
Написание кода
При написании кода, используя числа 7 и/или 4, мы можем улучшить читаемость и восприятие кода:
- Ограничение количества переменных, параметров функций и полей у класса позволит улучшить читаемость и восприятие кода.
- Размер методов и функций также связан с ее пониманием, идеально — когда вся функция помещается в один экран (и в ширину тоже :) Здесь должна быть шутка про монитор у Java разработчика).
- Группировка логически связанных элементов позволит также улучшить читаемость кода и даже больше — сгруппированные элементы легче вынести в отдельную структуру или метод.
Проектирование систем
При проектировании систем мы имеем дело с более абстрактными сущностями. Здесь число Миллера позволит управлять сложностью и коммуникациями:
- Группировка по контекстам — разделение системы по контекстам, каждый из которых решает свою задачу.
- Ограничение взаимодействующих элементов — если в процессе взаимодействует более 7 элементов, то стоит разделить и/или сгруппировать их, что упростит реализацию и дальнейшую поддержку системы.
- Документация:Визуализация данных — группировать элементы по контекстам или разбивать на несколько диаграмм;Иерархия информации — создавать многоуровневые структуры, на каждом уровне не более 5-7 элементов.
Управление командой и проектом
Управление командами и проектами — это постоянная работа с информацией и людьми. Число Миллера будет ключом к успешному построению процессов.
- Многие исследования показывают, что наилучшая управляемая команда — 2 пиццы, примерно 7 разработчиков. Если людей становится больше, то стоит разбить на подкоманды.
- Отличный уровень декомпозиции — это задачи, состоящие не более чем из 5-7 шагов. Так они будут более понятны и проще в реализации.
- За одну итерацию стоит фокусировать команду на 3-4 ключевых целях. Это позволит сконцентрироваться и не распылять внимание.
- Повестка на встречи должна содержать 3-4 пункта. Тогда встречи будут короткими и продуктивными.
Как это применять в личной жизни
Принципы управления вниманием полезны не только в работе, но и в быту. Это позволит повысить личную эффективность и уменьшить уровень стресса.
- При планировании дел выбирайте 3-5 самых важных дел на день.
- При изучении нового материала разбивайте информацию на модули, а модули на уроки по 20-30 минут.
- Запоминание информации будет более эффективной, если ее сгруппировать, а внутри групп, если это нужно, разбить на подгруппы.
- Чем больше дел мы удерживаем в уме, тем быстрее устаем, используйте внешние носители информации. Это позволит сосредоточиться на текущих целях.
Заключение
Учет ограниченности нашего внимания позволит значительно улучшить нашу способность обрабатывать информацию и повысит нашу продуктивность. Но действуйте без фанатизма, важно понимать, что число Миллера — не догма, это ориентир.
Подписывайся на мой telegram-канал
#processes #management #SoftwareArchitecture #self-improvement