суббота, 27 июля 2013 г.

Еще про настройку пользовательского окружения.

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

Классификация пользователей:
При определении конфигурации по умолчанию разработчик может ориентироваться на:
  • пользователей, которых больше остальных (группа А);
  • пользователей, которые выгодней остальных (группа Б);
  • пользователей, которым по каким-либо причинам затруднительно изменить настройки по умолчанию (группа В);
  • пользователей, которым проще всего выбрать другую систему, если эта им не понравилась с первого взгляда (группа Г).
и дальнейшее обсуждение каждой из групп, в принципе-то своем, строится из тех же кирпичей, из которых не так давно строились "священные войны" Linux vs. Windows vs. OS X, а теперь Android vs. iOS.  Если кратко, то дело все в противостоянии "пользователь" vs. "настройка": будет настраивать/не будет, желает настраивать/не желает, будет это делать сам или даст кому-то денег и так далее и тому подобное.  В спорах на таком фундаменте можно уехать достаточно далеко, вопрос подготовки участников спора. Реальность решительно проще:

Пользователи не настраивают рабочее окружение. Совсем. Никогда.


Это на самом деле важный момент, поэтому на нем нужно остановится.

"Если пользователь не настраивает рабочее окружение, то", - спросите вы, - "что же я делаю, когда меняю скучные обои, переношу иконки на панель быстрого запуска, или вписываю переменные в .bashrc? Может я не пользователь? Может быть меня не существует?"

Таки пользователь, и таки существуете. Но это не полноценная полновесная настройка - это, чаще всего подстройка уже готового, под свои собственные нужды.  Во-первых, стоит вспомнить, например, о том, что нам всем сложно переезжать из одного рабочего окружения в другое. Даже, если это одна и та же операционная система, только с нуля установленная. Причем сложно это и для суперпродвинутых пользователей, у которых каждая кнопочка на десктопе была собственноручно написана, и для тех у кого "интернет" - это "Internet Explorer",  и он, собака, в новой ОСи немного поменял значок и внешний вид.  Совсем не зря линуксоиды славят текстовые конфиги, а маководы TimeMachine: и то и другое позволяет быстро и достаточно точно восстановить "все как было", и сохранить кучу нервов(хотя какой-то дискомфорт первое время может все-равно проскакивать :) ).

Создается ли окружение, которое нам потом будет жаль терять, одномоментно? - Нет. Мы не устанавливаем <любимую операционную систему>, не вбиваем все настройки за два часа, для того чтобы потом забыть о них на год-два-три-пять. Это, на самом деле, не хронология создания, то есть настройки, а хронология восстановления.  Создается же это дело день за днем, годами. Например, что-то долго мешает нам жить, или наоборот, ощущается острая нехватка чего-то, что жить очень поможет: в какой-то момент: случайно или специально, проблема решается, и потом решение или остается работать на долго, или, ввиду, например, неудобства, забывается и остается висеть мертвым грузом. До следующего мини- или микро- вмешательства. То есть глобальная "настройка" - на самом деле - растянутый во времени процесс, который суть череда мелких подстроек, тесно сопряженная с изучением, исследованиями и открытиями.

Поэтому, например, курсы компьютерной грамоты, даже, при достаточной степени прилежности учеников, дают не очень большой эффект. Когда тебе на голову вываливают огромное количество всего на свете, "к рукам прилипает" совсем мизер.  Хорошо если расскажут как получить недостающие знания. Если не расскажут, а просто вслух и с  интонацией зачитают 10 способов создания файлов из "Секретов Windows",  то деньги и время просто вылетят в трубу. По той же причине, например, пишущие на perl'е боготворят Camel Book: в книге явно акцентируется внимание сначала на небольшом subset'е языка, знания которого необходимо и достаточно для того чтобы писать что-то полезное, и понимать очень многое написанное другими, а потом еще много-много страниц раскрываются вопросы черной  и белой магии. В итоге процесс "познания" происходит в типичном unix'овом ключе: "когда приходит время".

Если все это так, то для пользователя, в применении к новой рабочей среде, важны две точки: "я могу в этом хоть как-то работать" и "работать в этом мне удобно" плюс расстояние между ними. Если, в условиях конкуренции, первая точка в системе "А" недостижима, или достижима с большими трудностями  и ограничениями, а в системе "Б" достижима легко, или по крайней мере значительно легче чем в системе "А", то система "А" полетит в мусорку. Классический пример здесь - привязка к конкретному софту или поддержка конкретного железа.  Если в обоих системах мы добираемся до точки "я могу в этом хоть как-то работать",  то есть базовые требования выполнены, то при сравнении учитываются стартовое положение обеих точек, и расстояние от них до зоны комфорта.

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

С точки зрения пользователя важны:
1. стартовые позиции, зона в которой можно начинать делать что-то полезное.
2. расстояние от старта, до того момента, когда все устраивает.
3. возможность это расстояние пройти в принципе.

Итак: пользователи не настраивают систему: пользователи подстраивают систему время от времени, до достижения уровня комфорта, и предпочтут систему в которой изначально чувствуют себя лучше. Что делать производителям софта в связи с этим? - Ответ на поверхности: если пользователи не настраивают систему, нужно делать систему которую не нужно настраивать. Можно, но не нужно. Android стал весомым конкурентом iOS не тогда когда в нем появилось больше кнопочек, - в нем изначально этих кнопочек было больше. Android стал весомым конкурентом iOS, когда эти кнопочки выставили в правильное положение. Ubuntu пошла вверх, в тот же самый момент: когда "это в принципе возможно" сменилось на "это возможно из коробки".

И нет никакой разницы между А-Б-В в приведенной выше классификации: "домашним" пользователям интересней фейсбук и сериалы, корпоративным - их собственная работа и пасьянс, а те кто не может настроить по другим причинам - и так настраивать не собирались. Они все ломанутся в группу Г, где можно выбрать изначально более разумную систему, да и всё. Все просто: непривлекательная система с дурацкими умолчаниями и большим потенциалом так и останется у всех в памяти "нераскрывшимся цветком".  Если дать пользователю полуфабрикат, пользователь удивится и пройдет мимо.

"Но полуфабрикаты существуют, значить это кому-то нужно!" - да, полуфабрикаты существуют, они нужны: разработчикам, админам, желающим учится и просто для fun'а.  Те же Arch, Gentoo и всякие BSD не лезут в категорию систем для пользователей, а занимают свою вполне понятную нишу. Проблемы начинаются, когда оказывается что системой должен пользоваться кто-то окромя тех кто в теме и им "по приколу".

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