Простой и понятный интерфейс с. Экспериментируем. Интуитивно понятный интерфейс

Посетители уходят с вашего сайта, так и не став подписчиками/лидами/клиентами?

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

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

Однако сегодня я разложу по полочкам, как сделать ваш сайт комфортным для посетителей. Давайте начнем…

1. Простота – залог успеха

Чем проще пользоваться вашим сайтом, тем больше круг ваших читателей/подписчиков/потенциальных клиентов.А что такое простота? Это когда человек сразу понимает, куда двигаться, чтобы получить желаемое. Вот бы в жизни было так!

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

Важную роль здесь играет пользовательский опыт. Представьте ситуацию: вы пришли в автосалон машину своей мечты. В красках рассказали продавцу, какой она должна быть. И тут он вам говорит, что у них есть то, что вам нужно! Вы в предвкушении долгожданного знакомства буквально летите к своей «красавице» и… Вдруг оказывается, что ни на одной ее дверце нет ручки! Вот так облом! Как попасть в салон?

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

Хотите пример простой и понятной страницы? Зайдите в нашу «Лабораторию знаний». Тут ничто не отвлечет вас от полезных статей, ведь кроме них тут ничего нет. Заблудиться просто невозможно.

2. Главная проблема: для кого понятен ваш дизайн?

В Сети масса ресурсов, которые раздражают посетителей. Почему же не все делают сайты с интуитивно понятным дизайном? Ведь это то, что нужно людям. Но все не так просто, ведь все пользователи разные. Что легко и понятно для одного, другому покажется китайскими иероглифами.

Уверен, каждая веб-страница создается с благими намерениями. Но чаще всего сайты интуитивно понятны только для их разработчиков. Почему? Банально, но факт: дизайнеры и верстальщики не заморачиваются тем, чтобы проверить, удобно ли «простым» людям пользоваться их детищем.

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

3. Знания, которые есть, и знания, которые нужны

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

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

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

4. Как использовать концептуальные модели

Звучит как-то сложно? Сейчас все поясню:) Если человек впервые зашел на ваш сайт, это еще не значит, что его знания равны нулю.

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

Вот страница популярного интернет-магазина. Его дизайн сам подсказывает вам, что делать, чтобы получить выбранный товар. Когда вы нажимаете кнопку «Купить», нужная вещь оказывается у вас в виртуальной корзине. Вы все делаете, как в обычном магазине, только при этом еще можете попивать чай, сидя у монитора.

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

Когда вы создаете сайт, помните о том, какой опыт уже есть у вашего потенциального . Если ресурс не соответствует его концептуальной модели, человек решит, что сайтом пользоваться сложно, и… уйдет.

5. Изучите вашего посетителя

Чтобы создать интуитивно понятный дизайн, важно выяснить, что уже знают, и что нужно знать вашим посетителям. Есть 2 отличных способа это определить:

1. Проведите исследование. Понаблюдайте, как посетители пользуются сайтами в привычных условиях. Так вы получите представление об их текущих знаниях. Этот способ непростой, но есть и альтернатива.

2. Удаленное изучение. Выберите группу людей, которые будут пользоваться сайтом. Дайте им ряд задач и попросите прокомментировать, что они думают о работе ресурса. Что и как, по их мнению, нужно сделать? Что им помогает, а что мешает? Что отвлекает внимание? Так вы определите, какие знания нужно получить потенциальному посетителю.

Важно! В каждом случае вы только наблюдаете, делаете выводы и не вмешиваетесь. Попробуйте, и вы быстро обнаружите, что не так. Кстати, не стоит заморачиваться с огромным количеством участников, достаточно всего 10-ти, чтобы выявить 90% проблем.

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

6. Формула интуитивно понятного дизайна

В идеале она выглядит так: текущие знания = нужным знаниям.

Сами пользователи выделяют 2 условия, при которых дизайн сайта интуитивно понятен:

  1. Точка текущих знаний и нужных знаний примерно совпадает. Пользователи легко определяют, что им следует делать, чтобы достичь цели на сайте.
  2. Точка текущих знаний и нужных знаний удалены друг от друга, но дизайн помогает восполнить пробел. Посетители обучаются незаметно и естественно.

Лучше сделать дизайн максимально простым, чтобы не нужно было учиться или следовать инструкциям. Идеально иллюстрирует первое условие поисковик Google. Его невозможно использовать неправильно. Он прост, как и все гениальное.

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

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

