company_banner

Пишем софт, который будут ненавидеть

Original author: Pedro Silva Moreira
  • Translation
Куда ни посмотришь — всюду статьи о лояльности клиентов, об удовлетворённости пользователей, об интуитивной понятности интерфейсов и о прочем подобном. Хватит уже об этом. Поговорим лучше о создании плохого софта, такого, поработав с которым, пользователь возненавидит и сам этот софт, и его разработчиков, и свои мышь с клавиатурой заодно.



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

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

Совет №1. Чем медленнее — тем лучше


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

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


Совет №2. Игнорируйте предложения и пожелания пользователей


Пользователи предлагают добавить в программу новую возможность? Что бы это ни было, пусть, для выполнения просьбы нужна пара строк кода, отвечайте так: «Это невозможно». Даже не думайте о том, чтобы обсуждать подобные предложения с коллегами. Отшейте пользователя — и проблемы как ни бывало.

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

Совет №3. Не заботьтесь о времени безотказной работы приложения


Всякие «соглашения об уровне предоставления услуг» — глупости. Совершенно нормально, если система будет наглухо виснуть каждые несколько минут. А ещё лучше, если речь идёт о программе, которая, скажем, используется для обслуживания клиентов. Например — на кассе.

Когда сбой случается на рабочем месте, так или иначе огороженном от чужого внимания — это одно. Совсем другое — если ваш пользователь сможет объявить о том, что программа зависла, очереди из десяти человек. Это даст ему прекрасную возможность прилюдно выразить всё, что он думает об этой «программе».


Совет №4. Стремитесь к самому новому


Если вы делаете проект для крупной компании и вынуждены постоянно проводить совещания с её представителями, тратьте всё время совещаний, говоря о том, как замечателен этот новейший фреймворк XYZ, который вы используете. Очень важно, чтобы у вашего клиента не было возможности и рта раскрыть, в результате он не сможет сказать какую-нибудь ерунду о том, что его компании нужен какой-то там новый отчёт. Через полгода начинайте ругать тот же самый фреймворк по какой-нибудь случайной причине, говорите о том, что это было ошибкой — выбрать его на волне нездоровой популярности. Опять же, это очень важно — не давайте клиенту говорить, так как он непременно начнёт спрашивать об отчёте, разговора о котором вы очень долго и старательно избегали.

Если вы следите за событиями в среде JavaScript, значит — вы понимаете — о чём я говорю.

Совет №5. Обновляйте веб-страницы целиком


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

Совет №6. Ваш софт — это просто, любой сможет его понять


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


Совет №7. Проверка форм — не ваше дело


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

Совет №8. Ваше мнение — это единственное, что имеет значение


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


Совет №9. Чем больше загадочности — тем лучше


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

Совет №10. Никаких напоминаний, автообновлений и уведомлений


Электронные письма с напоминаниями, текстовые сообщения, push-уведомления, автоматическая загрузка новых данных из Сети — это для лентяев. Ваш пользователь должен сам всё проверять. Ждёт новое сообщение? Никакой автоматики — сам зашёл на нужную страницу, обновил её, ну а дальше — как повезёт. Как часто ему это придётся делать — нас не касается.



Совет №11. Побольше таинственных слов


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

Совет №12. Интуитивная понятность — это не к нам


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

Совет №13. Экран загрузки должен быть всегда и везде


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


Итоги


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

Уважаемые читатели! А какими «вредными советами» о разработке ПО можете поделиться вы?
RUVDS.com
RUVDS – хостинг VDS/VPS серверов

