Юзабилити: как сделать сайт удобным
Виды программного обеспечения
Фредерик Брукс — именитый участник крупных западных проектов по созданию сложнейших программных систем — выделяет несколько разновидностей программного обеспечения.
Программа. Самый простой вариант программного обеспечения. Чаще всего это просто код, написанный на каком-либо языке программирования и состоящий только из операторов, циклов, рекурсий, переменных и т. п. Иногда могут быть комментарии в тексте программы или даже простенький файл с описанием работы и настройки программы. Переменные допустимо называть «МоуаРегешеппауаб» или «loop_for_get_a_number_of_user_input». Программа может работать под управлением операционной системы и ее версии, которая установлена на компьютере программиста, и совершенно невменяемо вести себя на другом компьютере. Такая программа без исходных файлов — это только исполняемый модуль типа exe, class. Ключи для запуска программы и ее опции знает только разработчик. Если такая программа имеет визуальное представление, то, как правило, у пользователя оно ничего, кроме раздражения, не вызывает.
Программный продукт. Иметь дело с программным продуктом гораздо приятнее. Разработчик пишет тексты программ таким образом, чтобы разобраться В их работе мог не только он один, но и другой программист, знающий соответствующий язык программирования. Программа содержит четкие подробные комментарии, все версии ее исходного текста содержатся в специальной системе управления версиями. Оформлена подробная документация, в том числе и руководство пользователя, программиста. Программа тщательно протестирована, имеет набор контрольных примеров и может быть инсталлирована в различных операционных системах.
Программный комплекс. Представляет собой определенный набор интегрируемых программных продуктов, Собранных в достаточно сложную систему с согласованными программными интерфейсами и обменивающихся взаимно понятными данными.
Системный программный продукт. Это совокупность различных программных продуктов и программных комплексов, со всеми их артефактами[1] и отличиями от обычной программы.
Программное обеспечение создается в первую очередь для людей, а в этом случае «первой скрипкой» выступает интерфейс. Значит, и с этой точки зрения различия между программой и системным программным продуктом очень велики. Поскольку в большинстве случаев крупные системы создаются не для пары-тройки человек, а большого количества людей, то особое внимание должно уделяться отношению пользователей к системе. Чем больше положительных эмоций вызывает работа с системой, тем выше ее шансы стать востребованной. Кроме различий в документировании, сложности, качестве исходных кодов и пе
реносимости, программа и системный программный продукт отличаются отношением системы к пользователям. Ведь если интернет-сайтом пользуются сотни людей, то именно они диктуют свои требования, от них зависит прибыльность этого проекта, популярность. Для пользователей самым важным является то, насколько им легко и удобно работать с программой, и если такая система игнорирует предпочтения, желания и слабости пользователей, то она обречена на провал.
Однако невозможно с ходу узнать, что же «нужно» пользователям. Иногда для этого проводят широкие маркетинговые исследования, специальные тесты, изучают привычки и предпочтения пользователей. Тратятся большие средства не на создание нового кода и программных продуктов, а на изменение вроде бы только внешнего вида существующих программ с добавлением или устранением каких-нибудь функций. А результат? Результат в том, что предпочтение отдается именно наиболее удобным программам, наиболее приспособленным для работы, ненапрягающим. И от того, сколько внимания уделяется будущим пользователям и графическому интерфейсу для них, насколько система удовлетворяет их информационные потребности, зависит ее рентабельность. Тщательно спроектированный и проработанный интерфейс позволяет работать без посторонней помощи, без системы справки, без подсказок службы поддержки.