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

SDK

App Annie запустила аналитику установленных в приложениях SDK

Специалистам по продажам рекламы в мобильных рекламных сетях может быть сложно находить потенциальных клиентов и генерировать поток продаж без определенных данных. Успешные команды по продажам рекламы и работе с издателями должны улавливать важные сигналы, которые позволяют получить лучших рекламодателей и издателей. Именно поэтому в App Annie разработали показатели SDK, которые в сочетании с самыми надежными данными о мобильных приложениях обеспечивают наилучшую мобильную аналитику.

AppTractor

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

/

Автор:

Все данные доступны в App Annie Intelligence. Теперь команды по продажам могут использовать данные о мобильных SDK и рынке приложений для привлечения более перспективных потенциальных клиентов и заключения более крупных сделок.

Ускоренное создание потока продаж

Если знать, где искать, можно получить ценную информацию о стратегиях рекламы и монетизации, реализуемых издателями приложений, которые являются вашими потенциальными клиентами. Используйте сигналы в реальном времени, чтобы узнать, кому из издателей приложений может требоваться ваше решение, и обращайтесь к ним в первую очередь. Анализируя установленные в приложениях SDK, такие как SDK атрибуции и медиации рекламы, а также SDK рекламных платформ, можно узнать, какие приложения планируют запуск кампаний привлечения пользователей или пытаются монетизироваться за счет рекламы. Это отличные индикаторы приложений, заинтересованных в вашем решении.

Отбор наиболее перспективных потенциальных клиентов

Сначала обращайтесь к потенциальным клиентам, которые могут принести наибольший доход. В случае рекламодателей измеряйте потенциальный доход с помощью показателей рекламного бюджета, роста количества пользователей и рекламной стратегии. В случае издателей обращайте внимание на показатели, связанные со стратегией рекламных инструментов и монетизации. Используйте следующие показатели App Annie для выделения потенциальных клиентов, которые могут принести наибольший доход:

  • количество установленных SDK атрибуции рекламы, загрузки, доход, активные пользователи, доля показов — для продаж рекламы
  • количество установленных SDK рекламных платформ, долявыполненных показов, активные пользователи, длительность сеанса вприложении, загрузки, доходы — для работы с издателями

Оценка своих позиций: измерение доли рынка SDK рекламных платформ

Вам интересно, в скольких приложениях установлен SDK определенной рекламной платформы? App Annie обеспечивает полный обзор экосистемы SDK. Сравнивайте свою долю рынка с долей рынка конкурентов. Отслеживайте, какие платформы теряют и приобретают издателей. Ищите возможности расширения охвата. Получайте подробную информацию о лидерах рынка, включая популярные и доминирующие рекламные платформы — для этого отслеживайте доли установленных приложений и доли загрузок, а также установки и удаления новых SDK. Отфильтровывайте данные по рынкам и категориям приложений, чтобы выявлять области для расширения охвата и определять наилучший подход к позиционированию своего решения.

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

Разработка

Как сделать HTML5-приложение на Corona

10 июля движок для создания 2D-приложений Corona обновился до версии 2018.3326. Это значит, что поддержка платформы HTML5 наконец вышла в открытую бету, и создание HTML5-приложений доступно всем пользователям.

AppTractor

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

/

Автор:

Что такое HTML5-игры и почему они важны

Легкие онлайн-игры на основе HTML5 запускаются во вкладке любого браузера или внутри знакомых всем приложений: в социальных сетях или мессенджерах. Чтобы начать HTML5-игру, не нужно скачивать приложения из App Store или Google Play или обновлять плагины браузера  достаточно выбрать игру парой кликов из каталога встроенной в социальную сеть / мессенджер игровой платформы. Подобные платформы уже есть во «ВКонтакте» (Direct Games), в Facebook (Instant Games) и даже в Telegram и китайском WeChat. Благодаря этому аудитория игр расширяется: пользователи ждут новых игр, а девелоперы с удовольствием их создают, адаптируя новые жанры, усложняя игровые механики.

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

Все указывает на то, что пора собирать свое первое HTML5-приложение и зарабатывать на нем, пока это не сделал ваш сосед. Поэтому сегодня рассказываем и показываем, как поставить готовую игру на HTML5-рельсы и разместить ее на платформах Facebook Instant Games и VK Direct Games с помощью движка Corona.

