«Искусство» программирования, или Гимн безответственности




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



«…ложь Змея-Искусителя была не в том,
что он предложил человеку отведать яблока познания.
Перед этим он солгал, сказав, что думать — приятно…»

Шальная мысль

Вместо предисловия

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

Давайте взглянем, например, как изменилось сегодняшнее аппаратное обеспечение. Современные процессоры берут барьер в 2 ГГц, а объем памяти в 1 ГБ уже не является чем-то экстраординарным даже для домашних систем — так хотелось бы и вторую составляющую компьютера видеть на «уровне». Ведь действительно, где обещанная революция в программном обеспечении? Почему я не могу управлять своим компьютером при помощи голоса? Почему он до сих пор не узнает меня в лицо? Ради чего я несколько минут должен ждать загрузки операционной системы? Да за это время та ценная мысль, которая заставила меня к нему подсесть, может улетучиться. А главное: до каких пор работу операционной системы будут преследовать сбои? Вообще, ситуация была бы смешной, если бы не была такой грустной… Компьютеры движутся вперед семимильными шагами. Из этих семи миль за шаг шесть миль принадлежит производителям аппаратного обеспечения, и только одна миля (да и то, не каждый шаг, и не всегда вперед) — производителям софта.

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

В самом деле: врач своей репутацией отвечает за больного. Несет свою меру ответственности шофер, пекарь, милиционер. Будет наказана фирма, выпустившая неработающее (или работающее плохо) устройство. В конце концов, некоторые фирмы, выпустившие процессоры с ошибками, отзывают их обратно. А в области программного обеспечения — тишь, гладь, да божья благодать. «…Ни при каких условиях авторы программы не несут явной, подразумеваемой, финансовой, уголовной или какой-либо другой ответственности за возможные ошибки в работе программы…» — интересно, а за что же отвечают авторы этой программы? Вы себе представляете подобную надпись на борту самолета? Когда авиакомпания не ручается, что Вы долетите? А на лекарстве надпись примерно такого содержания: «Фирма-производитель не гарантирует безвредности данного лекарства и ни при каких условиях не несет ответственности за Ваше здоровье»? Глупо, правда? А вот на рынке программ это почему-то обычное условие распространения. Стоп — но ведь программист тоже отвечает репутацией? Отвечает. Но практически никогда не отвечает деньгами — и в этом вся разница. Тогда как в любой другой области — производитель отвечает за качество как репутацией, так и деньгами.

Многие говорят — подождите, но ведь программисты вкладывают свой труд, а, значит, должны зарабатывать деньги! Да ради Бога! Только вот покупатель тоже вкладывает свой труд. Потому что деньги покупателя — это деньги, которые платят за труд покупателю. И с этой точки зрения нет никакой разумной причины, почему за собственные деньги покупатель покупает, извините, «гембель». Я не говорю сейчас о случае, когда человек покупает компьютер, не умея им пользоваться — в этом он берет ответственность на себя. В большинстве случаев люди все-таки знают, зачем именно они покупают компьютер. Но подождите, почему купленная мною вещь не работает нормально? Почему время от времени я должен иметь дело с «компьютерными гуру», которые будут «шаманить» над моим системным блоком? Почему вообще одна программа может некорректно работать с другой, если за обе плачены деньги? Здесь, однако, надо признать, что подобный подход процветает не только в программировании — скорее подобная «забота» о пользователе наличествует во всей индустрии, связанной с производством услуг и нематериальных ценностей. Но не будем уподобляться Дон Кихоту и не станем искоренять абсолютно все недостатки этого мира :-) — ограничимся программированием.

Однако давайте не передергивать. Если программы всесторонне проверять — они будут стоить других денег и выходить гораздо дольше.

«Другие» деньги

Вопрос стоимости софта, кстати, весьма интересен. Общепринятая точка зрения гласит, что если разрабатывать софт надежным — это потребует совсем других денег. Безусловно, тщательная проверка софта будет стоить дороже, чем нынешняя. Однако неизбежно всплывает другой вопрос, весьма нелегкий — себестоимости софта. Дело в том, что сейчас при продаже программного обеспечения применяется тот же подход, что и при продаже, например, пирожков. То есть в себестоимость пирожка должна входить стоимость муки, дрожжей, начинки. Кроме этого, необходимо учесть еще необходимость оплаты труда пекарей, стоимость аренды пекарни, стоимость транспортных перевозок, и, наконец, стоимость рекламы этих самых пирожков. Вроде приблизительно так. Естественно, по ходу дела могут добавляться еще расходы — вышеперечисленные просто самые распространенные. Ну что же — посмотрим, что у нас с программным обеспечением. Что у нас за «пекарня» в этом случае? Нам нужен офис, компьютеры, программное обеспечение для создания программ. Нужна оплата труда программистов. Естественно, каких-то денег это стоит. И немалых. Полученная сумма и будет определять себестоимость — наряду с расходами на производство носителей и транспортными расходами. Вроде все сходится… Значит, в стоимости каждой копии программного обеспечения заложена стоимость его создания. Логично, черт побери! СТОП! Логично, да не совсем. В стоимости каждого пирожка сидит стоимость производства именно этого пирожка. Тогда как в стоимости программного обеспечения сидит часть стоимости однократного создания программы.

Попробуем на примерах: итак, есть какая-нибудь условная программа, создание которой стоило, к примеру, миллион долларов. Фирма рассчитывает продать за год, например, 20 000 копий программы — соответственно, на каждую копию придется по 50 долларов, которые пойдут на покрытие расходов на создание программы. Еще немного надо добавить на производство и транспортировку, и неизвестное пока количество денег на рекламу программы. Вроде все так. Но что произойдет дальше? А дальше все гораздо интереснее — прошел год, и фирма — производитель великолепно справилась с поставленной задачей. К концу года было реализовано, к примеру, 32 000 копий программы по 75 долларов (при суммарной себестоимости в 60 долларов). Это принесло фирме приблизительно 480 000 прибыли — что весьма неплохо. Начался второй год. За первую его половину было продано 11 000 копий. Однако бухгалтерия фирмы показывает прибыль не 165 000 долларов, как мы могли бы подумать. Отнюдь — все гораздо приятнее. Прибыль составила 715 000 долларов. Абсурд?! Отнюдь! Читатель, вглядись внимательно в то, из чего складывается себестоимость! Она большей частью складывается из стоимости разработки. Но ведь за первый год это самая стоимость разработки уже с лихвой была возвращена — и потому во второй год из 60 долларов себестоимости у нас осталось только 10. Кстати, на самом деле, и производство, и транспортировка, и реклама уже известной покупателю продукции со временем становятся дешевле — но не будем мелочиться. И потому при цене 75 долларов в первый год фирма зарабатывала «только» 15 долларов с копии — а во второй год уже 65. И так далее…

