Connect with us

Разработка

Григорий Петров: Модель, которую построил мозг

Пару десятков лет назад психологам дали МРТ. И началось.

Григорий Петров

Опубликовано

/

     
     

Пару десятков лет назад психологам дали МРТ. И началось. Если раньше исследование нашего мировосприятия в основном заключалось в долгих беседах, то теперь достаточно сканера мозговой активности и правильно поставленного эксперимента. Поставленные за эти годы эксперименты развенчали множество мифов о том, как работает наш мозг. И породили еще больше позволили выдвинуть ряд интересных гипотез. Большой интерес для нас представляет концепция ментальных моделей, о которой очень доступно и подробно написано в этой книге.

В соответствии с этой теорией, мозг взаимодействует с окружающим миром и телом путем построения моделей. Результаты этой деятельности по моделированию воспринимаются нашим разумом как реальность и наши действия в ней. Теория легко объясняет оптические и физические иллюзии, которые являются не более чем эксплуатацией “устоявшихся” в мозгу моделей. Например, мы воспринимаем впуклости и выпуклости на этом рисунке потому, что у нашего мозга есть “базовая” модель падающего сверху света. Если вы перевернете это изображение, то элементы поменяются местами.

vpadiny-vypuklosti

Самое интересное заключается в том, как мозг строит модели. Происходит это путем предсказания по текущей модели, внимательного осмотра, что получилось на самом деле, и последующего редактирования модели. Если окружающий мир перестает соответствовать модели слишком резко, то мозг начинает творить странное. Оптические иллюзии – самое безвредное из этого.

Если наш мозг использует модели всегда и для всего, то зачем я рассказываю об этом в колонке про управление разработкой? Ведь мозг точно так же будет себя вести и при рытье траншей, и при проведении хирургических операций? Да, будет. Но у нас, традиционно, своя специфика. Мозг любит строить модели на основании других моделей. Сперва младенец строит модели “свет падает сверху” и “свет отбрасывает тень”, после чего с помощью них и наблюдений строит модель “тени снизу”. Которая впоследствии становится основной многих оптических иллюзий. На этом принципе основано традиционное образование: вначале мы объясняем простые вещи, проводя аналогии с реальным миром, чтобы мозг мог за них “зацепиться” и переиспользовать существующие модели. А затем мы объясняем более сложные вещи в терминах уже изученных простых. И так далее, вплоть до высшей математики и теоретической физикой.

Так вот, с точки зрения существующих моделей окружающего мира, разработка программ – это не очень естественная деятельность. Мозгу трудно проводить аналогии, и до сих пор даже не очень понятно с чего начинать обучение программированию. В основном используется метод “давайте кинем его в воду и он сам как-нибудь научится плавать”. На обучаемого вываливается куча информации об алгоритмах, данных, потоках выполнения, функциях, объектах, классах. После чего предлагается “делать практические упражнения пока сам как-нибудь не поймет”. Способ в целом работающий, но далеко не самый лучший.

Практические рекомендации

Знание того, что мозг всегда строит модели окружающего мира, позволяет нам объяснить многие закономерности в разработке и придумать способы борьбы с неприятными вещами. Про какие-то я уже писал (ничего не говоря про модели). К примеру, стандарт кодирования и одобренные библиотеки с фреймворками позволяют разработчикам в одной команде формировать похожие ментальные модели и гораздо лучше понимать и менять код друг друга.

illo_mental_model

Мозг не только строит модели, но и использует их определенным образом. Из интересного и полезного: мозг старается минимизировать потребление энергии и всегда выбирает самую “сильную” из подходящих моделей. Более того, после того как мозг ее выбрал, она еще усиливается. На этом основан известный фокус: собеседнику предлагают называть последовательности чисел, и говорят, удовлетворяют ли они загаданному правилу или нет. Задача – назвать загаданное правило. Большинство людей называют “одни – два – три”, им отвечают “да”, после чего они называют что-нибудь вроде “четыре – пять – шесть”, снова слышат “да” и говорят, что правило – каждое следующее число на единицу больше предыдущего. А на самом деле загадывают правило “каждое последующее число больше предыдущего”. Но мозг, выбравший самое простое правило, заставляет человека произносить последовательности, которые этому правилу удовлетворяют. И не произносить те, которые бы его опровергали.

Как нам пригодится это знание? Если непонятно что делать, то всегда нужно просить разработчиков предложить несколько вариантов решения. Если этого не сделать, то разработчики автоматически используют первое найденное и будут за него “цепляться”. Не потому, что они такие упертые, а потому, что так работает наш мозг. Про некоторые практические приемы борьбы с “заклинившими” моделями я уже писал.