Портирование в HTML5:

  1. Заходим на сайт Corona Labs и скачиваем на свой компьютер последнюю версию Corona 2018.3326.

  1. После установки ПО и открытии Corona Simulator создайте аккаунт в открывшемся окне – Corona Developer Login или зайдите под существующим.
  2. Теперь самое интересное – начинаем портировать игру в HTML5-формат. Мы покажем на примере игры из Corona Marketplace. Скачиваем и открываем игру в Corona Simulator: Open Project -> Папка игры -> main.lua. Даже если у вас несколько файлов .lua, выбираем сначала main.

  1. Чтобы cобрать из вашего проекта HTML5-приложение, выберите в меню Corona Simulator — File -> Build -> HTML5(BETA).

  1. В открывшемся окне портирования задайте имя и расположение файла. Что делать с опциями под галочками:
    – Include Standard resources означает, что ваша игра сможет использовать стандартные элементы Corona (кнопки, фигуры) — рекомендуемая для начинающих;
    – Create FB Instant archive (создает архив файлов, который потом пригодится для портирования проекта на игровую платформу Facebook) — ставьте галочку.

  1. После нажатия OK запустится портирование игры в HTML5-формат. В окне Corona Simulator Console отобразятся списком все файлы приложения и итоговый вес игры.
  2. Когда портирование закончится, игра автоматически откроется в системном браузере. Можно также открыть в любом удобном браузере, нажав в всплывающем окне на Open in Browser, чтобы запустить игру. Внешне она будет выглядеть одинаково во всех браузерах, в том числе, в мобильных.

  1. В папке с готовым HTML5-приложением вы найдете zip-архив для загрузки игры на Facebook Instant Games.

Портирование на Facebook Instant Games

  1. Зарегистрируйтесь на странице Facebook для разработчиков (developers.facebook.com) -> Начать работу (или «Мои приложения», если аккаунт уже есть).

  1. На странице всех ваших приложений Facebook -> Добавить новое приложение (developers.facebook.com/apps).
  2. В открывшемся каталоге приложений выберите «Моментальные игры» (Instant Games)

  1. Добавьте иконки, название и описание будущей игры начиная с вкладки «Информация».
  2. Во вкладке Веб-хостинг -> Загрузить версию загружаем zip-архив, из папки с вашим HTML5-приложением.

Помните, что размер приложения не должен превышать 5МБ. Это связано с использованием webview, который существенно ограничивает производительность устройства;

Facebook предоставляет свой сервер для моментальных игр, беспокоится о собственном нет необходимости.

  1. Когда загрузка завершится, в панели загрузки выберите значок звезды, чтобы передать приложение в производство.

  1. Теперь можно посмотреть, как выглядит и работает игра: Настройки в левой панели -> Основное -> Веб-игры на Facebook -> вставляем в адресную строку браузера ссылку из окна «URL Страницы веб-игр Facebook».

  1. Осталось только заполнить все настройки приложения, включая вкладки «Лидеры», «Проверка», «Рекомендации», «Отзывы», «Покупка в приложении» и отправить игру на проверку. И вуаля, ваша игра уже в левом меню среди других на Facebook Instant Games!