Сага о пиратстве

Именно этим и отличается любое производство, скажем так, материальных продуктов, от производства программ. То, из чего состоит пирожок — само по себе имеет некоторую материальную ценность (мука, сахар, дрожжи, антиоксиданты и прочее). А вот то, из чего «состоит» программа — единицы и нули — стоимости не имеет. Денег стоит только носитель программы.

Проиллюстрировать эту идею можно вот чем. Давайте припомним Англию, «Владычицу морей», и поставки пряностей из Индии. Помните, с какой главной проблемой столкнулись купцы — перевозчики пряностей? Вот именно! Погода? Отнюдь! Дальнее плавание? Не страшно! Пиратство. Именно пиратство было бичом божьим для купцов, которые получали баснословные прибыли. Что же заставляло пиратов идти на немалый риск для жизни? Ведь суда с пряностями часто сопровождались военными кораблями, и не так уж легко было отобрать эти драгоценные пряности. Имя этой причины — прибыль. Вернее, не так: сверхприбыль. Размеры прибыли от торговли пряностями были настолько велики, что даже риск гибели пирата или драгоценного груза, а затем необходимость быстро продавать груз по сниженной цене никого не останавливали — делалось все возможное, чтобы захватить пряности любой ценой. И, кстати, никакие действия Адмиралтейства Её Величества ничего не могли поделать с этой бедой, пока не исчезла сама причина возникновения пиратства — со временем стоимость пряностей снижалась. Вместе с ней снижалась прибыль. И в один момент потенциальная прибыль перестала перекрывать риск заниматься пиратством. И вчерашние пираты стали вполне респектабельными купцами (кстати, известны случаи, когда купцы подкладывали «козу» друг другу, отбирая у конкурентов груз). Таким образом, пиратство существует там, где есть сверхприбыли. И наоборот, там, где прибыль относительно мала — пиратство невыгодно. И, соответственно, отсутствует. Этот вывод, кстати, принадлежит отнюдь не автору — существует весьма интересный труд (к сожалению, в данный момент автор не может указать источник этой мысли) на эту тему, в котором и был сделан этот вывод. Мы же только пользуемся этим выводом.

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

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

Однако пиратство как явление — гораздо более сложный процесс. Дело в том, что в вышеуказанном смысле пиратство — индикатор сверхприбыли. Пиратство, как уже показано выше, возникает там, и только там, где прибыль намного больше стоимости разработки продукта. И неудивительно, что один из главных «пострадавших» от рук пиратов — компания Microsoft. И опять же неудивительно, что именно эта корпорация активнее всех выступает против пиратов — вплоть до проведения совместных рейдов с правоохранительными органами. Кстати, в этом вопросе даже злейшие конкуренты согласны с Microsoft. Ну что же — понять их можно. Ведь пираты — это недополученная прибыль, более низкие уровни продаж. Это меньше денег. Ну кому это может понравиться?

Однако, господа, еще одна тонкость состоит в том, что сверхприбыли в условиях свободного рынка возможны только в случае монополизации рынка. Только в том случае, когда некая компания диктует цены, она имеет возможность получать от своей деятельности сверхприбыль. Во всех остальных случаях наличие высокой нормы прибыли тут же стимулирует конкурентов к выходу на данный, высокодоходный рынок. И здесь автор имеет в виду отнюдь не только Microsoft — нет уж, одного виноватого не будет. Весь рынок программного обеспечения является областью действия пиратов. Соответственно, вне зависимости от того, есть формально конкуренты или нет — все компании, занимающиеся софтом, являются в некотором смысле монополистами. Хотя бы потому, что понятие конкуренции в мире софта успешно сведено производителями программного обеспечения на нет. Если конкуренции на этом рынке нет — тому есть веские причины. По мысли автора, основным тормозом реальной конкуренции на этом рынке является не что иное, как возможность патентовать формат данных в файлах. Редкая ирония судьбы — идея патента, стоящая на страже каждого автора какой бы то ни было идеи, в данный момент становится основным тормозом развития рынка. Думаю, каждый читатель припомнит не одно судебное разбирательство по поводу того или иного продукта… Сюда же относятся уже не единичные судебные процессы между фирмами-производителями софта по поводу формата файлов. Впрочем, это тема отдельного разговора. Поясним эту мысль подробнее: внешне все очень мило и пристойно — практически в каждой области есть несколько конкурирующих продуктов. Но задумайтесь, почему все графические редакторы сохраняют Вашу работу в файлах разных форматов, невзирая на то, что принципы кодирования информации практически везде одни и те же? Да, формально Corel Photo Paint — конкурент Adobe Photoshop. Но почему тогда не совпадают форматы данных? Почему покупатель практически насильственным образом (да еще и под циничные песни о преимуществах и усовершенствованиях) привязывается к данному форма ту данных? Почему каждая следующая версия программы использует новый формат? Неужели нельзя сделать формат с «запасом», чтобы не менять его каждый раз? Полноте! Автор категорически отказывается в это верить… Хотя бы потому, что Microsoft успешно реализовала практически полную совместимость форматов данных Microsoft Word всех последних версий. И не только сверху вниз, что относительно легко — а и наоборот. Документы, сделанные в более поздней версии, практически без проблем открываются более ранними версиями программы (естественно, некоторые нюансы, особенно касающиеся макросов, остаются; но главное в том, что, по крайней мере, свой текст пользователь получит) Если подобное сравнение режет глаз — вот другое: PageMaker/InDesign от Adobe и QuarkXPress. Хотя там все намного лучше — из-за вынужденной поддержки однотипного оборудования (ну нет другого) производители действительно являются конкурентами в этой области, и версии программ меняются гораздо реже. Отнюдь! Практически все программы сделаны так, чтобы в каждой из них было удобнее выполнять отличную от других последовательность действий. Естественно, это все подается под соусом удобства для пользователей — но не будем наивными. Настоящая причина, по мысли автора — желание зарабатывать деньги. Естественно, это не единственная причина — но одна из движущих. Представим себе, что каждый автомобиль надо водить своим, оригинальным способом — абсурд, не правда ли? И крайне неудобно. Однако именно эту ситуацию производители программного обеспечения преподносят, как заботу о каждом пользователе! Вот водители вряд ли обрадуются предложению сделать у каждой машины уникальное управление. И правильно — потому что все необходимые для вождения характеристики машины стандартизованы. И это есть единственно правильный выход! В мелочах каждый производитель автомобиля старается отличиться — слава богу! Именно поэтому каждый выбирает свою машину — но каждый при этом уверен, что она проедет по обычной дороге и будет работать на обычном топливе. Именно это не дает производителям автомобилей бесконтрольно поднимать цены — на этом рынке есть реальная конкуренция. На рынке программного обеспечения ее нет.

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

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

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

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

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