Другая полезная в хозяйстве закономерность: сложные модели являются признаком проблем в предметной области. Мозг построит модель в любом случае, но если у человека не очень хорошее понимание предмета, то модель будет переусложнена. Особенно хорошо такое видно в теориях заговора безумцев, которые с легкостью объясняют, почему нами правят инопланетяне. Так вот, при разработке такого лучше не допускать. Если где-то слишком сложная архитектура – есть хорошие шансы, что разработчик не очень понимает, что именно происходит и пытается поймать нужное в клетку. Только не из слов, а из кода. Что с этим делать? Обеспечить, чтобы тим лид внимательно следил.

Что еще хорошего можно прочитать в упомянутой выше книге: наше воображение не креативно. Звучит странно, не так ли? Мы привыкли считать, что именно “богатое воображение” позволяет строить нам воздушные замки и вообще там “такое, что просто ух!”. Да, воображение очень хорошо извлекает образы из памяти и укладывает их в существующие модели. Только вот новые модели оно создавать не любит, в своем воображении мы ограничены имеющимся опытом. Практический вывод: “сидеть и думать” не очень эффективно. Бумага с ручкой или брейншторм позволяют мозгу делать то, для чего он эволюционно приспособлен – адаптировать модели под изменяющийся окружающий мир. Если разработчик уже второй час с задумчивым видом ходит кругами – дайте ему бумагу, ручки и попросите “подумать вслух” с использованием этих нехитрых приспособлений. Он будет приятно удивлен результату. Кстати, благодаря этому свойству нашего воображения часто случаются ситуации, когда разработчик начинает формулировать вопрос и на середине уходит со словами “ой, я все понял”.

Это только начало

Обсуждать работу мозга можно долго и со вкусом. Но в этих статьях я ограничусь базовым минимумом, который позволит мне рассказать о практической стороне управления разработкой. Ожидайте в следующих статьях:

  • Почему средним разработчикам трудно поддерживать код более опытных коллег.
  • Что делать с перфекционистами в команде.
  • Разрушительная сила ретроспективного когнитивного искажения.
  • Откуда растут корни ООП.
  • Неочевидная польза stackoverflow.
  • И многое другое.

Подписывайтесь на новости и оставайтесь с нами!

Комментарии
Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.
Advertisement
4 комментария

4 Comments

  1. Nikolay Karelin

    02.05.2016 at 15:53

    Последний, самый главный переход как-то непонятен. Если мозг не эффективен в построении новых моделей, то почему бумага с ручкой помогают?

    О, я знаю, что это правильно, но чтобы убеждать окружающих мне в этой статье какого-то шажка не хватает.

  2. Konstantin Makarov

    05.05.2016 at 11:43

    Попытка переложить скомканные мысли на бумагу заставляет их формализовать, упорядочить, расставить между ними отношения.
    Лично мне изложить текстом мысли завсегда проще, чем какой-то понятной и симпатичной схемой-картинкой.

    Зато если получилось структурировать мысль именно до лаконичных блок-схем или майндмэпа, наступает полнейшее просветление и уверенность в выбранном решении.

You must be logged in to post a comment Login

Leave a Reply

Новости

Интересные материалы: 25.09

У нас нова куча анимаций, UI, реджектов и есть даже долг данных от Riot.

AppTractor

Опубликовано

/

Автор:

Весь день мы собираем лучшие материалы о разработке и маркетинге технологий, стартапов, мобильных приложений и игр для iOS и Android из самых разных источников:

Комментарии
Продолжить чтение

Медиа

Android Dev Подкаст. Выпуск 75. Новости об осенних релизах, либах и девфестах

У нас целый урожай релизов: Kotlin 1.3RC, OpenJDK11, Androidx1.0, и даже Flutter готовит свой 1.0RC! Ну и то, что вы любите: ругаем кривые либы и мамкиных архитекторов, хвалим девфесты и хорошие статейки. А ещё Денис свалил из Сингапура, а к нам вернулся блудный сын Даня!

AppTractor

Опубликовано

/

Автор:

У нас целый урожай релизов: Kotlin 1.3RC, OpenJDK11, Androidx1.0, и даже Flutter готовит свой 1.0RC! Ну и то, что вы любите: ругаем кривые либы и мамкиных архитекторов, хвалим девфесты и хорошие статейки.

А ещё Денис свалил из Сингапура, а к нам вернулся блудный сын Даня!

Материалы:

Комментарии
Продолжить чтение

Новости

Интересные материалы: 24.09

Начинаем новую неделю с чатов, дизайн-процессов и трендов.

AppTractor

Опубликовано

/

Автор:

Весь день мы собираем лучшие материалы о разработке и маркетинге технологий, стартапов, мобильных приложений и игр для iOS и Android из самых разных источников:

Комментарии
Продолжить чтение

Новости

Digest MBLTdev: Новости для iOS разработчиков №187

