...
...

Первая программа на продажу

Вы — только учитесь быть программистом, однако уже имеете определенные знания в этом вопросе. Уже изучили книгу по одному из языков программирования и даже написали программу "для себя". А теперь решили написать программу, которая будет нужна не только вам, но и другим пользователям "полнейшего идиота с феноменальной памятью", именуемого компьютер. Однако на пути встречается слишком много трудностей, таких как прием денег от пользователей, техническая поддержка, распространение. Как и в любом деле, все эти проблемы нужно разложить по полочкам и решать постепенно. (Статью про типы лицензий можно найти в КГ № 23. Она может также пригодиться начинающим программистам.)

Полочка I: какие задачи решает моя программа


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

Полочка II: написание программы

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

Для начала — размер программы. Учитывая сей факт, что распространяется MyProg через интернет, размер дистрибутива очень важен. Если вы решите в каждое окно программы вставить bmp рисунок размера в 2-3Mb, а таких окон будет всего 10, то шансов, что пользователь скачает вашу программу, будет совсем немного. Да и закачивать её вам будет не очень-то удобно. Чем меньше размер дистрибутива, тем больше людей, обративших внимание на вашу программу, решатся скачать её. Еще одно преимущество у программ маленького размера — они экономят трафик, а за трафик придется платить вам (однако про это позже).

Следующая ошибка, совершать которую не разрешается — изменение системных файлов и настроек операционной системы. Никогда не записывайте информацию в папку Windows, Исключение допустимо лишь в том случае, если вы создаёте программу для управления или изменения настроек операционной системы. Не забудьте предупредить пользователя об этом. Если программа будет изменять все стандартные настройки без разрешения пользователя — ей гарантирован нокаут. Также не стоит писать программу, которая каждую минуту напоминает о своем существовании. Программу, которая при запуске будет в течение десяти минут показывать свою эмблему и говорить: "Запомни моё имя, ибо я лучше всех!". Этого делать не нужно, т.к. хорошая программа не та, которая надоедает пользователю, а та, которая ему помогает.

Еще хочется сказать пару слов про интерфейс. Предоставьте пользователю выбор в цветовой гамме, потому как "на вкус и цвет друга нет". Не нужно менять стандартные цвета. Необходимо помнить о том, что интерфейс должен быть простой и не перенасыщенный. Предпочтительно разделение различных настроек на группы, т.к. пользователь не сможет сразу разобраться во всем могуществе программы. У него просто начнется паника и он прекратит своё дальнейшее ознакомление с ней.. Говоря об этом хочется вспомнить ученого-психолога Г.А. Миллера, который исследовал кратковременную память, проверяя выводы, сделанные ранее его коллегой Г. Эббингаузом. Эббингауз пытался выяснить, сколько информации может запомнить человек без каких-либо специальных мнемонических приемов. Оказалось, что обычно емкость памяти ограничена семью цифрами, буквами или названиями предметов. Это "магическое число" семь, служащее своего рода меркой памяти, и было проверено Миллером, который показал, что память действительно в среднем не может хранить более семи элементов. Поэтому рекомендуется разделять окно программы на отдельные блоки и в каждом блоке хранить как можно меньше элементов (не больше семи).

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

Полочка III: справочная система

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

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

WinHelp. Стандартную справку можно оформлять в этом формате. Не смотря на свой почтенный возраст, на сегодняшний день формат WinHelp не уступает по популярности новому формату HTML Help, активно продвигаемому корпорацией Microsoft.

HTML Help. Одним из главных преимуществ этого формата является красота, присущая любому документу HTML. По сути, это есть ничто иное как совокупность html-файлов, которые собраны в одно целое для облегчения жизни пользователя.

Adobe Acrobat (PDF). Преимущество вышеназванного формата HTML заключается в том, что он может быть просмотрен на любой платформе (Windows, Linux и пр.), однако в разных программах отображаться будет по-разному. Возможны проблемы с кодировкой. Что касается файлов PDF, то они будут выглядеть одинаково в любой системе вне зависимости от настроек. Однако есть и минусы этого формата. Главный минус заключается в том, что для просмотра этих файлов необходима программа Acrobat Reader. Программа хотя и бесплатная, однако установлена она далеко не на всех компьютерах. Вторым минусом является то, что с помощью MyProg невозможно вызвать какой-либо раздел PDF-справки. Ну а самый главный недостаток для разработчиков заключается в том, что для создания PDF-файлов необходим дорогостоящий пакет. Поэтому для программиста-одиночки сей вариант не подходит.

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

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