А был ли мальчик?

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

Так что со стоимостью программного обеспечения вопрос крайне сложный. Равно как и с наличием «конкуренции» на рынке софта. С этой точки зрения совершенно непонятно, куда же смотрит «главный полицейский планеты» в области антимонопольного законодательства — США (автор подчеркивает еще раз — никаких личных претензий он к США пока не имеет. По крайней мере, активное участие США в любых международных событиях и их заявления о том, что область их интересов — вся планета, заставляют сделать именно такое заключение)? Хотя там и идет вялотекущий процесс против Microsoft… С ним тоже забавно — ведь понятно, что Microsoft — монополист. Так уж вышло. Но вот как-то принимать меры к компании, которая приносит США такое количество денег — рука не подымается. Да и принятия мер громче всех просят конкуренты, у которых у самих «рыльце в пушку». Не говоря уже о том, что свое будущее США связывают с лидерством именно в информационных технологиях. В общем, забавно наблюдать борьбу жадности с еще большей жадностью. :-)

Однако есть еще одна статья в расходном бюджете софтверных компаний, которую мы пока не обсуждали. И у автора есть ощущение, что во многих случаях она гораздо больше стоимости разработки. Речь идет о маркетинговом бюджете. Как обычно, припомним нашу «притчу во языцех» — Microsoft. На сегодняшний момент гигантский и весьма профессиональный аппарат этой корпорации занят тем, что изо всех своих немалых сил убеждает людей, что WindowsXP — это именно то, о чем они мечтали. Вот на что идет достаточно большая часть сверхприбылей любой софтверной компании. Это тот механизм, который служит двум вещам: во-первых, увеличивает объемы продаж; а во-вторых, служит механизмом создания спроса.

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

Таким образом, автор осмеливается утверждать, что задача маркетинга — нагнетание истерии и создание спроса. Из которого получится прибыль, весомую (если не большую) часть которой опять вложат в маркетинг. Это позволяет сделать вывод, что этот рынок не только дикий, но еще и дутый. Попробуем пояснить это утверждение: с точки зрения автора, на рынке в нормальном состоянии не должно быть той постоянной истерии с покупкой новых версий, каковая существует сейчас. Для примера, возьмем автомобильный рынок — есть новые машины. Они дороги — но часть людей покупает именно их. Затем, когда они начинают ездить хуже — покупают новые. А часть людей, напротив, вполне удовлетворена подержанными автомобилями — и с удовольствием ими пользуется. Так что за новую программу вполне можно было бы платить только тем, кому она нужна. Тут многие готовы возразить автору — ведь это будет означать гибель рынка! Ну, это вряд ли. В самом деле, на рынке ежегодно продается почти 150 000 000 компьютеров — это достаточно внушительный и емкий рынок. Другое дело, что какое-то время удавалось заставлять людей тратить деньги на постоянное обновление софта. Теперь это будет удаваться все реже и реже — эйфория проходит, и покупатель понимает, что не так уж много нового он приобрел за свои деньги… Соответственно, объем этого рынка уменьшится (по оценкам автора) процентов на 40-60. А дальше будет расти достаточно медленно вместе с ростом количества продаваемых компьютеров.

В самом деле, есть ли необходимость в столь частом обновлении софта? Не зря Микрософт (как барометр в этой области) пытается перейти на модель аренды софта! Заставить людей купить новую версию становится все труднее и труднее — потому что практически все действительно необходимые им вещи уже давно реализованы. Для работы уже давно достаточно софта позапрошлого поколения на оборудовании такого же возраста. Осталась индустрия игр, практически единственная, в которой требования к оборудованию все еще растут. Но и это не навсегда. Цикл разработки новых игр становится все дольше и дольше, а качество их все падает и падает. Считаете, преувеличение? А сколько вы помните новых игр, которые нормально заработали сразу, без патчей и исправлений? Ведь не зря большинство современных игр уже добавляют механизмы обновлений прямо при установке их на компьютер. «…Мы тут выпустили патч — он наконец-то делает возможной игру у половины наших покупателей. Правда, после его установки Вы не сможете воспользоваться ранее сохраненными результатами — но зато теперь игрушка заработает как надо…» — в этой фразе есть легкое преувеличение, но скорее в тоне, нежели в содержании. Не правда ли?

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

Что из этого выйдет

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

Возможно, тебе, читатель, покажется, что автор крайне резок с программистами. Может, они его чем-то обидели? Да нет… Против самих программистов автор ничего не имеет — но его крайне раздражает тот результат, который получается из их работы. Вернее, раздражает, когда недоделанную работу пытаются продать, еще и рассказывая истории о гениальности строк кода и необходимости защиты авторских прав.

Кстати, возможно, еще одна причина состоит в том, что программисты, как никто другой, имеют возможность «подправить» работу позже. Это тоже играет свою роль в некоей «расхлябанности» этой профессии. В самом деле — врач, который неудачно провел операцию, водитель, который неправильно поехал, инженер, который ошибся в схеме — они после окончания работы мало что могут сделать, если ошиблись на ранних стадиях. Тогда как в данной области процветает совершенно «совковый» (в худшем смысле этого слова) метод программирования — «потом доделаем». До смешного доходит, однако: как-то ставили (при некотором участии автора) задачу перед фирмой-исполнителем, состоящей из программистов. Ну и что Вы думаете? Почти полгода пару раз в день они регулярно уточняли задание, приносили и запускали какие-то куски программы. Работа кипела… Трудности начались, когда стало ясно, что к сроку не успеваем — а 1С вроде вполне официально куплена, сопровождающая фирма — не кто-нибудь, а официально рекомендованный партнер… В результате более или менее работающий вариант получился только спустя год с четвертью. На вполне обоснованные претензии о невыдержанности срока автору отвечали — если, дескать, такой умный — пиши сам. Вначале от подобной наглости просто перехватило дыхание. В глазах потемнело, руки лихорадочно искали по столу какой-нибудь аргумент «потяжелее». Но потом автор задумался — дело ведь не в этих конкретных программистах (кстати, с несколькими другими фирмами автор также имел дело — впрочем, думаю, любой, кто когда-нибудь ставил себе лично 1С, автора поймет). Дело в самом принципе — на сегодняшний момент программистам проще не работать, чем работать ответственно. Автор не очень понимает, как это произошло, но результат — налицо.