7. Интуитивная навигация и поиск

76% покупателей говорят, что для них самое важное в дизайне сайта — «насколько легко я могу найти то, что мне нужно». Для удобных поисков нужна правильная навигация.

Например, в интернет-магазине важна логичная сортировка карточек товаров. Меню должно подсказывать, куда двигаться, чтобы прийти в пункт назначения. Чтобы правильно назвать пункты меню, используйте слова-зацепы. Они подскажут, что скрывается за каждым разделом.

Помните! 50% посетителей интернет-магазинов отказываются от покупки, потому что не могут найти то, зачем пришли. Поэтому вам не обойтись без поиска по сайту. У магазина Rozetka огромный ассортимент. Но здесь есть строка поиска прямо по центру экрана. Поэтому не нужно долго думать, что делать.

Маленький совет: подключите поиск по сайту к инструменту . Это повысит конверсию, ведь сам Google будет подсказывать человеку, что он может здесь найти.

8. Помните: людям комфортнее пользоваться сайтами, к которым они привыкли

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

  • Клик по логотипу компании (который располагается в верхнем левом углу) всегда ведет на главную страницу;
  • Последняя ссылка в горизонтальном меню или нижняя в вертикальном меню – это контакты;
  • В нижней части дублируется контактная информация;
  • Все элементы согласованы: пункты меню останутся на том же месте, как бы вы не перемещались по сайту;
  • Ссылки выделяются на фоне обычного текста;
  • Если пользователи могут и должны скролить вниз, хорошо видна полоса прокрутки;
  • Текст с выравниванием по левому краю легче читать;
  • Разобраться с интерфейсом помогают всплывающие сообщения;
  • Пункты меню названы понятными словами (не стоит вместо пункта «Контакты» делать кнопку «Информационная поддержка»).

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

9. Будьте осторожны с редизайном

20% пользователей тратят 80% своих доходов в Интернете. Это те важные люди, на которых редизайн повлияет сильнее всего. Они уже привыкли к тому, как все работает. Поэтому, когда вы переделываете сайт, вы меняете его, в первую очередь, для них. А многим не нравится, когда что-то не так, как обычно.

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

Если без редизайна не обойтись, делайте время от времени небольшие изменения. Это лучше, чем глобальные перемены. Так вы сможете проанализировать, как реагируют люди на каждое новшество. Но если у вашего сайта мало трафика именно из-за дизайна, смело делайте капитальный ремонт.

Напоследок

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

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

Было полезно? Смело ставьте «Лайк»! Это покажет, что вы хотите знать больше о дизайне, и я в ближайшее время подготовлю новый пост на эту тему.

Словосочетание интуитивно-понятный интерфейс , встречающееся практически во всех нынешних техзаданиях, на людей технически грамотных действует как красная тряпка на быка. Это вполне объяснимо: во время о но, когда ГОСТы были обязательны к применению, подобную чушь вычитать где-либо было нереально. И естественна реакция этих людей - а где же тогда требования к такого «интуитивно-понятного» в части его (пользователя) понятливости и интуиции?! Решим вопрос интуитивно-понятного раз и навсегда Редакция от 20.06.2018.

Что такое интуитивно-понятный интерфейс?

Создан 08.08.2016 16:50:33

Об интуитивно-понятном интерфейсе, о котором так много говорили... нет, не большевики, а юзабилизаторы, см. Страшная правда о юзабилити. Часть I , Страшная правда о юзабилити. Часть II и Страшная правда о юзабилити. Десять лет спустя . Вот одна из дискуссий, развернувшаяся в кругу этих, так сказать, «специалистов», у которых все руки по уши в юзабилити

Итак, идем по пунктам. Первый и второй - справедливо: да, видно, как товарищ последовательно пытается постичь истину в конечной ее инстанции. Третий пункт пока пропускаем. Пункт четвертый - совершенно согласны! И с пятым тоже. Но!

Посмотрим теперь, что же гласит ГОСТ 21480-76. . . Общие эргономические требования, цитируем:

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

Это из Приложения 1 ГОСТ 21480-76. Сразу смотрим на картинку, а именно на пп. 1, 2 и 5. Все совпадает? С предельной точностью!

Таким образом, интуитивно-понятный интерфейс - удел людей технически безграмотных, грамотная публика назвала бы его привычно-ассоциируемым Можно, конечно, попытаться возразить... Но разве интерфейс не мнемосхема и не собран из тех же элементов мнемосхемы, с применением тех же и?