Полочка IV: создание дистрибутива

Для начала давайте представим такую ситуацию: купили мы новый телевизор. Поставили на тумбочку и собираемся его опробовать. Вместо того, чтобы начать поиск каналов, нам предлагают большое количество настроек, якобы, чтобы смотреть было нам удобно. Однако мы не понимаем, что от нас хотят: большое количество сложных окон. И боясь сделать что-нибудь не так, нам приходиться внимательно вчитываться в любое сообщение и, почесывая голову, вспоминать что означает то или иное слово. К сожалению, программисту необходимо представлять себя в роли самого тупого пользователя, даже если таковых нет. Поэтому и установка MyProg должна быть как можно проще. Окон с приветствием и выбор места, куда устанавливать программу вполне хватит для вашей программы. А пользователь не потеряет много времени и останется с чувством, что автор программы о нем заботиться и с надеждой, что программа также будет проста. Я рекомендую воспользоваться инсталлятором InnoSetup ( сайт ). Достаточно просто инсталлятор, даже не смотря на то, что он не визуальный, а для создания необходимо вводить специальный код. Однако код простой и подробно описан в справочной системе.

Полочка V: номера версий

Наверняка, блуждая по интернету и скачивая программы вы уже заметили, что каждая программа имеет после названия цифры. Это версии продукта с изменениями, т.к. со времени выхода первого релиза могут быть обнаружены новые глюки или автор захочет добавить чего-нибудь нового. Однако не стоит пугать пользователей такими страшными версиями типа 3.03.43.3455 — это не поможет. Просто пользователь не сможет запомнить то, какой версией пользуется сейчас и есть ли смысл ему переходить на более новую. Вполне достаточно двух цифр: 3.4 — первая цифра говорит о стадии развития программы, а вторая о номере релиза. И этого хватает. На мой взгляд ошибкой будет обращение к опыту компании Microsoft, продукты которой называются просто: Microsoft Windows 95 или 98. Не стоит шароварную программу называть MyProg 2006, т.к. периодичность выхода новых версий такого продукта не превысит интервала в один год, а сочетание года и версии будет смотреться не очень красиво: MyProg 2006 v3.4.

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

Полочка VI: сайт, размещение программы

Обязательным атрибутом любой шароварной программы является наличие сайта. Без сайта у вас будут ограничены возможности по привлечению новых и поддержке существующих клиентов. Рассказывать о том, как его создавать в этой статье не имеет смысла, т.к. это уже совсем другая история. Если подобный опыт отсутствует, то можно заказать сайт у одной из многочисленных компаний или объединиться с другим человеком, который согласен размещать вашу программу на своем сайте.
На этой полочке будет храниться информация о том, как организовать сайт. Поговорим о дизайне: он не должен быть самым лучшим, он должен быстро загружаться, выглядеть аккуратно и неназойливо. А посему, не надо вдаваться в дизайнерские дебри, поскольку скорее всего пользователь зашел на ваш сайт не для того, чтобы продолжительное время наслаждаться процессом загрузки интернет-страницы.

Многие начинающие разработчики создают для своего творения одну страницу. Однако, как показывает личный опыт, впечатление от такого сайта остается не самое лучшее. На нем должно быть 5-6 разделов. Перечислим основные из них. Главная страница — на этой странице размещаются новости о программе и небольшое описание. Описание программы — на этой странице необходимо раскрыть возможности программы, возможно разместить награды различных софтовых каталогов. Скачать — часто пользователи уже знают о программе достаточно и хотят сразу перейти на страницу загрузки. Поэтому эта ссылка очень востребована. Позже сможете сами убедиться, когда будете просматривать статистику переходов по сайту. Купить — само наличие этой ссылки говорит пользователю о том, что программа не бесплатная. А в том, что эта ссылка необходима, сомнений быть не должно. Скриншоты — конечно же пользователь захочет посмотреть на снимки программы прежде чем будет её скачивать. Данную вещь также необходимо организовать на отдельной странице сайта. Пресс-релиз — раздел для прессы, в котором необходимо поместить информацию, которая будет интересна пишущем людям. Хорошие отношения с прессой обязательно должны сохраняться, т.к. от этого зависит успех MyProg. Также на сайте можно разместить статьи, которые были написаны о вашей программе и контактную информацию.

Полочка VII: продажа программы

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

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

Резюме

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

Игорь Каждан, igor-k@softbusiness.biz

© Компьютерная газета

полезные ссылки
Аренда ноутбуков