Происходящее в отрасли все больше напоминает абсурд… Типичный пример — ICQ. Эта утилита стала популярной, потому что позволила людям относительно просто общаться. Однако год от году она становится все больше, монстрообразнее, «нафаршированнее». Я сомневаюсь, что найдутся люди, которым действительно необходима новая версия ICQ — например, у автора стоит версия трехлетней давности. И, знаете ли, работает. Лучше и стабильнее, кстати, чем свежая.

Кстати, с ней получилось забавно — большинство знакомых автора уверяют его, что его старая версия ICQ работать не может, ибо сменилась версия некоего протокола, по которому программа общается со своим сервером. Увы и ах, но программа у автора работает :-). Ему трудно это объяснить — не программист он — но работоспособность налицо. Так что осталось приложиться камушком к Mirabilis/AOL, которая поменяла протокол связи (вероятно, для того, чтобы была возможность демонстрировать банеры)..

Уголок пессимиста

Автор не призывает противиться прогрессу — это бессмысленно. И, естественно, какой бы ни была громоздкой Windows XP — она удобнее и стабильнее, чем Windows 3.11. Но очень хочется, чтобы программное обеспечение становилось лучше прежде всего в категории стабильности и надежности, а не в категории «красивостей». Вот только, боюсь, современная индустрия считает иначе. Более того — все прогнозы, которые может сделать автор, совершенно безрадостны.

Скорее всего, через некоторое время среднестатистический человек в США (мы, к счастью, отстаем), будет получать счета, где кроме счетов за свет, газ, воду, коммунальные услуги, связь и прочее — будет стоять счет за программное обеспечение. Этот вид торговли превратится в торговлю услугами — со всеми вытекающими отсюда последствиями вроде «неожиданно отключили Windows». Кстати, в те времена это слово оправдает своё название — эта операционная система действительно превратится в окно в мир. И еще неизвестно, что будет дороже — посмотреть на знакомого и поговорить с ним с помощью Windows или сходить к нему в гости лично…

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

P.S. Microsoft ничего плохого автору не сделала — просто, как у любого лидера в своей области, именно ее действия часто служат основой для далеко идущих выводов.

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

Дополнение

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

  1. В большей части статьи автор употребляет слово …программисты…, хотя более корректным было бы употреблять слово …фирмы — производители софта…. Хотя последняя формулировка не совсем то, что первоначально имел в виду автор — в силу требования соблюдать политкорректность (да и просто вежливость) прошу читать вместо слова …программист… словосочетание …фирма — производитель софта…. Попутно автор приносит извинения за первоначальную, не совсем корректную формулировку, всем, кого она обидела. К сожалению, ни первая, ни вторая формулировка не передают необходимых автору оттенков:.
  2. Достаточно неуклюже автор выразился здесь: дело в том, что за 30 лет существования этой профессии ничего нового в идеологии и методологии программирования не придумано. Из-за неудачной формулировки потерялся смысл предложения. По настоящему его необходимо воспринимать вот как: за последние тридцать лет, несмотря на появление новых инструментов и методов программирования, не изменилось главное — по прежнему пользователь получает …сырой… продукт без каких-либо гарантий. Соответственно, следующее предложение (навалимся кучей и сделаем) тоже теряет смысл.
  3. Автору привели убедительные доводы невозможности корректно доказать величину ущерба от применения софта с ошибками. Соответственно, требование …оплатить ущерб… автор, в силу вышесказанного, заменяет требованием вернуть стоимость софта (в случае доказательства существования ошибки). Это гораздо менее жесткое требование по отношению к производителям софта.
  4. Необходимо также, по мысли автора, законодательно обязать производителей открыть формат файлов. Это необходимо для того, чтобы потенциальные конкуренты могли пользоваться данным форматом, таким образом создавая рыночную борьбу. Также открытый формат файлов позволит перенести данные пользователя в случае отказа от той или иной программы.
  5. Кроме того, отношения между покупателем и производителем должны подпадать под действие закона о защите прав потребителей, что потребует модификации текущего грабительского и бесчестного лицензионного соглашения. Ибо на сегодняшний день лицензионное соглашение фактически отменяет понятие гарантии, делая процесс покупки софта необратимым, а пользователя — полностью незащищенным перед производителем.

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

В свою очередь, лицензионное соглашение перед статьей является примером того отношения, которое видят пользователи. Сомневаюсь, чтобы оно кому-то понравилось — но при его составлении автор использовал настоящее лицензионное соглашение. И поверь, читатель — там есть еще более наглые и бескомпромиссные участки. Ибо требование заплатить денег, не давая никаких гарантий бесперебойной работы, и никаких гарантий возврата денег, лично автор воспринимает как наглость. Кстати, пользователь тоже в ней виноват — необходимо было присматриваться к такой практике раньше, не разрешая производителю подобные …вольности…:

Естественно, многие оппоненты возразят — не нравится, не покупай. Как бы не так! Реально большой конкуренции на рынке софта нет — соответственно, часто и выбора не стоит. А соглашение перед статьей наглядно демонстрирует, какое отношение бытует к пользователю в данный момент.

Есть еще один момент, на котором бы хотелось остановиться. Многие задают вопрос — а как же Open Source? А никак — к нему автор никаких возражений не имеет. Ибо ему ничего не гарантируют — но и денег не берут. Автора устраивает справедливость вот какого плана: берете деньги — должна быть финансовая ответственность. Не берете — никакой ответственности, ибо пользователю этот продукт ничего не стоил. А подарки критиковать не принято. А вот покупки — очень даже.

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

И, учитывая, что мнения читателей разделились весьма резко, автор просил бы всех читателей выразить свое мнение, ответив на пару вопросов: (анкета).





Дополнительно

