Это перевод поста «Front-end Choice Paralysis» Addy Osmany, опубликованный 1 июля 2014 года.
Во фронтенд-разработке мы постоянно сталкиваемся с такой проблемой, как изобилие выбора. Мы видим избыток инструментов, фреймворков, языков, абстракций и платформ. Такой выбор — это, безусловно, хорошо для конкуренции и дальнейшего развития, однако, сталкиваясь с таким количеством вариантов, можно впасть в ступор. Вместо того чтобы сделать свой выбор, чувствуешь себя брошенным, с чувством неопределенности перед огромной кучей вариантов. Это не обязательно проблема отрасли фронтенд-разработки – эта проблема человеческой природы.
Возьмем простой пример – допустим, нам хочется посмотреть фильм на Netflix.
Неделю назад я захотел посмотреть там кино. Я выкрал у себя пару часов, которых, как я считал, будет достаточно для выбора и просмотра чего-нибудь.
Но я и не подумал о том, что с тех пор, как я последний раз выполнял это действие, прошло уже какое-то время. Каталог Netflix пополнился сотнями новых фильмов, и я стал выбирать. И выбирать. И опять выбирать. Надо посмотреть Сумерки! Или Сумерки-2. Или 3. Бесконечная сказка про девочку, которая должна выбирать между накачанным прессом и устойчивой зависимостью. Аватар! Фильм про то, как Blue Man Group поехали в Парк Юрского периода.
Слишком широкий выбор, я почувствовал себя взволнованным. Короче говоря, появился паралич выбора. Битый час я пытался выбрать фильм, который бы меня устроил, и я успел посмотреть его меньше, чем наполовину, когда время вышло. Моя подписка теперь выглядит для меня как тяжелые отношения, которые обычно боишься прекратить.
Психолог Барри Шварц описал этот феномен в своей книге 2004 года The Paradox of Choice, в ней он доказал, что исключение слишком большого количества вариантов может снизить покупательскую усталость.
Он подвел итог очень интересному эксперименту Шины Иенгар и Марка Леппера:
«Когда исследователи установили [в гастрономе] стенд, показывающий ряд банок экзотического, качественного варенья, покупатели могли попробовать образцы, и, если они покупали баночку, то получали купон на скидку в 1 доллар. Один раз для дегустации было доступно 6 разновидностей варенья. В другой – 24. Оба раза все 24 вида были доступны для покупки. Широкий выбор привлек к столу больше покупателей, чем небольшой, тем не менее, в среднем люди всегда дегустировали примерно одинаковое количество видов варенья. Однако когда дело подошло к покупке, стало очевидно различие. 30 процентов людей, дегустировавших варенье из небольшого набора, купили его; и всего 3 процента людей, которые делали выбор из множества вариантов, поступили так же»
Дело в том, что при изобилии выбора возрастает ваша неуверенность в том, какой же именно вариант подходит вам больше всего. Вместо того чтобы радоваться принятому решению, вы чувствуете себя уставшими. А то ли я выбрал? Может, лучше было выбрать что-то другое? А что выбрали мои друзья? Может, лучше было их спросить? Я не хочу показаться глупым. Вы попадаете в яму, раздумывая, а не упустили ли вы возможность приобрести что-то получше. Сколько раз вы пересматривали тот стек технологий, который используете?
Когда у вас такой большой выбор, вы так же можете завышать свои ожидания. Может, вы даже думаете, что если чуть-чуть подождете, то найдете «самый подходящий» вариант. Ясно, что при таком раскладе правильный выбор должен быть умопомрачителен. Однако часто, когда выявляется, что «правильный» выбор собой представляет, вы чувствуете себя неудовлетворенным. Столь высокие ожидания сложно удовлетворить, и вы остаетесь в этом состоянии неудовлетворенности.
У javascript есть так называемый «Синдром еще одного фреймворка» (сколько у вас решений для MVC, отрисовки шаблонов или data-binding’а?), у Perl – синдром «Есть больше одного способа это сделать», а у Python – «Должен быть очевидный способ это сделать», дзен разработки на Python.
Нам всем нужно начать быть реалистами в наших ожиданиях. Соревнования могут запросто сосуществовать, но, возможно, какой-нибудь разработчик с проходящим интересом к инструменту или фреймворку получит больше от меньшего выбора, чем тот, у кого стойкий интерес и богатый опыт в использовании только ограниченного набора, получит от широкого выбора.
Если вы — опытный разработчик, беседуете с кем-то, кто застрял при выборе решения, помогите ему упростить задачу. Это отличный опыт, он может помочь сузить выбор до такого состояния, которое не будет выглядеть пугающим. Даже удаление нескольких пунктов из списка вариантов может дать человеку возможность прояснить для себя ситуацию и выбрать что-то, что он может хотя бы оценить перед тем, как сделать решающий выбор.
Автор: john_samilin