Это сводится к психологии вашей целевой аудитории и к архитектуре вашего приложения. Если графический интерфейс реагирует быстро и выложен таким образом, что он интуитивно понятен для пользователя (в отличие от разработчика), то нижележащие уровни могут не нуждаться в такой хорошей работе. Однако, если пользователь хочет получить данные из базы данных, и они остаются в подвешенном состоянии во время загрузки данных, они будут чувствовать себя совсем по-другому. Сравните 2 веб-приложения в качестве примера:
Приложение 1 гораздо реже получит жалобы, потому что пользователь не задерживается, даже если поля загружаются не так быстро. Пользователь может вводить данные и двигаться дальше. Все обрабатывается асинхронно. Конечно, в фоновом режиме процесс веб-службы может на самом деле быть медленнее, чем полное обновление страницы, но пользователь не будет особо волноваться.
Из многих тысяч часов написания программного обеспечения и непосредственного взаимодействия с моими пользователями - часто теми, кто не обязательно обладает компьютерной грамотностью, как ваш средний 10-летний, я отметил эти моменты, которые являются ключевыми для получения одобрения именно от такой аудитории. [написано с точки зрения пользователя]:
Он должен делать то, что я хочу, как я хочу: Не просто читайте спецификацию и ожидайте, что ваш код будет точно соответствовать тому, что написано на бумаге. Действительно прочитайте, что написано на бумаге, и поймите, что пользователь имел в виду . Дизайн к основному значению слов, а не черных и белых чернил на бумаге. Если вы не понимаете, что именно я имел в виду, приходите и поговорите со мной, и я объясню вам, пока вы не поймете Я буду менее счастлив, если вы поставите программное обеспечение, которое не соответствует моей цели, чем я по вашим вопросам. Я буду чувствовать себя намного счастливее, если почувствую, что вы на моей стороне, действительно пытаясь меня понять.
Это должно помочь моему рабочему процессу, а не препятствовать ему: Здорово, если все, что мне нужно сделать, это нажать одну кнопку, чтобы завершить то, что мне потребовалось бы на час раньше, но если он замораживает мой компьютер на 20 минут, необходимых для выполнения задания, я не собираюсь быть счастливым туристом.
Это должно быть интуитивно понятно: Это означает, что я не хочу разбираться с документацией, которую вы не предоставили мне, чтобы понять как это использовать. Не хочу и 20-минутного объяснения, которое я забуду через 3 минуты после того, как вы выйдете за дверь. Разработайте программное обеспечение так, чтобы мой 10-летний мог понять это так же легко, как они могли программировать PVR. Это означает, что я должен взаимодействовать с ним таким образом, который кажется логичным для меня как человека, который будет использовать его изо дня в день. Не имеет значения, если это функционально правильно, если я не могу понять, как его использовать, я не собираюсь его использовать, тем более платить за него.
Он должен быть отзывчивым: Я не хочу нажимать кнопку, а затем ждать 10 секунд, пока загрузится список, и затем выбрать элемент из этого списка, а затем ждать еще один экран, чтобы загрузить его, прежде чем я смогу выбрать действие, которое нужно выполнить для этого элемента, а затем потребуется 5 минут. Найдите способ быстрой загрузки данных - если вы не можете быстро загрузить данные в ответ на мои действия, тогда придумайте хитрость, чтобы они чувствовали , как данные загружаются быстро - возможно, загружая их заранее в фоновом режиме и отображая только то, что мне нужно, отображается в ответ на мои действия ... моя точка зрения, мне все равно что вы делаете, просто сделайте так, чтобы выглядело как он делает это быстро.
Это должно быть надежно: Неважно, что я кидаю в него, оно должно принять это и двигаться дальше. Если я делаю что-то не так или кладу что-то неправильное в поле, скажите мне - НА ПРОСТО АНГЛИЙСКОМ ЯЗЫКЕ !! Меня не волнует переполнение буфера или исключения IOException, выдаваемые в строке 479 при попытке открыть файл. Просто разберись и скажи мне, что я сделал не так на языке Я понимаю.
Дайте мне документацию: Хорошо, я знаю, что не собираюсь его читать, и я с большей вероятностью подниму трубку и позвоню вам, чем помню, где я ее положил, когда ты дал это мне. Но зная его там, я чувствую тепло и нечеткость внутри. Это показывает, что вы достаточно заботились о программном обеспечении - и меня достаточно, чтобы написать инструкции, которые я могу сослаться на нерабочие рабочие часы, когда вы недоступны.
Цена: Это полностью зависит от вашей аудитории, но, по моему опыту, если вы выполнили все вышеперечисленные пункты, цена, как правило, вызывает гораздо меньшее беспокойство, чем может показаться на поверхность.