«Искусство» программирования, или Гимн безответственности

«Искусство» программирования, или Гимн безответственности



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



«…ложь Змея-Искусителя была не в том,
что он предложил человеку отведать яблока познания.
Перед этим он солгал, сказав, что думать — приятно…»

Шальная мысль

Вместо предисловия

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

Давайте взглянем, например, как изменилось сегодняшнее аппаратное обеспечение. Современные процессоры берут барьер в 2 ГГц, а объем памяти в 1 ГБ уже не является чем-то экстраординарным даже для домашних систем — так хотелось бы и вторую составляющую компьютера видеть на «уровне». Ведь действительно, где обещанная революция в программном обеспечении? Почему я не могу управлять своим компьютером при помощи голоса? Почему он до сих пор не узнает меня в лицо? Ради чего я несколько минут должен ждать загрузки операционной системы? Да за это время та ценная мысль, которая заставила меня к нему подсесть, может улетучиться. А главное: до каких пор работу операционной системы будут преследовать сбои? Вообще, ситуация была бы смешной, если бы не была такой грустной… Компьютеры движутся вперед семимильными шагами. Из этих семи миль за шаг шесть миль принадлежит производителям аппаратного обеспечения, и только одна миля (да и то, не каждый шаг, и не всегда вперед) — производителям софта.

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

В самом деле: врач своей репутацией отвечает за больного. Несет свою меру ответственности шофер, пекарь, милиционер. Будет наказана фирма, выпустившая неработающее (или работающее плохо) устройство. В конце концов, некоторые фирмы, выпустившие процессоры с ошибками, отзывают их обратно. А в области программного обеспечения — тишь, гладь, да божья благодать. «…Ни при каких условиях авторы программы не несут явной, подразумеваемой, финансовой, уголовной или какой-либо другой ответственности за возможные ошибки в работе программы…» — интересно, а за что же отвечают авторы этой программы? Вы себе представляете подобную надпись на борту самолета? Когда авиакомпания не ручается, что Вы долетите? А на лекарстве надпись примерно такого содержания: «Фирма-производитель не гарантирует безвредности данного лекарства и ни при каких условиях не несет ответственности за Ваше здоровье»? Глупо, правда? А вот на рынке программ это почему-то обычное условие распространения. Стоп — но ведь программист тоже отвечает репутацией? Отвечает. Но практически никогда не отвечает деньгами — и в этом вся разница. Тогда как в любой другой области — производитель отвечает за качество как репутацией, так и деньгами.

Многие говорят — подождите, но ведь программисты вкладывают свой труд, а, значит, должны зарабатывать деньги! Да ради Бога! Только вот покупатель тоже вкладывает свой труд. Потому что деньги покупателя — это деньги, которые платят за труд покупателю. И с этой точки зрения нет никакой разумной причины, почему за собственные деньги покупатель покупает, извините, «гембель». Я не говорю сейчас о случае, когда человек покупает компьютер, не умея им пользоваться — в этом он берет ответственность на себя. В большинстве случаев люди все-таки знают, зачем именно они покупают компьютер. Но подождите, почему купленная мною вещь не работает нормально? Почему время от времени я должен иметь дело с «компьютерными гуру», которые будут «шаманить» над моим системным блоком? Почему вообще одна программа может некорректно работать с другой, если за обе плачены деньги? Здесь, однако, надо признать, что подобный подход процветает не только в программировании — скорее подобная «забота» о пользователе наличествует во всей индустрии, связанной с производством услуг и нематериальных ценностей. Но не будем уподобляться Дон Кихоту и не станем искоренять абсолютно все недостатки этого мира :-) — ограничимся программированием.

Однако давайте не передергивать. Если программы всесторонне проверять — они будут стоить других денег и выходить гораздо дольше.

«Другие» деньги

Вопрос стоимости софта, кстати, весьма интересен. Общепринятая точка зрения гласит, что если разрабатывать софт надежным — это потребует совсем других денег. Безусловно, тщательная проверка софта будет стоить дороже, чем нынешняя. Однако неизбежно всплывает другой вопрос, весьма нелегкий — себестоимости софта. Дело в том, что сейчас при продаже программного обеспечения применяется тот же подход, что и при продаже, например, пирожков. То есть в себестоимость пирожка должна входить стоимость муки, дрожжей, начинки. Кроме этого, необходимо учесть еще необходимость оплаты труда пекарей, стоимость аренды пекарни, стоимость транспортных перевозок, и, наконец, стоимость рекламы этих самых пирожков. Вроде приблизительно так. Естественно, по ходу дела могут добавляться еще расходы — вышеперечисленные просто самые распространенные. Ну что же — посмотрим, что у нас с программным обеспечением. Что у нас за «пекарня» в этом случае? Нам нужен офис, компьютеры, программное обеспечение для создания программ. Нужна оплата труда программистов. Естественно, каких-то денег это стоит. И немалых. Полученная сумма и будет определять себестоимость — наряду с расходами на производство носителей и транспортными расходами. Вроде все сходится… Значит, в стоимости каждой копии программного обеспечения заложена стоимость его создания. Логично, черт побери! СТОП! Логично, да не совсем. В стоимости каждого пирожка сидит стоимость производства именно этого пирожка. Тогда как в стоимости программного обеспечения сидит часть стоимости однократного создания программы.

Попробуем на примерах: итак, есть какая-нибудь условная программа, создание которой стоило, к примеру, миллион долларов. Фирма рассчитывает продать за год, например, 20 000 копий программы — соответственно, на каждую копию придется по 50 долларов, которые пойдут на покрытие расходов на создание программы. Еще немного надо добавить на производство и транспортировку, и неизвестное пока количество денег на рекламу программы. Вроде все так. Но что произойдет дальше? А дальше все гораздо интереснее — прошел год, и фирма — производитель великолепно справилась с поставленной задачей. К концу года было реализовано, к примеру, 32 000 копий программы по 75 долларов (при суммарной себестоимости в 60 долларов). Это принесло фирме приблизительно 480 000 прибыли — что весьма неплохо. Начался второй год. За первую его половину было продано 11 000 копий. Однако бухгалтерия фирмы показывает прибыль не 165 000 долларов, как мы могли бы подумать. Отнюдь — все гораздо приятнее. Прибыль составила 715 000 долларов. Абсурд?! Отнюдь! Читатель, вглядись внимательно в то, из чего складывается себестоимость! Она большей частью складывается из стоимости разработки. Но ведь за первый год это самая стоимость разработки уже с лихвой была возвращена — и потому во второй год из 60 долларов себестоимости у нас осталось только 10. Кстати, на самом деле, и производство, и транспортировка, и реклама уже известной покупателю продукции со временем становятся дешевле — но не будем мелочиться. И потому при цене 75 долларов в первый год фирма зарабатывала «только» 15 долларов с копии — а во второй год уже 65. И так далее…