Портирование в VK Direct Games

  1. Активируйте плагин VK Direct Games в Corona Marketplace. Зайдите на страницу плагина и нажмите кнопку Activate;

  1. В своем проекте в файле build.settings установите плагин VK Direct Games. Как это сделать описано в документации к плагину;
  2. Соберите из вашего проекта HTML5-приложение как описано выше.
  3. Готовое HTML5-приложение перенесите на свой сервер. Если нет сервера, можно воспользоваться сервисом GitHub, который организует ваш сервер по адресу yourname.github.io;
  4. Наберите в браузере строку yourname.github.io и проверьте, что ваше приложение работает корректно, помните, что игры в ВК должны занимать не более 10МБ;
  5. Зайдите на страницу в VK для разработчиков. Выберите пункт «Мои приложения» из верхней панели и нажмите кнопку «Создать приложение»;

  1. Выберите пункт «Встраиваемое приложение», заполните поле названия и описания игры и нажмите кнопку «Перейти к загрузке приложения»;

  1. На ваш телефон должно прийти уведомление о создании вами игры — вам надо подтвердить это действие, чтобы продолжить;
  2. Добавьте иконки для описания игры, как указано на странице «Информация»;

  1. В левой панели выбираете пункт «Настройки» и выбираете тип приложения iFrame, включаете состояние «Видно всем» и самое главное, в поле «Мобильная версия»: добавляете адрес вашей HTML5-игры (пример: https://yourname.github.io);
  2. Важно! Оставьте поле адрес iFrame пустым;

  1. Сохраните настройки — иконка вашей игры будет в левой панели — нажмите на нее — у вас появится экран игры и кнопка «Отправить на телефон»;

  1. Подключите телефон через USB к компьютеру, погасите приложение VK и нажмите кнопку «Отправить на телефон» — вы услышите звук пуш-нотификации;
  2. Смахните сверху вниз по экрану телефона и выберите пуш-нотификацию — ваша игра запустится внутри приложения VK;

Bingo! Теперь ваша игра есть на ведущих игровых платформах, а также во вкладках самых популярных десктопных и мобильных браузеров.

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

Медиа

Android Dev Подкаст. Выпуск 70. React Native. Впиливать или выпиливать?

Мы обходили стороной вопросы кроссплатформенных фреймворков, но вот настал час для обсуждения одной и самых модных и более-менее стабильных платформ. Мы пригласили разработчиков с большим стажем. В мир Reat Native кто-то пришел из Andorid, кто-то из iOS, а кто-то из веб – и тем и интереснее получилась беседа. Надеемся, что к концу выпуска, слушатель, вместе с ведущими, сформирует свое мнение о React Native и будет готов к обсуждению внедрения этого фреймворка на работе.

AppTractor

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

/

Автор:

Мы обходили стороной вопросы кроссплатформенных фреймворков, но вот настал час для обсуждения одной и самых модных и более-менее стабильных платформ. Мы пригласили разработчиков с большим стажем. В мир Reat Native кто-то пришел из Andorid, кто-то из iOS, а кто-то из веб – и тем и интереснее получилась беседа. Надеемся, что к концу выпуска, слушатель, вместе с ведущими, сформирует свое мнение о React Native и будет готов к обсуждению внедрения этого фреймворка на работе.

Материалы

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

Дизайн и прототипирование

17 лекций о разработке интерфейсов Школы разработки интерфейсов Яндекса

Этой весной в Яндексе прошла очередная Школа разработки интерфейсов. Школа рассчитана на начинающих разработчиков, которые всерьёз интересуются созданием интерфейсов и уже знают азы, но пока не набрались опыта. Чтобы освоить программу Школы могли все желающие, Яндекс выпустил видеокурс — он объединяет все лекции, которые читались в ШРИ весной.

AppTractor

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

/

Автор:

Материалы для самоподготовки

В курс вошли семнадцать лекций. Они посвящены разным аспектам разработки интерфейсов. Например, в одной рассказывается, как адаптировать интерфейс под разные типы устройств, в другой — как сделать его доступным для людей с ограниченными возможностями. Некоторые лекции касаются тем, не связанных с программированием. Разработчику интерфейсов важно знать, как создаётся дизайн продукта, — так ему будет проще найти общий язык с дизайнерами. Лекция о навыках публичных выступлений поможет понять, как грамотно рассказать о результатах своей работы большой аудитории.

Все лекторы — сотрудники Яндекса. Они работают над интерфейсами разных сервисов компании — Поиска, Карт, Дзена, Директа — и подкрепляют рассказ примерами из личного опыта. В конце они приводят ссылки на дополнительные материалы — если тема интересна, будет понятно, куда двигаться дальше.

Курс даёт базовую теорию. Тех, кто хочет применить знания на практике, Яндекс приглашает на очные занятия в Школу разработки интерфейсов. Практики будет много — слушателей ждут семинары, домашние задания и работа над учебными проектами. Для поступления нужно заполнить анкету и решить тестовое задание.

Обучение в Школе бесплатное. Набор открыт в трёх городах: Москве, Симферополе и Минске. Жители других мест могут приехать на учёбу в столицу: тем, кто пройдёт отбор, Яндекс оплатит дорогу и проживание в хостеле.

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

Реклама

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

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

Вакансии

Популярное

X
X

Спасибо!

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