Спасение утопающих - дело рук хелпа
АрхивНедавно один мой знакомый принес свою программу. Принес, по его словам, "уже готовую". И действительно, InstallShield, англоязычный интерфейс и прочие вещи намекали на полную готовность к выходу в люди. Поигравшись несколько минут с окошками, я нажал F1 - реакции не последовало... Увидев мой недоумевающий взгляд, приятель быстро сориентировался и изрек: "А хелпа нету! Зачем он здесь нужен - у меня же интуитивно понятный интерфейс, понимаешь!"
Зачем нужен Help
Справочная система - это, пожалуй, та грань, которая отделяет "поделку для друзей" от программы, предназначенной для публичного распространения. Широко распространенная шутка по поводу того, что какая-то программа работает только в присутствии программиста, ее написавшего, берет свое начало от нелюбви разработчиков к написанию грамотной, полезной и удобной документации для своих творений.
Пользователи обычно гораздо менее сообразительны и образованны, чем вы предполагаете. Более того, если программа ориентирована на российский рынок, помните, что в большинстве случаев наши люди хелпов не читают (причем не читают даже перед тем, как обратиться к автору программы с вопросом - в отличие от большинства иностранцев), и лишь немногие из пользователей отважатся прочитать первую страницу вашего литературного творчества. Но, тем не менее, help программе в любом случае нужен - вопрос только, в каком виде?
Какие бывают хелпы
Перефразируя известную народную мудрость, можно сказать, что иной программе и readme.txt - хелп. А некоторым программам не обойтись без 26 томов печатной документации. Полноценные руководства пользователя для shareware-продуктов - явление довольно редкое, а уж печатная документация - вещь вообще невиданная (а если она и есть, то, как правило, продается за деньги, сравнимые со стоимостью самой программы). И потому тем более стоит проявить во всей красе литературные таланты и любовь к потенциальному пользователю, создавая online help. Ведь и от него зависит рейтинг, количество звездочек и "коров", которые будет носить ваша программа на различных shareware-серверах. Кстати, о литературных талантах: люди, профессионально занимающиеся созданием документации к программам (technical writer), явление на компьютерном рынке достаточно редкое, дефицитное и потому высокооплачиваемое - так что есть шанс, что тренировка не пройдет даром.
Как я уже сказал, хелп может иметь самый различный вид - от обыкновенного текстового файла или стандартного долгожителя WinHelp до профессионально сверстанного файла в формате PDF (как, например, в программе Adobe Acrobat Reader). И уж самый последний писк моды нашего Интернет-века - это HTML Help.
Продукт под таким названием разработан компанией Microsoft, а его аналоги-конкуренты, использующие в качестве формата представления информации HTML, носят собственные названия: это прежде всего NetHelp от компании Netscape, WebHelp от Oracle и, наконец, JavaHelp от Sun (к сожалению, война браузеров не прошла мимо форматов справочной системы).
Осмелюсь дать совет: если вы сегодня собираетесь создавать хелп к своей программе, выбирайте HTML Help от Microsoft. Тому есть множество причин: по сравнению с традиционными форматами справки, новый HTML Help предоставляет автору гораздо больше средств для достижения целей, ранее труднодостижимых, и при этом почти не требует дополнительных знаний. HTML Help на сегодняшний день - это наиболее завершенное решение изо всех существующих HTML-хелпов, и он уже поставляется в составе Windows 98 и бета-версий Windows NT 5.0. Немаловажно для shareware и то, что HTML Help от Microsoft (при правильном его использовании) производит неизгладимое впечатление на обозревателей различных shareware-серверов - для примера скажу, что review моей программы на сервере ZDNet состояло из десяти строчек, три из которых являлись комплиментами и восхищенными словами в адрес HTML Help (и еще три были посвящены поруганию многочисленных грамматических и орфографических ошибок в английском языке, на котором этот самый хелп был написан).
За работу!
В случае текстового файла или справки в формате WinHelp понадобится всего лишь Microsoft Word (кстати, лучше Word 95, потому что для использования в этих целях Word 97 вам понадобится скачать с сервера Microsoft дополнительную программку rtffix) и компилятор Help Workshop. Если захотите воспользоваться специализированными средствами для создания WinHelp'ов - к вашим услугам огромнейший арсенал программ. Большое количество ссылок на подобные программы вместе с их описаниями есть на сервере www.workwrite.com. Одной из лучших программ для создания "традиционных" справочных систем является shareware-программа российской фирмы Anet Software (www.anetsoft.com). AnetHelpTool позволяет редактировать файлы справки в двух режимах - Runtime и Design. В первом режиме можно просматривать документ практически в том же виде, как он будет выглядеть в WinHelp после компиляции, а во втором - редактировать текст и графику. Интерфейс у этой программы довольно удобный, что позволяет сделать все легко и быстро. К сожалению, насколько мне известно, пока существует версия AnetHelpTool только для Windows 3.x.
Создание справочной системы в формате hlp - не совсем тривиальная задача, поэтому если вы все-таки прислушаетесь к моему совету и решите делать хелп в формате HTML, тем самым здорово облегчите себе жизнь. Для этого необходима какая-нибудь программка для редактирования HTML (Notepad, Microsoft FrontPage, Homesite, etc.) и компилятор HTML Help (например бесплатный HTML Help Workshop от Microsoft: www.microsoft.com/workshop/author/htmlhelp).
Разумеется, авторы специализированных программ для создания хелпов и в этом случае о вас не забыли: большинство популярных пакетов уже выпущено в версиях для HTML (например, продукты компании ForeFront, www.ff.com, и Blue Sky, www.blue-sky.com).
Особенно хочется отметить ForeHelp от ForeFront. Эта программа позволяет не задумываться о том, в каком формате вы хотите создать свою справочную систему... до самого этапа компиляции. То есть вы можете написать текст и лишь после этого выбрать вид, в котором он предстанет перед пользователем (поддерживаются форматы WinHelp 3.1, WInHelp 95, HTML/Microsoft, HTML/Netscape, стандартный HTML 3.2 и даже просто создание печатной документации). Кроме того, из всех подобных программ именно эта мне понравилась гораздо больше остальных. Богатейший набор функций и при этом абсолютная легкость доступа ко всем параметрам будущей справочной системы объединены в настолько хорошо продуманном интерфейсе, что складывается ощущение роста функциональности программы по мере роста ваших потребностей. Дополнительно: макроредактор, редактор ключевых слов и "связанных" тем (related topics), topic gallery и удобная работа с изображениями - одним словом, рекомендую!
Для полного набора, пожалуй, понадобится еще и "What's This? Help Composer" от уже упомянутой компании Blue Sky Software. Эта программа делает легкой и простой нудную задачу создания контекстной справки. Если у вас есть готовый exe-файл, ActiveX-элемент или проект на Visual Basic, то с помощью этой программы вы сможете автоматически создать ко всем диалогам шаблон контекстной справки. Не надо больше придумывать разные ID_, долго и пытливо просматривать все диалоги и делать прочие совсем не интересные вещи. Все сделано так просто и изящно, что после мытарств с "ручным" выполнением той же самой работы хочется заплакать от удовольствия! Пять звездочек ZDNet Software Library, видимо, просто так не дают...
Что писать
Не забывайте, что хелп пишется для пользователей, и пишите его языком этих самых пользователей. Хелп - это не техническое описание программы: в большинстве случаев пользователя мало волнует, что "данный элемент является контролом типа CEdit, и потому ему присущи все ограничения данного типа контрольных элементов" (реальный пример из одной программы, не имеющей никакого отношения к программированию). Кроме того, неплохо помнить, что в справку обычно заглядывают не от хорошей жизни, а когда понадобится найти ответ на какой-то конкретный вопрос.
Прежде всего вам нужно определить структуру будущей справочной системы. Для любой shareware-программы жизненно необходимы разделы типа "How to order", "Description" или "Introduction", "Our site", "Technical support". Весьма разумно выделить эти четыре раздела в отдельную секцию.
Вообще, для текста и содержания справочных систем характерны два подхода: либо вы рассказываете для чего что-то предназначено, либо о том, как что-то сделать (wanting to know vs. wanting to do). Оба этих подхода имеют право на жизнь, и какой из них выбрать - решать вам. Решать, естественно, не от фонаря, а исходя из тех вопросов, которые задают пользователи на стадии, когда хелпа еще нет (а обычно, пока программа существует в виде первых бета-версий, его и не бывает). В конце концов, грамотно написанный хелп избавит вас от кучи дополнительных вопросов тех же самых пользователей.
Одной из самых широко распространенных ошибок при создании справочной системы является злоупотребление длинными и подробнейшими объяснениями, превращающими хелп в некое подобие научного трактата. Оставьте подробные объяснение для печатной документации (которой, скорее всего, у вас не будет), а в хелпе быстро и точно помогите пользователю найти ответ на волнующий его вопрос.
Надо сказать, что справочная система - это не только некий абстрактный файл справки, но еще и контекстная система помощи. Обычно пользователи довольно неохотно берутся запускать первый пункт из меню Help (потому что в этом случае им придется искать и разбираться в справке), но вполне готовы нажать F1 на каком-то пункте меню или воспользоваться вопросиком "What's This?" в диалогах - так что именно разработке системы контекстной помощи следует уделить наибольшее внимание. А это, вообще говоря, не совсем тривиальная задача, над которой придется подумать не меньше, чем над проектированием любой другой части интерфейса программы.
Наконец, нельзя не затронуть такую весьма болезненную для большинства отечественных шареварщиков тему, как перевод системы помощи на английский язык. Разумеется, лучше, если ваш английский будет понятен людям, на нем разговаривающим. Найти знакомого, который за некоторую сумму (а то и бесплатно) переведет ваш хелп на некий "промежуточный" вариант английского языка, нетрудно, но мой вам совет: не пожалейте бесплатной регистрации, найдите англичанина или американца, который доведет качество перевода до хорошего уровня. И уж ни в коем случае не представляйте свое творение на суд обозревателей ZDNet (www.hotfiles.com), пока не будете уверены в отсутствии грамматических и стилистических ошибок. По собственному опыту знаю - плохой английский язык перевесит для ZDNet все достоинства вашей программы. Им будет совершенно не важно, что вы из России, когда они напишут о вашей программе что-то типа: "There is an attractive HTML style hyperlinked help document, but the spelling and grammar errors detract from its usefulness".
Самая ненужная часть вашей программы
Так случилось, что с момента написания первых строк этой статьи до ее завершения прошло довольно много времени. За это время мой приятель, о котором я упомянул вначале, успел написать хелп к своей программе и вчера приходил ко мне показывать свой шедевр во второй раз. Как изменились акценты за прошедшее время! Теперь он уже всячески просил меня нажимать во всех диалогах на значок контекстной справки и просматривать ее чуть ли не ко всем элементам программы! Самое печальное, что, поработав с его программой почти целый день, я пришел к выводу, что без справки ее использовать просто невозможно... И это подтолкнуло меня к совершенно неожиданному заключению.
Есть две вещи, которые, безусловно, необходимы любой профессиональной программе. Во-первых, такая справочная система, которая позволяет легко и быстро разобраться во всех возможностях вашей программы. И во-вторых, такой интерфейс, который позволит пользователю никогда не задумываться о том, есть ли у вашей программы хелп.
Успехов!
Константин Вяткин - один из руководителей компании VyPRESS Research (www.vypress.com).
Дополнительная информация по разработке и распространению shareware-программ представлена на сервере Download.ru в разделах "Ресурсы" и "Обзоры".