Сага о пиратстве

Именно этим и отличается любое производство, скажем так, материальных продуктов, от производства программ. То, из чего состоит пирожок — само по себе имеет некоторую материальную ценность (мука, сахар, дрожжи, антиоксиданты и прочее). А вот то, из чего «состоит» программа — единицы и нули — стоимости не имеет. Денег стоит только носитель программы.

Проиллюстрировать эту идею можно вот чем. Давайте припомним Англию, «Владычицу морей», и поставки пряностей из Индии. Помните, с какой главной проблемой столкнулись купцы — перевозчики пряностей? Вот именно! Погода? Отнюдь! Дальнее плавание? Не страшно! Пиратство. Именно пиратство было бичом божьим для купцов, которые получали баснословные прибыли. Что же заставляло пиратов идти на немалый риск для жизни? Ведь суда с пряностями часто сопровождались военными кораблями, и не так уж легко было отобрать эти драгоценные пряности. Имя этой причины — прибыль. Вернее, не так: сверхприбыль. Размеры прибыли от торговли пряностями были настолько велики, что даже риск гибели пирата или драгоценного груза, а затем необходимость быстро продавать груз по сниженной цене никого не останавливали — делалось все возможное, чтобы захватить пряности любой ценой. И, кстати, никакие действия Адмиралтейства Её Величества ничего не могли поделать с этой бедой, пока не исчезла сама причина возникновения пиратства — со временем стоимость пряностей снижалась. Вместе с ней снижалась прибыль. И в один момент потенциальная прибыль перестала перекрывать риск заниматься пиратством. И вчерашние пираты стали вполне респектабельными купцами (кстати, известны случаи, когда купцы подкладывали «козу» друг другу, отбирая у конкурентов груз). Таким образом, пиратство существует там, где есть сверхприбыли. И наоборот, там, где прибыль относительно мала — пиратство невыгодно. И, соответственно, отсутствует. Этот вывод, кстати, принадлежит отнюдь не автору — существует весьма интересный труд (к сожалению, в данный момент автор не может указать источник этой мысли) на эту тему, в котором и был сделан этот вывод. Мы же только пользуемся этим выводом.

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

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

Однако пиратство как явление — гораздо более сложный процесс. Дело в том, что в вышеуказанном смысле пиратство — индикатор сверхприбыли. Пиратство, как уже показано выше, возникает там, и только там, где прибыль намного больше стоимости разработки продукта. И неудивительно, что один из главных «пострадавших» от рук пиратов — компания Microsoft. И опять же неудивительно, что именно эта корпорация активнее всех выступает против пиратов — вплоть до проведения совместных рейдов с правоохранительными органами. Кстати, в этом вопросе даже злейшие конкуренты согласны с Microsoft. Ну что же — понять их можно. Ведь пираты — это недополученная прибыль, более низкие уровни продаж. Это меньше денег. Ну кому это может понравиться?

Однако, господа, еще одна тонкость состоит в том, что сверхприбыли в условиях свободного рынка возможны только в случае монополизации рынка. Только в том случае, когда некая компания диктует цены, она имеет возможность получать от своей деятельности сверхприбыль. Во всех остальных случаях наличие высокой нормы прибыли тут же стимулирует конкурентов к выходу на данный, высокодоходный рынок. И здесь автор имеет в виду отнюдь не только Microsoft — нет уж, одного виноватого не будет. Весь рынок программного обеспечения является областью действия пиратов. Соответственно, вне зависимости от того, есть формально конкуренты или нет — все компании, занимающиеся софтом, являются в некотором смысле монополистами. Хотя бы потому, что понятие конкуренции в мире софта успешно сведено производителями программного обеспечения на нет. Если конкуренции на этом рынке нет — тому есть веские причины. По мысли автора, основным тормозом реальной конкуренции на этом рынке является не что иное, как возможность патентовать формат данных в файлах. Редкая ирония судьбы — идея патента, стоящая на страже каждого автора какой бы то ни было идеи, в данный момент становится основным тормозом развития рынка. Думаю, каждый читатель припомнит не одно судебное разбирательство по поводу того или иного продукта… Сюда же относятся уже не единичные судебные процессы между фирмами-производителями софта по поводу формата файлов. Впрочем, это тема отдельного разговора. Поясним эту мысль подробнее: внешне все очень мило и пристойно — практически в каждой области есть несколько конкурирующих продуктов. Но задумайтесь, почему все графические редакторы сохраняют Вашу работу в файлах разных форматов, невзирая на то, что принципы кодирования информации практически везде одни и те же? Да, формально Corel Photo Paint — конкурент Adobe Photoshop. Но почему тогда не совпадают форматы данных? Почему покупатель практически насильственным образом (да еще и под циничные песни о преимуществах и усовершенствованиях) привязывается к данному форма ту данных? Почему каждая следующая версия программы использует новый формат? Неужели нельзя сделать формат с «запасом», чтобы не менять его каждый раз? Полноте! Автор категорически отказывается в это верить… Хотя бы потому, что Microsoft успешно реализовала практически полную совместимость форматов данных Microsoft Word всех последних версий. И не только сверху вниз, что относительно легко — а и наоборот. Документы, сделанные в более поздней версии, практически без проблем открываются более ранними версиями программы (естественно, некоторые нюансы, особенно касающиеся макросов, остаются; но главное в том, что, по крайней мере, свой текст пользователь получит) Если подобное сравнение режет глаз — вот другое: PageMaker/InDesign от Adobe и QuarkXPress. Хотя там все намного лучше — из-за вынужденной поддержки однотипного оборудования (ну нет другого) производители действительно являются конкурентами в этой области, и версии программ меняются гораздо реже. Отнюдь! Практически все программы сделаны так, чтобы в каждой из них было удобнее выполнять отличную от других последовательность действий. Естественно, это все подается под соусом удобства для пользователей — но не будем наивными. Настоящая причина, по мысли автора — желание зарабатывать деньги. Естественно, это не единственная причина — но одна из движущих. Представим себе, что каждый автомобиль надо водить своим, оригинальным способом — абсурд, не правда ли? И крайне неудобно. Однако именно эту ситуацию производители программного обеспечения преподносят, как заботу о каждом пользователе! Вот водители вряд ли обрадуются предложению сделать у каждой машины уникальное управление. И правильно — потому что все необходимые для вождения характеристики машины стандартизованы. И это есть единственно правильный выход! В мелочах каждый производитель автомобиля старается отличиться — слава богу! Именно поэтому каждый выбирает свою машину — но каждый при этом уверен, что она проедет по обычной дороге и будет работать на обычном топливе. Именно это не дает производителям автомобилей бесконтрольно поднимать цены — на этом рынке есть реальная конкуренция. На рынке программного обеспечения ее нет.

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

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

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

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

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