В течение недели топовые iOS-разработчики Руслан Гуменный, Саша Черный, Сергей Бендак, Вадим Дробинин, Юрий Петухов и директор по продукту VK Иван Козлов собирают для вас интересные и полезные ссылки на статьи, необходимые для прочтения каждому начинающему и опытному разработчику. В каждом выпуске – новости, коды, инструменты, дизайн и прочее.

e-Legion

Опубликовано

/

Автор:

Герой недели — Amazon. Отсыпали от души. Столько новых устройств как-то даже не припоминается. Микроволновка, настенные часы и устройство для автомобиля, которые позволяют использовать голосовые команды Алексы. Разве не прекрасно? Команда микроволновке «приготовь попкорн», команда автомобилю без необходимости запускать приложение — это же здорово. А один из членов Дорогой редакции недавно пытался связать Айфон с CarPlay в Genesis G70 и не смог. Не соединяет и всё. Машина за 2 млн рублей, в которой ты не смог с первого раза подключиться к CarPlay или Echo Auto за 3200 рублей? Да-да, сравнение не блещет корректностью, но идею вы поняли.

Неделя до MBLT DEV 2018

Посмотрите приветствие от спикера MBLT DEV Джона Фокса из Netflix. Посмотрите до конца, оно классное! Программа конференции опубликована. Спикеры пакуют чемоданы. Пора и билетом обзавестись.

WWW.FACEBOOK.COM

Foundation Release Notes

Про iOS 12 последние несколько месяцев много пишут и говорят, но конкретный список технических нововведений только-только опубликовали.

DEVELOPER.APPLE.COM

Migrating to Unified Logging, Swift Edition

До сих пор используете NSLog и print? Пора переходить на систему Unified Logging, она и к ресурсам менее требовательна, и обработку подобных логов выполнять проще. Об особенностях использования os_log рассказано в этом материале.

WWW.BIGNERDRANCH.COM

Bloom Filters and Swift 4.2

Hasher — универсальная хэш-функция, добавленная в Swift 4.2. На примере показано её применение для построения структуры данных, которая используется в Medium для отслеживания статуса прочтения статей.

KHANLOU.COM

Swift Associated Types With Default Values

Одной из недокументированных особенностей Associated Types является возможность установки значения по умолчанию. В этом случае при поддержке протокола можно не определять typealias. В материале показано практическое применение для этого кейса.

SWIFTROCKS.COM

Animating Table View Cells Display

Пример того, как можно улучшить визуальное восприятие пользователем таблиц в вашем приложении. На простых прототипах показаны реализации анимации движения, появления и отскока ячеек.

WWW.VADIMBULAVIN.COM

Type-Safe Swift Models

Автор статьи рассказывает о том, как можно улучшить подход к проектированию моделей в связке с Codable.

BLOG.USEJOURNAL.COM

Marzipan: Porting iOS Apps to the Mac

Исчерпывающая инструкция об инструментах для портирования мобильных приложений для работы на десктопе.

PSPDFKIT.COM

Fireworks in UIViews

Пятничное. Порадуйте ваших пользователей маленьким фейерверком.

SZULCTOMASZ.COM

Sublime Merge

Если вас по какой-то причине не устраивает консоль, разработчики редактора Sublime выпустили клиент для Git.

WWW.SUBLIMEMERGE.COM

Supporting iPhone XS Max and XR

Очерк о размере дисплеев, разрешениях, масштабировании и size-классах в новых моделях iPhone.

USEYOURLOAF.COM

Designing for Siri Shortcuts

Siri Shortcuts уже доступны для всех, поэтому самое время озадачиться нюансами их проектирования.

BLOG.MAXRUDBERG.COM

Apple Tech Talks

Apple рассказывает об особенностях адаптации приложений для новых iPhone XS и XR, а также о подходах к разработке дизайна для Apple Watch Series 4.

DEVELOPER.APPLE.COM

Apple Watch Series 4 Faces without CGI effects

Красивое видео о том, как новые анимации для часов были сняты без использования компьютерных эффектов.

APPLEINSIDER.COM

What’s new in Swift 5.0

Буквально несколько дней назад состоялся релиз Swift 4.2, а у нас уже есть возможность познакомиться со Swift 5.0. Raw strings облегчают работу при формировании регулярных выражений, а метод count(where:) для коллекций является заменой связки методов filter() и count(). О других нововведениях можно узнать из примеров в статье.

WWW.HACKINGWITHSWIFT.COM

Предыдущие выпуски Digest MBLTDEV и подписка доступны на официальном сайте. Всё бесплатно и никакого спама, честно!

Комментарии
Продолжить чтение

Реклама

Наша рассылка

Нажимая на кнопку "Подписаться" вы даете согласие на обработку персональных данных.

Вакансии

Популярное

X
X

Спасибо!

Теперь редакторы в курсе.