суббота, 9 ноября 2013 г.

Обновление ПО - это хорошо ... или нет?

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

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

А кто вообще решает, что должно войти в новую версию. Или нет, нет так. Кто решает, что вот эта идея должна привести к появлению новой версии?

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

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

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

On-Screen клавиатура и недоступная клавиша Dock

Я уже писал про обновление до Windows 8.1 на своем новом планшете. Куча изменений, улучшений. Но без вопросов не обошлось. До этого обновления я активно использовал On-Screen клавиатуру. После - практически перестал. А, собственно, почему? А потому, что изменилась функциональность. Раньше я мог прикрепить клавиатуру к верхнему или нижнему краю экрана. Сейчас я тоже могу это сделать, но с маленьким ограничением - при альбомной ориентации планшета кнопка прикрепления клавиатуры к краю экрана становится недоступной. И ведь под этой реализацией наверняка лежит какое-то требование, иначе, зачем менять. Но вот какое? Ведь раньше все работало без проблем. Кому показалось, что в портретном режиме клавиатура может быть прикреплена к краю экрана, а в альбомном - нет? Я, например, теряюсь в догадках. Ну и каков же результат этого нововведения? А результат заключается в том, что я эту клавиатуру больше не использую. Наверняка разработчики старались сделать клавиатуру лучше, удобнее, качественнее. Эффект - прямо противоположный, по крайней мере, в моем случае. Хотя, может я и ошибаюсь, и таким образом Microsoft избавляется от одной из двух своих экранных клавиатур?

Другой пример. Тоже клавиатура, только другая операционка и другой разработчик. Речь о Google Keyboard, работающей под Android. Было время, я ее не использовал, потому что она была крайне неудобной. Потом разработчики, проектировщики, дизайнеры хорошо над ней потрудились и я сделал ее своей основной клавиатурой на семидюймовом планшете. Но вот недавно прилетело обновление. 

На самом деле, я, в последнее время, всегда читаю, что в себе содержит (или таит) обновление той или иной программы. Я стал осторожней, потому что уже обжигался. Итак, читаю, какие изменения произведены в новой версии клавиатуры. Читаю и начинаю беспокоиться. А беспокоит меня пассаж о том, что теперь клавиатура автоматически рассчитывает, какие клавиши пунктуации показывать в своей основной экранной раскладке, и зависит вся эта автоматика от размера экрана планшета. 

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

Android. Клавиатура Samsung.

Лишь у одной клавиатуры, которую я знаю, цифры вынесены на основную раскладку, что значительно облегчает их ввод. Это клавиатура Samsung для Android. У клавиатуры Google цифры тоже присутствуют на основной раскладке, но они доступны по долгому нажатию, что не так удобно, но удобнее, чем постоянное переключение раскладок. Что делало клавиатуру Google очень удобной для меня, так это большое количество знаков пунктуации на основной раскладке. Они умудрились дать доступ, кроме точки и запятой, еще к вопросительному и восклицательному знакам, тире и кавычке, покрыв таким образом, практически все мои потребности. 

Кроме того, у клавиатуры Google есть маленькое, но очень полезное свойство: если вы набирали что-то, пользуясь не основной раскладкой, например, число, и нажали клавишу пробела, то вы автоматически оказываетесь в основной раскладке. Эта особенность избавляет от необходимости после ввода знака препинания, например, дополнительно нажимать клавишу управления для возврата к основной раскладке, ведь, обычно, после пробела должны идти буквы. Исключение из этого удобства - многоразрядные цифры, например, миллионы или тысячи, написанные с пробелом для простоты восприятия. Проще же прочитать число 56 789 452, нежели 56789452. Но использование пробела для группировки - это наша, местная особенность, у буржуев для группировки используется запятая (десятичным разделителем у них выступает точка). На нас, как всегда, не рассчитывали.

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

Android. Клавиатура Google. Новая версия.

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

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

И, напоследок, расскажу об одном, довольно курьезном, случае из моей личной практики. Долгое время у одного заказчика в эксплуатации находилась программа, в которой, при определенных условиях, во время выполнения какой-то бизнес функции, показывалось окно с предупреждением, хотя оно не должно было показываться вообще. Ну такая вот мелкая ошибка. Пользователи ворчали - им нужно было лишний раз что-то делать (нажать клавишу, или щелкнуть мышкой), чтобы убрать окно. Однако, отделом эксплуатации заказчика эта бага была признана несущественной, и все согласились с тем, что исправлять ее срочно не нужно, можно приурочить к выпуску новой версии. Но... Прежде, чем накопились изменения, приведшие к выпуску новой версии, прошло довольно много времени и, когда новая версия все-таки увидела свет, произошло следующее. Эту ошибочку, конечно же, исправили... Каково же было наше удивление, когда заказчик попросил вернуть окошко назад. Оказывается, пользователи вывели какую-то свою закономерность в появлении этого окошка и использовали его, как, своего рода, проверку: окно появилось, значит, все нормально; нет окна, значит, что-то не так. Мы попробовали сменить текст, показываемый в этом окне, отразить, так сказать, действительное положение дел. Но заказчик воспротивился и этому, что меня просто убило наповал. Пользователи не вчитывались в само сообщение, они воспринимали его, как фотографию, если бы надпись изменилась, им бы пришлось ее читать и вникать в ее смысл, а они этого не хотели. Ну не фантастика?

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

Комментариев нет:

Отправить комментарий