А был ли мальчик?

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

Так что со стоимостью программного обеспечения вопрос крайне сложный. Равно как и с наличием «конкуренции» на рынке софта. С этой точки зрения совершенно непонятно, куда же смотрит «главный полицейский планеты» в области антимонопольного законодательства — США (автор подчеркивает еще раз — никаких личных претензий он к США пока не имеет. По крайней мере, активное участие США в любых международных событиях и их заявления о том, что область их интересов — вся планета, заставляют сделать именно такое заключение)? Хотя там и идет вялотекущий процесс против Microsoft… С ним тоже забавно — ведь понятно, что Microsoft — монополист. Так уж вышло. Но вот как-то принимать меры к компании, которая приносит США такое количество денег — рука не подымается. Да и принятия мер громче всех просят конкуренты, у которых у самих «рыльце в пушку». Не говоря уже о том, что свое будущее США связывают с лидерством именно в информационных технологиях. В общем, забавно наблюдать борьбу жадности с еще большей жадностью. :-)

Однако есть еще одна статья в расходном бюджете софтверных компаний, которую мы пока не обсуждали. И у автора есть ощущение, что во многих случаях она гораздо больше стоимости разработки. Речь идет о маркетинговом бюджете. Как обычно, припомним нашу «притчу во языцех» — Microsoft. На сегодняшний момент гигантский и весьма профессиональный аппарат этой корпорации занят тем, что изо всех своих немалых сил убеждает людей, что WindowsXP — это именно то, о чем они мечтали. Вот на что идет достаточно большая часть сверхприбылей любой софтверной компании. Это тот механизм, который служит двум вещам: во-первых, увеличивает объемы продаж; а во-вторых, служит механизмом создания спроса.

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

Таким образом, автор осмеливается утверждать, что задача маркетинга — нагнетание истерии и создание спроса. Из которого получится прибыль, весомую (если не большую) часть которой опять вложат в маркетинг. Это позволяет сделать вывод, что этот рынок не только дикий, но еще и дутый. Попробуем пояснить это утверждение: с точки зрения автора, на рынке в нормальном состоянии не должно быть той постоянной истерии с покупкой новых версий, каковая существует сейчас. Для примера, возьмем автомобильный рынок — есть новые машины. Они дороги — но часть людей покупает именно их. Затем, когда они начинают ездить хуже — покупают новые. А часть людей, напротив, вполне удовлетворена подержанными автомобилями — и с удовольствием ими пользуется. Так что за новую программу вполне можно было бы платить только тем, кому она нужна. Тут многие готовы возразить автору — ведь это будет означать гибель рынка! Ну, это вряд ли. В самом деле, на рынке ежегодно продается почти 150 000 000 компьютеров — это достаточно внушительный и емкий рынок. Другое дело, что какое-то время удавалось заставлять людей тратить деньги на постоянное обновление софта. Теперь это будет удаваться все реже и реже — эйфория проходит, и покупатель понимает, что не так уж много нового он приобрел за свои деньги… Соответственно, объем этого рынка уменьшится (по оценкам автора) процентов на 40-60. А дальше будет расти достаточно медленно вместе с ростом количества продаваемых компьютеров.

В самом деле, есть ли необходимость в столь частом обновлении софта? Не зря Микрософт (как барометр в этой области) пытается перейти на модель аренды софта! Заставить людей купить новую версию становится все труднее и труднее — потому что практически все действительно необходимые им вещи уже давно реализованы. Для работы уже давно достаточно софта позапрошлого поколения на оборудовании такого же возраста. Осталась индустрия игр, практически единственная, в которой требования к оборудованию все еще растут. Но и это не навсегда. Цикл разработки новых игр становится все дольше и дольше, а качество их все падает и падает. Считаете, преувеличение? А сколько вы помните новых игр, которые нормально заработали сразу, без патчей и исправлений? Ведь не зря большинство современных игр уже добавляют механизмы обновлений прямо при установке их на компьютер. «…Мы тут выпустили патч — он наконец-то делает возможной игру у половины наших покупателей. Правда, после его установки Вы не сможете воспользоваться ранее сохраненными результатами — но зато теперь игрушка заработает как надо…» — в этой фразе есть легкое преувеличение, но скорее в тоне, нежели в содержании. Не правда ли?

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

Что из этого выйдет

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

Возможно, тебе, читатель, покажется, что автор крайне резок с программистами. Может, они его чем-то обидели? Да нет… Против самих программистов автор ничего не имеет — но его крайне раздражает тот результат, который получается из их работы. Вернее, раздражает, когда недоделанную работу пытаются продать, еще и рассказывая истории о гениальности строк кода и необходимости защиты авторских прав.

Кстати, возможно, еще одна причина состоит в том, что программисты, как никто другой, имеют возможность «подправить» работу позже. Это тоже играет свою роль в некоей «расхлябанности» этой профессии. В самом деле — врач, который неудачно провел операцию, водитель, который неправильно поехал, инженер, который ошибся в схеме — они после окончания работы мало что могут сделать, если ошиблись на ранних стадиях. Тогда как в данной области процветает совершенно «совковый» (в худшем смысле этого слова) метод программирования — «потом доделаем». До смешного доходит, однако: как-то ставили (при некотором участии автора) задачу перед фирмой-исполнителем, состоящей из программистов. Ну и что Вы думаете? Почти полгода пару раз в день они регулярно уточняли задание, приносили и запускали какие-то куски программы. Работа кипела… Трудности начались, когда стало ясно, что к сроку не успеваем — а 1С вроде вполне официально куплена, сопровождающая фирма — не кто-нибудь, а официально рекомендованный партнер… В результате более или менее работающий вариант получился только спустя год с четвертью. На вполне обоснованные претензии о невыдержанности срока автору отвечали — если, дескать, такой умный — пиши сам. Вначале от подобной наглости просто перехватило дыхание. В глазах потемнело, руки лихорадочно искали по столу какой-нибудь аргумент «потяжелее». Но потом автор задумался — дело ведь не в этих конкретных программистах (кстати, с несколькими другими фирмами автор также имел дело — впрочем, думаю, любой, кто когда-нибудь ставил себе лично 1С, автора поймет). Дело в самом принципе — на сегодняшний момент программистам проще не работать, чем работать ответственно. Автор не очень понимает, как это произошло, но результат — налицо.