Вот и вся задачка. Но остался один вопрос: ЗАЧЕМ в 2010 году потребовалась дискуссия (п. 3) о том, что было четко сформулировано аж в 1976 году ?! А затем, чтобы... см. п. 4 на картинке.

Вывод: сленговый интуитивно-понятный интерфейс по всяким раскиным и норманам есть вполне узаконенный государством привычно-ассоциируемый интерфейс . Война окончена, всем спасибо!

PS. Кстати, пиктограмма с ножом и вилкой есть не что иное, как элемент мнемосхемы

PPS. Почему всех так привлекают писульки каких-то раскиных, норманов и прочих безродных и беспородных джонов смитов, когда есть, скажем так, свой Михайло Ломоносов? Низкопоклонничество перед западом? Или поколение такое, развращенное америкосами и сгнившее на корню? (

26 декабря 2016 в 22:23

Интуитивное программирование

  • Отладка ,
  • Программирование ,
  • Совершенный код

За свой относительно небольшой опыт работы (порядка 6 лет) я довольно часто слышал фразы опытных и начинающих программистов - «Я чувствую, что это должно работать», «У меня есть ощущение, что этот метод работать не будет», «Давайте сделаем интуитивно-понятный интерфейс» и так далее. Всё это - проявление интуиции в процессе разработки и программировании.
О ней и пойдёт дальше разговор.

Взято с сайта oprah.com

Для начала хотелось бы определить само понятие «интуиция».

Интуи́ция (позднелат. intuitio - «созерцание», от глагола intueor - пристально смотрю) - метод решения задач посредством единомоментного подсознательного вывода, основанный на воображении, эмпатии и предшествующем опыте, «чутьё», проницательность .

«Википедия»


Интуиция (от лат. intueri – пристально, внимательно смотреть) - мыслительный процесс, состоящий в практически моментальном нахождении решения задачи при недостаточной осознанности логических связей.

Интуиция (от лат. intueri - пристально, внимательно смотреть) - знание, возникающее без осознания путей и условий его получения, в силу чего субъект имеет его как результат «непосредственного усмотрения»

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

И каждый из этих способов находит отражение в процессе программирования, причём может оказывать как позитивное, так и негативное влияние.

Поэтому, прежде всего, хотелось бы разделить «интуитивное» программирование на 2 составляющих: - оптимистическое и пессимистическое

Оптимистическое интуитивное программирование

Суть его заключается в оптимистическом или позитивном влиянии интуиции на процесс создания кода. В данном случае интуиция является помощником, «добрым другом», инструментом в руках разработчика.

Интуиция, основанная на опыте

Основная идея здесь заключается в том, что в процессе накопления опыта разработки у нас складываются определённые стереотипы, ассоциации, связанные с кодом, которые мы способны определять без углубления в мыслительный процесс.

Большое количество примеров использования такой интуиции в процессы работы описал Дмитрий Чепель из Acronis в своей . Если Вы ещё не читали, обязательно прочитайте.

Я бы хотел предложить вам другой пример-эксперимент. Ниже приведён пример кода на языке Sidef (я надеюсь не многие из Вас знают его). Попробуйте не особо вникая в детали, догадаться о чём он:

Loop { var swapped = false { |i| if (arr > arr[i]) { arr = arr swapped = true } } * arr.end swapped || break } return arr

Возможно, часть из Вас догадалась о чём идёт речь, увидев в коде знакомые части, возможно некоторые нет. Я попробовал провести этот эксперимент на небольшой группе своих знакомых программистов и результат таков - больше половины (порядка 65%) человек смогли за очень короткое время понять о чём идёт речь.

Я уточнил у них, каким образом они смогли догадаться - и самым популярным ответом было:
«Мы увидели знакомые куски кода и сразу предположили что это такое».

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

Именно из-за этого нам кажется, что более опытные программисты обладают неким «чутьём» касательно проекта или какого-либо языка программирования.

Интуиция, основанная на логике

Попроуйте продолжить следующий ряд:
Наверняка Вы ни на секунду не задумались, какое число будет дальше.
Это простой пример закономерности, которую мы можем продолжить буквально не задумываюсь.

Но что, если взять для примера следующий кусок кода на Python:

Def sum(a, b): ... def mult(a, b): ... def subtract(a, b): ... def divide(a, b): ... def calculate(a, b, strategy): ... calculate(4, 2, sum) #6 calculate(4, 2, mult) #8 calculate(4, 2, subtract) #2 calculate(4, 2, divide) #??
Даже не видя исходного кода, мы «интуитивно» чувствуем, каким будет результат выполнения последней функции в списке.

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

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

Интуитивно-понятный интерфейс

И сейчас хотелось бы перейти к такому часто используемому выражению как «интуитивно-понятный интерфейс». Это касается как и программного, так и пользовательского интерфейса.
Учитывая вышеизложенные пункты, можно сказать, что интуитивно-понятный интерфейс - это интерфейс, которые соответсвует ожиданиям пользователя, будь то программист или конечный пользователь.

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

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

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

Интуиция как иррациональное

Основой такого суждения, является то, что часто интуиция рождается как просто ощущение чего-то, неподкреплённое какими-либо выводами, логикой или опытом.

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

Это как раз то, что называется «магией» в программировании - мы меняем значение одной переменной или флага и чудесным образом наш код начинает работать, хотя это решение было принято абсолютно инстинктивно. И как раз такой вид интуиции является истинным её проявлением.

Пессимистическое инстинктивное программирование

Но интуиция может нести и негативный характер при разработке.

Как упоминалось выше «иррациональная» интуиция является одновременно и палочкой-выручалочкой и опасным инструментом в руках программиста.

Опираясь на такие инстинктивные решения мы теряем уверенность в написанном нами коде, в котором начинает происходить «магия».

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

В качестве заключения

В целом вопрос интуиции при разработке программного обеспечения поднимается не впервые.
Это связано с тем, что проблема влияния процессов, несвязанных с логикой и мышлением, на процесс написания кода будет оставаться актуальным, поскольку этим процессом занят человек, обладающий чувствами, предрассудками, «иррациональным».

P.S. Для тех, же кому интересна тема интуции в разработке ПО, советую почитать

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

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

Слово «интерфейс» заимствовано из английского языка, где буквально означает «между лицами» , т.е. используется в значениях: «взаимодействие, разделение, внешний вид». В современной IT-сфере интерфейсом называют унифицированные системы связи, обеспечивающие обмен информацией между различными объектами.

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

Интерфейс представляет собой систему связи между различными узлами и блоками сложного оборудования, а также между техникой и пользователем. Он выражается в логической (системы представления информации) и физической (характеристики информационных сигналов) форме.

Так, логически компьютерные интерфейсы представляют собой сложные математические системы, основанные на понятиях Булевой алгебры, а физически – это совокупность чипов и других электронных деталей, медных проводов и импульсов электрического тока.


В целом компьютерный интерфейс обеспечивает функционирование компьютера – связь процессора с оперативной памятью, устройствами печати и т.д., а также обмен информации с другими компьютерами (в сети Интернет) и с человеком.

Грубо говоря, без интерфейса работа вычислительных устройств попросту невозможна. Сегодня в компьютерной технике используются различные виды интерфейсов, необходимые для профессиональной работы программиста и для пользования обычных людей компьютерами.

Графическим интерфейсом называют один из видов пользовательского компьютерного интерфейса, который вместо букв и цифр использует графические изображения – иконки, кнопки и т.д. Так, например, рабочий стол ОС Виндоуз представляет собой элементы графического интерфейса, который позволяет запускать программы простым кликом мышки.

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

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


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

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

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

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


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

За свой относительно небольшой опыт работы (порядка 6 лет) я довольно часто слышал фразы опытных и начинающих программистов - «Я чувствую, что это должно работать», «У меня есть ощущение, что этот метод работать не будет», «Давайте сделаем интуитивно-понятный интерфейс» и так далее. Всё это - проявление интуиции в процессе разработки и программировании.
О ней и пойдёт дальше разговор.

Взято с сайта oprah.com

Для начала хотелось бы определить само понятие «интуиция».

Интуи́ция (позднелат. intuitio - «созерцание», от глагола intueor - пристально смотрю) - метод решения задач посредством единомоментного подсознательного вывода, основанный на воображении, эмпатии и предшествующем опыте, «чутьё», проницательность .

«Википедия»


Интуиция (от лат. intueri – пристально, внимательно смотреть) - мыслительный процесс, состоящий в практически моментальном нахождении решения задачи при недостаточной осознанности логических связей.

Интуиция (от лат. intueri - пристально, внимательно смотреть) - знание, возникающее без осознания путей и условий его получения, в силу чего субъект имеет его как результат «непосредственного усмотрения»

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

И каждый из этих способов находит отражение в процессе программирования, причём может оказывать как позитивное, так и негативное влияние.

Поэтому, прежде всего, хотелось бы разделить «интуитивное» программирование на 2 составляющих: - оптимистическое и пессимистическое

Оптимистическое интуитивное программирование

Суть его заключается в оптимистическом или позитивном влиянии интуиции на процесс создания кода. В данном случае интуиция является помощником, «добрым другом», инструментом в руках разработчика.

Интуиция, основанная на опыте

Основная идея здесь заключается в том, что в процессе накопления опыта разработки у нас складываются определённые стереотипы, ассоциации, связанные с кодом, которые мы способны определять без углубления в мыслительный процесс.

Большое количество примеров использования такой интуиции в процессы работы описал Дмитрий Чепель из Acronis в своей статье на Хабре . Если Вы ещё не читали, обязательно прочитайте.

Я бы хотел предложить вам другой пример-эксперимент. Ниже приведён пример кода на языке Sidef (я надеюсь не многие из Вас знают его). Попробуйте не особо вникая в детали, догадаться о чём он:

Loop { var swapped = false { |i| if (arr > arr[i]) { arr = arr swapped = true } } * arr.end swapped || break } return arr

Возможно, часть из Вас догадалась о чём идёт речь, увидев в коде знакомые части, возможно некоторые нет. Я попробовал провести этот эксперимент на небольшой группе своих знакомых программистов и результат таков - больше половины (порядка 65%) человек смогли за очень короткое время понять о чём идёт речь.

Я уточнил у них, каким образом они смогли догадаться - и самым популярным ответом было:
«Мы увидели знакомые куски кода и сразу предположили что это такое».

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

Именно из-за этого нам кажется, что более опытные программисты обладают неким «чутьём» касательно проекта или какого-либо языка программирования.

Интуиция, основанная на логике

Попроуйте продолжить следующий ряд:
Наверняка Вы ни на секунду не задумались, какое число будет дальше.
Это простой пример закономерности, которую мы можем продолжить буквально не задумываюсь.

Но что, если взять для примера следующий кусок кода на Python:

Def sum(a, b): ... def mult(a, b): ... def subtract(a, b): ... def divide(a, b): ... def calculate(a, b, strategy): ... calculate(4, 2, sum) #6 calculate(4, 2, mult) #8 calculate(4, 2, subtract) #2 calculate(4, 2, divide) #??
Даже не видя исходного кода, мы «интуитивно» чувствуем, каким будет результат выполнения последней функции в списке.

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

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

Интуитивно-понятный интерфейс

И сейчас хотелось бы перейти к такому часто используемому выражению как «интуитивно-понятный интерфейс». Это касается как и программного, так и пользовательского интерфейса.
Учитывая вышеизложенные пункты, можно сказать, что интуитивно-понятный интерфейс - это интерфейс, которые соответсвует ожиданиям пользователя, будь то программист или конечный пользователь.

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

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

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

Интуиция как иррациональное

Основой такого суждения, является то, что часто интуиция рождается как просто ощущение чего-то, неподкреплённое какими-либо выводами, логикой или опытом.

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

Это как раз то, что называется «магией» в программировании - мы меняем значение одной переменной или флага и чудесным образом наш код начинает работать, хотя это решение было принято абсолютно инстинктивно. И как раз такой вид интуиции является истинным её проявлением.

Пессимистическое инстинктивное программирование

Но интуиция может нести и негативный характер при разработке.

Как упоминалось выше «иррациональная» интуиция является одновременно и палочкой-выручалочкой и опасным инструментом в руках программиста.

Опираясь на такие инстинктивные решения мы теряем уверенность в написанном нами коде, в котором начинает происходить «магия».

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

В качестве заключения

В целом вопрос интуиции при разработке программного обеспечения поднимается не впервые.
Это связано с тем, что проблема влияния процессов, несвязанных с логикой и мышлением, на процесс написания кода будет оставаться актуальным, поскольку этим процессом занят человек, обладающий чувствами, предрассудками, «иррациональным».

P.S. Для тех, же кому интересна тема интуции в разработке ПО, советую почитать