Comments 61

    +13
    — при переходе происходят всякого рода мигания и езда верстки при прогрузке
    — все переходы на новую страницу только ПОСТ, что бы нельзя было так просто взять и скинуть другому юзеру урл на нужный контент + при нажатии Ф5, писало раздражающее сообщение браузера. Для более извращенства, пришить CSRF и таким образом отрубить возможность использовать F5.
    — на всю катушку воспроизводить музыку / видео, как только зашёл на сайт. Ах да, видео должно быть 4к и музыка в WAV формате.
    — дополнение к Ф5, если запрос не прошёл, то оставлять загрузочный экран, что бы юзеру всё пришлось начинать сначала.

    //offtopic: надеюсь после написанного выше, в дурку никто не подаст заявы на меня.
      +1
      Музыка\видео из флэш-контейнера, надеюсь? HTML5 ведь для слабых духом.
        0
        музыку можно все 3 варианта. флеш, хтмл5, и просто хтмл. Мы за кроссбраузерность!
          0
          Тогда надо ещё Silverlight поддерживать.
            0
            Нужно уважать тренды, и предусмотреть воспроизведение через Unity Web Player.
              +3
              А если все варианты не сработали — просто выплёвывать музыку с хедерами скачивания. Пусть юзер скачает и сам включит.
        +1
        — дополнение к Ф5, если запрос не прошёл, то оставлять загрузочный экран, что бы юзеру всё пришлось начинать сначала.

        Если запрос не прошел, то надо выводить страницу с собщением об ошибке! Главное — чтобы не ней не было никаких элементов управления — тогда пользователю придется начинать не просто сначала, а с открытия сайта через гугл

      • UFO just landed and posted this here
          +9
          Для десктопа в первую очередь (не знаю пойдет ли для веба)
          N+1) Никакого разделения на дебаг и релиз. Только релиз со всеми дебагами. Куча тестовых кнопок, выводящих загадочные буквосочетания — это типа пасхалки.
          N+2) Не допускать возможности прерывания затянувшегося процесса или ожидания. Пользователь должен быть терпелив.
          N+3) не сохранять установленные пользователем настройки сеанса: флажки, радиокнопки, ползунки в окне, положение окон на экране и все такое. Если забыл, как было в прошлый раз — или оно не очень-то надо, или записывай.
          N+4) программа должна требовать прав администратора, даже если можно обойтись без этого. Софт не для слабаков.
          N+5) Очень красивый прием: при нажатии на кнопку запускать долгий процесс, о его начале не сообщать, позволить нажать кнопку еще много-много раз, потом выдать много-много сообщений об ошибках, потому что запущенные процессы используют общую память как хотят. Пользователь должен наконец научиться понимать, что если ты нажал на кнопку — комп понял, и не требует повторений. А что молчит — значит, все в порядке.
          N+6) сделать загадочную зависимость разного рода флажков и переключателей друг от друга. Одни должны вызывать автоматическое срабатывание или блокирование других. Особенно здорово, если проявляется при определенных сочетаниях: два установленных флажка переключают группу радиокнопок, а каждый в отдельности флажок — нет. Такие детективные распутывания доставят массу приятных минут и позволят почувствовать себя детективом.
            +5
            можно добавить:
            — никогда не проверять установлено ли партнерское ПО, версионность и компоненты! Окружение же у всех одинаковое! и вообще если у вас нет outlook последней версии это ваша беда! у нас все работает!
            — побольше хуков! если отвалиться потом пол — винды — это уже проблема мелкософта! главное что ваше ПО работает!
            — не надо писать uninstall! Кто ж откажется от вашего замечательно ПО? лучше сразу разбросать свои файлы по всему диску. так удобнее их потом убирать.
            — обновления важны! лучше еще записать сразу 6 служб, которые будут в вечном цикле ждать обновлений. как пользователь выживет милисекунду без новой версии? а ресурсов у них и так много — подумаешь, всего то одно ядро проца под 100…
              +5
              • разверните окно установщика на весь экран без рамки, пусть юзер любуется веселым фоном установщика
              • диалог мастера установки должен быть поверх всех окон и не сворачиваться, чтобы не было соблазна что-то еще делать вовремя установки
              • в выборе компенентов воздержитесь от пояснений о сути непонятно именованных частей программы (Lib GDX v11.6, JkILL 0.4.1, Zlkh Inc Enterprise 2019), пусть юзер гуглит (учитывая предущие пункты — браузер придется запускать с другого компьютера)
              • частично заблокируйте выбор папки для установки, пусть у юзера будет только переключатель между C:\Program Files\Steam\steamapps и D:\Program Files\Steam\steamapps
              • разбросайте скрытых в расширенных настройках, в дополнительных экранах полупрозрачных галочек об установке Майл-клиента, Гугл Хрома, ЯндексБара. Денег мало не бывает.
              • запускайте скрипты в bat, cmd, js, запускайте виндовые диалоги копирования и используйте прочие трюки. Такие окоши выгляядят очень по хакерески.
              • скройте выполнение части батников, желательно тех которые могут потребовать ввода от пользователя для работы
              • приостанавливайте установку для загрузки чего-нибудь из интеренета
              • посреди установки выдайте аллерт с дальнейшими действиями после завершения установки зайдите в меню пуск → reclock → настройки и активирейте галочку ..., процесс установки должен приостановиться до закрытия окошка.
              • после окончания откройте в браузере страничку с рекламмой ж-)
              +1
                +8
                Самое важное забыли для десктопа!
                — Всю тяжелую работу обязательно делать в UI потоке.
                  +3
                  А что, разве бывают какие-то еще потоки? Вообще всю работу делать только там!
                  0
                  еще лучше вываливать debug версию программы сразу в продакшен, пусть сам установит среду и соберет все в release.
                  +3
                  тоже поделюсь:
                  — твой девайс/браузер/ось — единственный разумный выбор в мире. именно ими и нужно пользоваться в интернете.не зачем проверять верстку и юзабилити где-то еще.
                  — никогда не использовать «хот кей» или вариантов макроса для команд, вызовов из пунктов меню. пусть все действия имеют только один способ вызова — это проблема пользователя, если он зашел с пк или с моб.девайса, где нет «онролл».пусть неудачник с айфоном понервничает, что у него нет мышки!
                  — не нужно разбивать форму ввода на подформы! поставь время жизни сессии на 1 минуту и запили 10 экранов формы! подождав, пока пользователь забьет все 10 экранов полей, можно замечательно вернуть его на страницу «логин» и потом на главную.
                  — не нужно делать «защиту от дурака» — твой софт только для гениев! так что если пользователь нажмет «удалить все записи» — удаляем. гений знал, что хотел, для чего его переспрашивать?
                  — безопасность — для трусов. твой сайт и так «мега неуязвим»! не нужны никакие проверки по емейлу и CSRF! Повставляем в url сразу и пароль от учетки пользователя. ну чтобы нам было проще, когда пользователь скинет линк в скайп.
                  — не нужно автоматизировать загрузку. парсер — долго и скучно! пусть вбивают все вручную через форму. им все равно на работе больше заняться нечем.
                  — никогда не делай проверок по словарю при вводе адреса! это прикольно, читать потом 7 вариантов написания одного и того же города или улицы.
                  — продакт сервер всегда должен быть на автообновлении.что плохого может случиться?
                  — не нужно быть пессимистом! мы живем в прекрасном мире где все всегда хорошо! зачем проверять валидность данных и ставить обработчики ошибок?
                    +1
                    — не нужно делать «защиту от дурака» — твой софт только для гениев! так что если пользователь нажмет «удалить все записи» — удаляем. гений знал, что хотел, для чего его переспрашивать?
                    Во времена Siemens *65 был софт для перепрошивки телефонов, модификации EEPROM, от каких-то чуваков.

                    В разделе модификации EEPROM был пустой табличный виджет, и две кнопки: Save и Save All. Если добавить в виджет некоторые значения EEPROM, выделить их в виджете и нажать Save, программа считывала текущий EEPROM с телефона, изменяла значения внесенными в таблицу, и загружала обратно. Таким образом, на телефоне оказывался полный EEPROM с измененными значениями, все как надо.

                    Если внести значения в таблицу с нажать Save All, то программа меняла поведение: весь EEPROM начинал строиться из внесенных в таблицу значений, просто перезатирался, а не модифицировался.

                    Вместо того, чтобы назвать кнопку более понятно, добавить предупреждающее окно или что-то в этом духе, автор писал документацию на форумах, мол, обратите внимание, это важно, не жмите Save All, а выделяйте значения и жмите Save!
                  +1
                  (Оффтоп) Из какого фильма гифка с Марком Уолбергом?
                    +3
                    Отвечу сам себе, название фильма «Копы в глубоком запасе», спасибо гугл поиску по картинкам и темболее поддержке гифок.
                    +5
                    Максимально сокращайте текст на экране. Меньше текста — больше пространства — больше визуальных компонентов можно показать одновременно, а пользователь и сам должен знать что значит «Пер.на н1». В идеале вообще никакого текста, только пиктограммы.

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

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

                    (Для десктопа) Сделайте форму приложения фиксированного размера и только на экраны не ниже FullHD. Как бонус — кнопка закрытия программы должна располагаться ниже видимой области.
                      +5

                      Эти советы столь же замечательны и в обратную сторону:


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


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


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


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

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

                      Проявите чувство юмора. Когда ваша программа закрывается с ошибкой не говорите пользователю что случилось, а просто сообщите с улыбкой, что «Что-то пошло не так». Пусть улыбнётся вместе с вами.

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

                      Мотивируйте пользователя повышать навыки работы с ПК. Пусть ваши процессы можно закрыть только из диспетчера задач.

                      Пишите логи. Много логов. Больше логов для бога логов. Описывайте всё, действия пользователей, полученные и пересылаемые пакеты данных, координаты курсора. Это всё очень важная информация. Не контролируйте размер файла ведь FAT32 в 21 веке — моветон.

                      PS. Хочется улыбнуться — не получается. Это всё из реальной жизни
                        +1
                        Если по какой-то причине любой из вышеприведенных советов не реализован изначально, обязательно добавьте хотфикс, который добавит, например, стартовый экран с непредсказуемо замирающим и прыгающим индикатором загрузки. Ничто так не радует пользователя, как добавление тормозов в уже освоенный инструмент. )

                        P.S. Сначала написал, потом понял, что aquamax уже написал практически то же самое. )
                          +6
                          Дурацкие, непонятные пиктограммы с примитвными формами внутри в софте, рассчитанном на десктоп. Кружочек со стрелочкой, ромбик, треугольничек — наше все, ведь никому будет непонятна кнопка с надписью «домой» или изображением домика. Лучше квадратик.

                          Универсальный интерфейс для тач и не-тач устройств. 4 квадрата на весь экран в 23 дюйма должно хватить каждому.

                          Тащите за собой все библиотеки, которые только можно: нужные и ненужные. Калькулятор с одной Activity загружается и отжирает 250МБ оперативной памяти? Ничего страшного! В любом нормальном смартфоне памяти хотя бы гигабайт, а ваш калькулятор, все равно, занимает весь экран. Нет гигабайта? Такой смартфон, не проблема программиста. Про десктоп и говорить не приходится: если памяти меньше 8ГБ, это не компьютер, и это не проблема программиста.

                          Автообновление любого софта должно быть и не должно отключаться. Срочно нужно написать что-то в любимый im? Не беда, сейчас обновится — напишем, беседа подождет!

                          Все должно жрать процессор. У всех по 4 ядра, интернет-магазину надо их чем-то загружать. Пусть батарея в ноутбуке потренируется!

                          Никакой обратной совместимости, только хардкор! Расписание для электричек? Android 6.0 как минимум. Стыдно должно быть запускать современный софт на Samsung Galaxy S3 в 2017м!
                            +5
                            Ладно еще квадратики и треугольнички, вот 2ГИС посреди экрана поставили кнопку с ГУСЕМ, долго не решался на нее нажать.
                            Последний Photoshop также ставит с собой
                            вот это
                            Microsoft VC 2005 Redist (x64)
                            Microsoft VC 2005 Redist (x86)
                            Microsoft VC 2008 Redist (x64)
                            Microsoft VC 2008 Redist (x86)
                            Microsoft VC 2010 Redist (x64)
                            Microsoft VC 2010 Redist (x86)
                            Microsoft VC 2012 Redist (x64)
                            Microsoft VC 2012 Redist (x86)
                            Microsoft VC 2013 Redist (x64)
                            Microsoft VC 2013 Redist (x86)
                            Microsoft VC 2015 Redist (x64)
                            Microsoft VC 2015 Redist (x86)

                            На прошлой неделе хотел поставить современный бесплатный firewall для десктопа. Я проспал апокалипсис?
                              0
                              кнопку с ГУСЕМ
                              Долго не мог понять, о чём речь. Дайте угадаю: вы из Гусь-Хрустального? =)
                                0
                                Нет, из Чебоксар. Только сейчас увидел на гербе города летящих уток. Зачем их в интерфейс-то переносить?
                                (До этого не мог писать, похоже атака на РКН и до меня докатилась. Уже сутки могу читать только гугловские сайты, остальные только через Тор.)
                                  0

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


                                  screenshot

                                    0
                                    )) а герб Краснодара они не осилили. Просто двуглавого орла влепили.
                                0
                                Есть, конечно, и правда интутивно понятные вещи: лупа, вопросик, бутерброд в андроиде, но, например, почему в скайп диалоги со значком часиков? На записной книжке они нарисовали человечка с записной книжкой, на телефоне — трубку телефона, но почему часики? Иногда надо разгадывать такие шарады со значением этих значков, что даже не знаешь, чего они там курили? Может быть это идет паровозом к пункту «поменяем полностью интерфейс в новой версии»?

                                — Билли, надо поменять интерфейс на новый, еще более интуитивно-понятный и красивый.
                                — Гарри, но этот и так понятный. Он победил бы на конкурсе даже «Мисс Вселенная» Мисс Вселенную и Линдси Лохан, даже если бы их оценки сложили!
                                — Нам нужен новый, у нас major версия релизится.
                                — Но я не могу придумать новые иконки!
                                — Придумай что-нибудь, Гарри. Ты же профессионал.
                                  0
                                  Часики в мобильной версии символизируют то, что в десктопной называлось «Последние», т.е. чаты отсортированные по времени… так что логическую связь можно проследить… ну и они судя по всему скоро пропадут, во всяком случае в версии скайпа для десятки значок уже другой)
                              +6
                              Работу с путями ведите так как будто вы всё ещё в 2000-ом году. Юзер обязательно оценит ситуацию когда в 2017 году софт откажется работать при наличии кирилицы в пути к файлам!

                              Некоторые настройки позвольте делать только один раз, при первом пуске программы! Больше этих опций нигде не должно быть.

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

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

                                +6
                                * Добавьте на ваш сайт надоедливое всплывающее окно с консультантом, который готов помочь пользователю. Пусть оно закрывает большую часть контента на странице. В идеале сделайте так, чтобы его нельзя было закрыть.
                                * Не надо сохранять данные в полях регистрации/редактирования профиля (особенно если полей over 100500), если вылезла ошибка после сохранения. Пусть пользователь почувствует весь тлен нашей скоротечной жизни и учится с первого раза не допускать промахи.

                                На большее меня не хватило, бомблюсь только с этого.
                                  +1
                                  > Добавьте на ваш сайт надоедливое всплывающее окно с консультантом
                                  Особенно, в мобильную версию.
                                    0
                                    О, да!
                                  +2
                                  Реклама! Нужно больше рекламы в любых приложениях и на каждой странице, экране, в меню еще не забыть впихнуть
                                    +2
                                    Ну про слушать пользователей спорный пункт, была статья тут суть в том что пишут «пожелания» только 1% а 99 нравится так как есть, если следовать за 1% то можно потерять массу пассивных юзеров.
                                      0
                                      Экран загрузки должен быть всегда и везде

                                      Вот это прям наболевшая тема. Часто захожу на сайты «веб студий», у которых одностраничник загружается на моём FX6300 дольше одной секунды с этим раздражающим экраном загрузки. Они что специально задержку делают или это такие новомодные хипстерские фреймворки? О какой компетентности таких разработчиков может идти речь?
                                      А ещё генерация всего и вся javascript'ом, как на linkedin'е, например. Но моём слабом ноуте(pentium 3825U + 2gb ram) невозможно открыть 5 вкладок, чтоб всё не начало дико лагать.
                                        0

                                        Забавный, кстати, факт: сплеш-скрины чаще всего тормозят приложение. Не в силу необходимости какой-то, а просто так. Вот например, товарищи разрабатывающие KDevelop выкинули не так давно и ощутимо быстрее грузиться стало приложение: http://kfunk.org/2016/08/23/whats-new-in-kdevelop-5-0/#splashscreenremoval

                                          0
                                          Странно… почему? Может это особенность splash-screen на основе QML? Потому что по сути это просто окно, которое обрабатывает события и ничем нагружающим CPU не занимается.
                                            0

                                            Ах да, возможно именно ощущения меня подвели — ускорили каким-то образом библиотеки и приложение, поэтому отпала необходимость отображать Splash screen. Но это один пример, где-то встречал ещё в сети описания схожих случаев.
                                            Возможно и QML участвует, он неплохо подтормаживает загрузку (судя по отностиельно новой версии 2gis для смартфонов).

                                          +1

                                          Это разработчики не придерживаются правила


                                          Обновляйте веб-страницы целиком
                                            0
                                            Так зачем целиком? Можно как все нормальные люди отдавать отрендеренный результат с сервера при загрузке, а когда нужно обновлять, изменять то, что уже есть на странице.
                                              –1
                                              И тогда сайт будет рендерить шаблон для каждого нового юзера, вместо того, чтоб просто отдать nginx'ом кэшированный JS. И будет на продакшне 200 rps вместо 5000.

                                              Зато как все нормальные люди!
                                                +1
                                                Для того, чтоб не рендерить каждый раз часто запрашиваемый контент есть кеширование. Вконтакте, хабр и многие другие нагруженные сайты отдают сразу html, а не кучу javascript'ов, которые по кускам собираются с сервера, и прекрасно себя чувствуют.
                                            +3
                                            Ну про веб не знаю, но меня лично клиент попросил вставить при загрузке андроид-приложения сплешскрин секунд на пять, чтобы типа «солидно» смотрелось.
                                            Аналогичные истории слышал много раз от разных людей и про разные софтины и девайсы.
                                            –2
                                            Напомнило вредные советы Остера
                                              0
                                              Не знаю как вы а я бы с удовольствием использовал софт который придерживается правила 10. Пользователь должен знать что обновляется и как, но когда должен решать исключительно САМ. Автоматическое обновление до Winodows 10 попортило не мало нервов многим людям. Но почему-то всё равно считают что это правильно…
                                                +1
                                                Это всё сложно и учиться надо. Просто пишите рекламный софт или софт по блокировке интернет-ресурсов.
                                                  +3
                                                  1. Ошибки должны быть краткими без описания. Идеальный вариант просто слово: «Ошибка».
                                                  2. Элементы интерфейса должны быть маленькими. Нужно же заботиться о пользователе, пусть развивает снайперские способности.
                                                  3. Окна должны быть большими. Даже если на нём всего две кнопки (которые сделаны в соответствие с выше представленной рекомендацией) окно должно быть расчитано для использования только с мониторами с разрешением 2560x1440, а лучше и того выше. Конечно же оно не должно менять размеры, а также надо располагать его на экране так, чтобы шапка была за пределом экрана.
                                                  4. При закрытии программа должна выдавать ошибку и не закрываться. А лучше вообще использовать зацикленный показ мессаджбоксов.
                                                  5. Любые звуковые сообщения должны быть противными и громкими. Кроме того, нужно сделать так, чтобы их нельзя было выключить. Люди любят скриммеры.
                                                  6. В полях ввода дат нельзя предусматривать ручной ввод, только через календарь. Ведь типичный пользователь вообще никогда не пользуется клавиатурой.
                                                  7. Любая программа, даже если это какой-нибудь блокнот, обязательно должна использовать максимальное количество ресурсов. Так можно показать её важность.
                                                  8. Цвет курсора мыши должен буквально на пару оттенков отличаться от цвета интерфейса. Поиграем с ним в увлекательные прятки.
                                                  9. Если есть скроллбар, обязательно убери возможность его прокрутки при помощи колёсика мыши. Зачем дублировать функционал?
                                                  10. Для того, чтобы пользователь мог войти на твой сайт, сделай прогу для смартфона для подтверждения этого действия. При этом конечно же не стоит реализовывать других вариантов.

                                                  Ещё пару хардварных рекомендаций от ряда производителей современных устройств:
                                                  1. Убирай аппаратную перезагрузку. Если устройство намертво повисло, все должны ждать, пока оно отвиснет. Или тащить в сервис перезагружать. Конечно же, при этом опасно реализовывать съёмный аккумулятор.
                                                  2. Интерфейсы должны быть уникальными, а для общеиспользуемых продавать переходники, которые будут стоить раза в два дороже устройства.
                                                  3. Если устройство имеет собственную флеш память или использует флешки, ни в коем случае не реализовывать Mass Storage.
                                                  4. Скотч, клей и защёлки — это самые надёжный методы монтажа.
                                                  5. Проектируя печатную плату, не забудь не развести термобарьеры.
                                                  6. Шлейфы обязательно паяй. Коннекторы для слабаков.
                                                    0
                                                    Электронный социальный регистр населения (ЭСРН), почти все пункты. Кто знает, тот поймет
                                                      –1
                                                      «Обязательно проверяйте правописание, пользователи обычно прогуливали уроки и совсем плохо знают родной язык, ваша программа всегда сумеет помочь донести правильный смысл, а не то что хотел пользователь.

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

                                                      Ни в коем случае не давайте отключить проверку правописания, учиться трудно и пользователь наверняка захочет полентяйничать, не допустите этого и потом он сам скажет вам… спасибо!»
                                                        0
                                                        хороший вариант для отвратительного софта это еще добавить максимум рекламы сменяющей одна другую, т.е. заходишь ждешь 10 секунд загрузки на пустом экране, затем начинается реклама, идет 30 сек. и не выключается, затем ее сменяет еще одна и контрольный вариант для тех кто все же имеет столько терпения чтобы дойти до самого отвратительного софта, почему бы не добавить третью рекламу на 30 сек. с максимально громким звуком чтобы соседи могли также оценить все качество звучания девайся
                                                          0
                                                          устанавливайте разрешение для окна установки таким чтобы кнопки далее и отмена оказывалить невидимыми — как бы под панелью задач. а попытка перетащить за корешок окно вверх делала бы видимыми верхние полоски этих кнопок — ведь согласитесь — это проблема пользователей что они не обновили себе мониторы.

                                                          при чтении статьи сайта обязательно после пары прокруток колесика вниз выводить большой банер — ведь пользователь уже наверняка хочет подписаться на рассылку/поделиться с друзьями — а следовательно и кнопка Закрыть ему ни к чему.

                                                          кнопку скачать удобно делать с применением тем — согласитесь однородный фон — довольно скущЪная вещь: ). а размещать ее удобно в центре большого цветастого банера — пусть ка пользователь ее поищет, заодно и получше ознакомитьсся с сайтом.

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

                                                          самые выжные компоненты тяжеловесного приложения лучше проверять в конце — чтобы пользователь понимал — «а счастье было так возможно...». после алерта нужно конечно отменить установку не давая возможность закинуть пару недостающих ДЛЛ-ек самому — юзер ведь не хакер, да и зачем мы в конце концов писали инсталлятор? так что следут после единственной кнопки «Я понял» в алерте начать длительный роллбэк. а уж после доустановки всех компонент — инсталлятор сработает как надо))

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

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

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

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

                                                          не нужно считать что масштабирование по Ctrl ± — удобная вещь. Ctrl+Колесико — тоже в топку. хотя бы потому что к хорошему быстро привыкаешь, а потом ваш пользователь будет пытаться это сделать в других приложениях и не сможет — расстройство превысит радость.

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

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

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

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

                                                          ПыСы: простите за, возможно, излишний сарказм, просто наболело
                                                            0
                                                            Самое главное забыли:

                                                            — Сделайте свою анимацию скролла. Вам виднее как должен скроллится сайт, который вы сами разрабатывали.
                                                              0
                                                              По больше gif-ок на одну страницу в статье, так намного удобнее читать! )
                                                                0
                                                                https://habrahabr.ru/company/edison/blog/315548/ (О том как сделать ввод номера телефона)
                                                                  +1
                                                                  с одной стороны — смешно. а с другой — к концу чуть подташнивать начинает.

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

                                                                  если пользователь навел курсор мыши на «закрыть вкладку» (т.е. страничку с вашим сайтом) — немедленно выводите предварительно загруженный банер с голодающим африканским ребенком и подписью «Нэ-над-дда!». Если ваш сайт смотрит не какая то бессердечная сволочь — должно помочь. если он все равно нажмет на закрытие — киньте всплывающие окно «как, уже уходите?» — пусть видит что вы искренне удивлены его недалекостью — ведь только человек недалекого ума может покинуть Ваш сайт не изучив его как следует.

                                                                  и наконец — чтобы таки было что изучать — не будьте банальны, — никогда не добавляйте пунктов меню «Цены» и «Контакты» — пусть они будут в непредсказуемых, трудно отыскиваемых местах. пункт «Цены» лучше вообще не размещать — ведь любой посетитель сайта наверняка хочет поболтать с вами а не тыкоть мышкой в бездушную машину. На худой конец — сделайте форму заказа без цены и подпись — что наш менеджер обязательно свяжется с вами чтобы уточнить детали.
                                                                  0
                                                                  -Если ты провайдер, то все твои предложения и акции должны появляться именно на текущей вкладке браузера, убивая возможность вернуться к ней. Всё равно пользователь обычно ерундой занимается, лучше пусть всегда помнит о своевременной оплате.
                                                                  -При изменении размера изображения растягиванием необязательно сохранять пропорции, ведь никому не нравятся пустые области, пусть натягивают на них. Если уж решил сделать такую опцию, то галочку лучше не ставить по умолчанию — пусть юзер каждый раз ставит её и ценит, что ты её вообще сделал.
                                                                  -Если глупый юзер допустил опечатку в слове, то не стоит указывать в каком именно месте. Пусть ищет. Ты же самый популярный браузер, тебе всё можно.
                                                                  -Добавь побольше пробелов в словари — пусть юзер гадает что не так с правильно написанным словом, и пусть увидит как не надо делить это слово пробелом. Ты же самый популярный браузер, тебе всё можно.
                                                                  -Юзер хочет выделить текст на странице со сложной разметкой? Ты должен сделать всё возможное и невозможное, чтобы отбить его желание. Интернету нужны оригинальные материалы а не копипаста.

                                                                  Only users with full accounts can post comments. Log in, please.