Происходящее в отрасли все больше напоминает абсурд… Типичный пример — ICQ. Эта утилита стала популярной, потому что позволила людям относительно просто общаться. Однако год от году она становится все больше, монстрообразнее, «нафаршированнее». Я сомневаюсь, что найдутся люди, которым действительно необходима новая версия ICQ — например, у автора стоит версия трехлетней давности. И, знаете ли, работает. Лучше и стабильнее, кстати, чем свежая.

Кстати, с ней получилось забавно — большинство знакомых автора уверяют его, что его старая версия ICQ работать не может, ибо сменилась версия некоего протокола, по которому программа общается со своим сервером. Увы и ах, но программа у автора работает :-). Ему трудно это объяснить — не программист он — но работоспособность налицо. Так что осталось приложиться камушком к Mirabilis/AOL, которая поменяла протокол связи (вероятно, для того, чтобы была возможность демонстрировать банеры)..

Уголок пессимиста

Автор не призывает противиться прогрессу — это бессмысленно. И, естественно, какой бы ни была громоздкой Windows XP — она удобнее и стабильнее, чем Windows 3.11. Но очень хочется, чтобы программное обеспечение становилось лучше прежде всего в категории стабильности и надежности, а не в категории «красивостей». Вот только, боюсь, современная индустрия считает иначе. Более того — все прогнозы, которые может сделать автор, совершенно безрадостны.

Скорее всего, через некоторое время среднестатистический человек в США (мы, к счастью, отстаем), будет получать счета, где кроме счетов за свет, газ, воду, коммунальные услуги, связь и прочее — будет стоять счет за программное обеспечение. Этот вид торговли превратится в торговлю услугами — со всеми вытекающими отсюда последствиями вроде «неожиданно отключили Windows». Кстати, в те времена это слово оправдает своё название — эта операционная система действительно превратится в окно в мир. И еще неизвестно, что будет дороже — посмотреть на знакомого и поговорить с ним с помощью Windows или сходить к нему в гости лично…

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

P.S. Microsoft ничего плохого автору не сделала — просто, как у любого лидера в своей области, именно ее действия часто служат основой для далеко идущих выводов.

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

Дополнение

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

  1. В большей части статьи автор употребляет слово …программисты…, хотя более корректным было бы употреблять слово …фирмы — производители софта…. Хотя последняя формулировка не совсем то, что первоначально имел в виду автор — в силу требования соблюдать политкорректность (да и просто вежливость) прошу читать вместо слова …программист… словосочетание …фирма — производитель софта…. Попутно автор приносит извинения за первоначальную, не совсем корректную формулировку, всем, кого она обидела. К сожалению, ни первая, ни вторая формулировка не передают необходимых автору оттенков:.
  2. Достаточно неуклюже автор выразился здесь: дело в том, что за 30 лет существования этой профессии ничего нового в идеологии и методологии программирования не придумано. Из-за неудачной формулировки потерялся смысл предложения. По настоящему его необходимо воспринимать вот как: за последние тридцать лет, несмотря на появление новых инструментов и методов программирования, не изменилось главное — по прежнему пользователь получает …сырой… продукт без каких-либо гарантий. Соответственно, следующее предложение (навалимся кучей и сделаем) тоже теряет смысл.
  3. Автору привели убедительные доводы невозможности корректно доказать величину ущерба от применения софта с ошибками. Соответственно, требование …оплатить ущерб… автор, в силу вышесказанного, заменяет требованием вернуть стоимость софта (в случае доказательства существования ошибки). Это гораздо менее жесткое требование по отношению к производителям софта.
  4. Необходимо также, по мысли автора, законодательно обязать производителей открыть формат файлов. Это необходимо для того, чтобы потенциальные конкуренты могли пользоваться данным форматом, таким образом создавая рыночную борьбу. Также открытый формат файлов позволит перенести данные пользователя в случае отказа от той или иной программы.
  5. Кроме того, отношения между покупателем и производителем должны подпадать под действие закона о защите прав потребителей, что потребует модификации текущего грабительского и бесчестного лицензионного соглашения. Ибо на сегодняшний день лицензионное соглашение фактически отменяет понятие гарантии, делая процесс покупки софта необратимым, а пользователя — полностью незащищенным перед производителем.

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

В свою очередь, лицензионное соглашение перед статьей является примером того отношения, которое видят пользователи. Сомневаюсь, чтобы оно кому-то понравилось — но при его составлении автор использовал настоящее лицензионное соглашение. И поверь, читатель — там есть еще более наглые и бескомпромиссные участки. Ибо требование заплатить денег, не давая никаких гарантий бесперебойной работы, и никаких гарантий возврата денег, лично автор воспринимает как наглость. Кстати, пользователь тоже в ней виноват — необходимо было присматриваться к такой практике раньше, не разрешая производителю подобные …вольности…:

Естественно, многие оппоненты возразят — не нравится, не покупай. Как бы не так! Реально большой конкуренции на рынке софта нет — соответственно, часто и выбора не стоит. А соглашение перед статьей наглядно демонстрирует, какое отношение бытует к пользователю в данный момент.

Есть еще один момент, на котором бы хотелось остановиться. Многие задают вопрос — а как же Open Source? А никак — к нему автор никаких возражений не имеет. Ибо ему ничего не гарантируют — но и денег не берут. Автора устраивает справедливость вот какого плана: берете деньги — должна быть финансовая ответственность. Не берете — никакой ответственности, ибо пользователю этот продукт ничего не стоил. А подарки критиковать не принято. А вот покупки — очень даже.

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

И, учитывая, что мнения читателей разделились весьма резко, автор просил бы всех читателей выразить свое мнение, ответив на пару вопросов: (анкета).