Стратегические заметки II: Вопрос о курице и яйце

From The Joel on Software Translation Project

Jump to: navigation, search

Автор: Джоэл Сполски
Переводчик: Борис Надион
Редактор: Любовь Абрамова
24 мая 2000 Оригинал: Strategy Letter II: Chicken and Egg Problems

Смысл рекламы - это лгать, но не быть пойманным. Большинство организаций, начиная рекламную кампанию, просто берут самую неприглядную правду про свою организацию, переворачивают все вверх тормашками ("лгут") и впихивают это потребителю. Давайте назовем это "доказательством путём (многократного) повторения утверждения". Например, полет на самолете неудобен из-за необходимости пребывания в замкнутом пространстве, а служащие авиакомпаний грубы и неприятны, да и на самом деле вся система коммерческих перелетов специально задумана как средство пыток. Поэтому почти все заявления авиакомпаний будут о том, как удобно и приятно летать, и как вас будут баловать практически на каждом шагу. Когда "Британские авиалинии" (British airways) показали ролик с бизнесменом в кресле самолета, который воображал себя ребенком в коляске, весь здравый смысл улетучился навсегда.

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

Когда впервые появился Macintosh, не было никакого доступного софта для него. Тогда Apple, конечно, создала огромный глянцевый каталог, описывающий прекрасное программное обеспечение, которое было "доступно". Половина пунктов списка мелким шрифтом сообщала: "в разработке", другую же половину было невозможно заполучить ни за какие коврижки. А некоторые продукты были настолько отстойные, что их никто бы и не купил вообще. Но даже наличие толстенного глянцевого каталога, на каждой странице которого пылающей прозой был описан отдельный "программный продукт", не могло скрыть тот факт, что вы просто не можете купить текстовый редактор или электронную таблицу для своего 128KB Macintosh. Существовали аналогичные "каталоги программного обеспечения" для NeXT и BeOS. (Для фанатов NeXT и BeOS: я не собираюсь пылко обсуждать ваши ничтожные операционные системы, ладно? Пишите свои собственные статьи.) Всё, о чём говорят такие каталоги ПО - это то, что не существует ПО для этой системы. Когда вы увидите одно из этих чудовищ, бегите в другую сторону.

Amiga, Atari ST, Gem, IBM TopView, NeXT, BeOS, Windows CE, General Magic - это постоянно растущий список "новых платформ", которые провалились. И это произошло потому, что они - платформы, а, по определению, платформы не интересны сами по себе, без стОящих программ, которые бы было можно на этих платформах запускать. Но, за небольшим исключением (я уверен, что получу целую тучу писем от занудных сторонников загадочных и непопулярных платформ типа Amiga и RSTS-11), ни один разработчик программного обеспечения с минимумом здравого смысла не будет намеренно писать софт для платформ с сотней тысяч пользователей в лучшие времена, типа BeOS, когда он может при том же объеме работ создавать программы для платформ с сотней миллионов пользователей, типа Windows. То, что кто-то вообще пишет софт для этих экзотических систем, ещё раз доказывает, что прибыль - это ещё не всё: религиозный фанатизм всё ещё существует. Как это мило с твоей стороны, дорогой, ты написал симпатичный microEmacs клон для Timex Sinclair 1000. Молодец, возьми с полки пирожок!

Итак, если вы в бизнесе, связанном с разработкой платформ, то, вероятно, вы страдаете от того, что общеизвестно как вопрос о курице и яйце. Никто не станет покупать вашу платформу, пока для нее не будет хорошего программного обеспечения, и никто не станет его писать, пока нет большого количества уже работающих программ. Опа! Это напоминает Гордиев узел, хотя более правильным термином была бы Гордиева спираль смерти.

Вопрос о курице и яйце, а также его вариации - это самый важный элемент стратегии, который нужно понять. Ну ладно, вы можете прожить и без понимания: Стив Джобс (Steve Jobs) практически сделал карьеру на непонимании вопроса о курице и яйце, дважды. Но остальные из нас не имеют в своем распоряжении Личную Систему Искажения Реальности Стива Джобса, поэтому нам придется взяться за работу и тяжело учиться.

Урок первый. Классическая сфера существования вопроса о курице и яйце - программные платформы. Но вот другая аналогичная проблема: каждый месяц кредитные компании отправляют миллионам клиентов миллиарды счетов по почте. Люди выписывают бумажные чеки, вкладывают их в триллионы конвертов и отправляют обратно. Конверты складываются в большие коробки и переправляются в страны с дешевой рабочей силой, где эти коробки открывают, а их содержимое сортируют. Конечная же цена всей этой операции не велика: последняя цифра, которую я слышал, - $1 за чек.

Для нас, ребят, знающих об интернете, это просто какой-то прикол. "Отправьте мне счет по email", - скажете вы и добавите: "Я оплачу его по сети". Вы скажете: "Это будет стоить, допустим, одну стотысячную цента, вы же сэкономите миллионы", - ну или что-то в этом роде.

И вы правы. Множество компаний пыталось внедриться в эту отрасль, технически известную как Bill Presentment (выставление счетов). Один пример (угадайте кто) - Microsoft. Решение от Microsoft называется TransPoint, выглядит это так: веб сайт. Вы туда идете, он показывает ваши счета, вы их оплачиваете.

Итак, если вы получаете свои счета по этой системе от Microsoft, вам необходимо посещать свою страничку каждые несколько дней, чтобы посмотреть, какие счета появились, и вы не пропустите ничего. Если вы получаете, например, 10 счетов в месяц, то никакого особого препятствия пока нет. Здесь есть другая проблема - существует крайне ограниченное количество организаций, которые будут выставлять вам счета через эту систему. Т.е. для оплаты всех остальных приходящих счетов придется податься куда-нибудь ещё.

Конечный результат? Оно того не стоит. Я бы удивился, если бы узнал, что 10 000 человек пользуются этой системой в настоящее время. Сейчас Microsoft должен пойти по организациям и сказать: "Высылайте клиентам счета через нашу систему!". А организации ответят: "Хорошо, сколько это будет стоить?", на что Microsoft скажет: "50 центов! Но это ж намного дешевле одного доллара!". А организации спросят: "Хорошо, может что-то еще?", а Microsoft ответит: "Ах да! Это вам обойдется еще примерно в $250 000 - нужно установить программное обеспечение, подключить наши системы к вашим и заставить это все заработать".

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

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

Большинство людей считают, что для IBM-PC нужен PC-DOS. Это не так. Когда появился IBM-PC, у вас был выбор между тремя операционными системами: PC-DOS, XENIX (скучнейшая 8-ми битная версия UNIX изданная, и я этого не придумываю, Microsoft), и что-то под именем UCSD P-System, которое было, только представьте, как Java: красивое, медленное, с переносимым исполняемым кодом, примерно за 20 лет до Java.

Сейчас большинство людей никогда не слышало про XENIX или извращенский UCSD. Вы, детки, сейчас, наверное, думаете, что это потому, что Microsoft завладел рынком привлекательных операционных систем посредством силы маркетинга или что-то типа этого. Совершенно не верно, Microsoft тогда был крошечным. Компанией с сильным маркетингом тех дней была Digital Research, у которой была другая операционная система. Так почему же PC-DOS выиграл эту гонку?

До PC единственной доступной настоящей ОС была CP/M, хотя рынок работающих под CP/M компьютеров, которые стоили около $10 000, был очень маленький. Они были слабыми и дорогостоящими, да и не очень дружественными к пользователю. Но те, кто их покупал, делали это для того, чтобы использовать их как текстовые редакторы, потому что можно было заполучить достаточно неплохой текстовый редактор WordStar для вашего CP/M, а Apple II просто не мог использоваться в этом качестве (начнем с того, что у него не было символов в нижнем регистре).

Теперь небольшой известный факт: даже DOS 1.0 был разработан с встроенной обратной поддержкой CP/M. DOS не просто имел новый первоклассный программный интерфейс (programming interface), известный некоторым программистам как INT 21 (прим. пер.: большинство системных вызовов в DOS делалось через 21-ое прерывание, командой ассемблера INT 21), но и полностью поддерживал старый программный интерфейс CP/M. Под DOS почти могли работать программы для CP/M. Кстати, WordStar перенесли под DOS, изменив один единственный байт кода. (Настоящие программисты скажут, что это был за байт, я уже давно забыл).

Это стоит того, чтобы написать еще раз. WordStar перенесли под DOS, изменив один единственный байт кода. Давайте вникнем в это.

Вот здесь.

Получилось?

DOS был популярным потому, что для него был софт с самого первого дня существования. И для него был софт потому, что Тим Пэтерсон (Tim Paterson) подумал включить поддержку CP/M. Потому, что в эти темные времена кто-то был достаточно умен, чтобы понимать в вопросах о курице и яйце.

Прокрутим вперед. Во всей истории платформы PC, были только два примера серьёзных смен платформы, коснувшиеся почти всех пользователей: мы все переключились на Windows 3.x, а потом мы все переключились на Windows 95. Только небольшое количество людей за всё время переключились на что-то другое. Заговор Microsoft с целью захвата мира? Хорошо, думайте так. Я думаю иначе, есть другая, более интересная причина, которая приводит нас обратно к курицам и яйцам.

Мы все перешли на Windows 3.x. Важный момент в этом предложении - это цифра 3. Почему не на Windows 1.0? Или Windows 2.0? Или Windows 286 и Windows 386, которые были следом? Это потому, что у Microsoft заняло 5 релизов "сделать это правильно"? Нет.

Подлинная причина едва различима, она основывается на хитрых возможностях аппаратного обеспечения, которые были впервые представлены в процессоре Intel 80386, требуемого для Windows 3.0.

  • Первое свойство: когда старые досовские программы печатают на экран, то они пишут напрямую в области памяти, соответствующие позициям на экране. Это был единственный путь сделать вывод достаточно быстрым, чтобы ваша программа выглядела хорошо. Но Windows работал в графическом режиме. На старых интеловских процессорах у инженеров из Microsoft не было другого выхода, кроме как переключиться в полноэкранный режим, когда работали DOS-программы. Но на 80386 они могли установить блоки в виртуальной памяти и прерывания так, чтобы операционная система оповещалась, когда программа пытается писать в экранную память. Windows могла немедленно писать соответствующий текст в графическом окне.
  • Второе свойство: досовские программы предполагали, что они полностью распоряжаются процессором. В результате, они не очень хорошо работали вместе. Но Intel 80386 мог создать "виртульные" компьютеры, каждый из которых действовал как полный 8086, и старые PC программы могли вести себя так, как будто они имеют в своем распоряжении весь компьютер, даже тогда, когда другие программы были запущены и тоже претендовали на весь компьютер.

Итак indows 3.x на Intel 80386 был первой версией, которая могла приемлимо запускать несколько досовских программ. (На самом деле Windows 386 тоже мог, но процессоров 80386 тогда было мало и они были дорогие до того времени, когда как раз появился Windows 3.0). Windows 3.0 был первой версией, которая фактически делала разумную работу по запуску всего вашего старого софта.

Windows 95? Без проблем. Симпатичный новый 32-х битный API, но все ещё запускается старое 16-ти битное программное обеспечение. Microsoft преследовал эту цель, потратив целую кучу денег на тестирование всего старого софта под Windows 95, который они только смогли найти. Джон Росс (Jon Ross), который писал оригинальную версию SimCity для Windows 3.x, сказал мне, что он случайно оставил ошибку в SimCity - он читал память, которую только что освободил. Ага. Это нормально работало на Windows 3.x, потому что память никогда никуда не девалась. Вот потрясающая вещь: на бета версиях Windows 95 SimCity не работал при тестировании. В Microsoft отследили ошибку и добавили специальный код в Windows 95, который искал SimCity. Если обнаруживался запущенный SimCity, то менеджер памяти (memory allocator) запускался в специальном режиме, в котором память освобождалась не сразу. Вот такая вот навязчивая идея обратной совместимости заставила людей захотеть перейти на Windows 95.

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

А! Теперь назад к выставлению счетов. Помните выставление счетов? Проблема курицы-и-яйца заключалась в том, что вы можете оплачивать только счета одной организации, поэтому-то вы и отказались. Как же вы можете решить проблему? Microsoft не нашла выхода. PayMyBills.com и еще с пяток других стартапов из Силиконовой Долины одновременно пытались ее решить. Вы предоставляете режим обратной совместимости: если организация не хочет поддерживать систему, пусть просто посылают свои дебильные бумажные счета на University Avenue, в Palo Alto (там, вероятно, живут студенты, которым не надо много платить, я не знаю - прим. пер.), где куча реальных людей будет открывать их и сканировать. Теперь клиенты могут получить все счета на веб сайте. С того момента, как каждая организация на Земле доступна из вашей системы, клиенты просто счастливы ей пользоваться, даже если она работает в тупом режиме обратной совместимости, в котором какие-то банки, члены платежной системы Visa, электронным путем отсылают счета на принтер, принтер их печатает, потом их вкладывают в конверт, отправляют за полторы тысячи миль в Калифорнию, где конверт разрезают, глупые рекламки, занудно предлагающие "бесплатное" радио AM с часами, которое стоит $9.95, выбрасываются в мусор, а бумажный чек сканируется обратно в компьютер и засылается в веб, куда он должен был быть послан изначально. Но тупой режим обратной совместимости в конце концов исчезнет, потому что PayMyBills.com, в отличие от Microsoft, действительно может привлечь клиентов своей системой, и очень скоро ребята из PayMyBills.com смогут пойти к упертым Visa-банкам и сказать: "Эй, у меня есть 93 400 твоих клиентов. Почему бы вам не экономить $93,400 ежемесячно, соединившись со мной напрямую?". И вдруг PayMyBills.com становится очень прибыльной, пока Microsoft все еще тужится подписать на обслуживание вторую электрическую подстанцию, наверное, та, что обслуживает Джорджию, была бы хорошим изменением их темпа развития.

Компании, которым не удается распознать вопрос о курице и яйце могут считаться компаниями по кипячению океана: их бизнес план требует вовлечения 93 миллионов человек в их сумасшедшие бизнес схемы до того, как это действительно заработает. Одна из самых вопиюще глупых идей, обнаруженных мной, называлась ActiveNames. Их идиотский план заключался в том, что каждый человек в мире сможет поставить маленькое дополнение к почтовому клиенту, которое будет искать имена людей на их центральных серверах для получения актуальных адресов электронной почты. Потом вместо того, чтобы сказать людям, что ваш адрес kermit@sesame-street.com, вы скажете, что ваш ActiveName "spolsky", и для того, чтобы отправить вам email, им понадобится ставить специальный софт. Бр-р-р. Неверный ответ. Я даже не могу начать перечислять все причины, по которым этот замысел никогда не осуществится.

Заключение: если вы на рынке, которому присущи вопросы о курице и яйце - вам лучше иметь решение с обратной совместимостью, которое растворяет проблему, иначе же, осуществление ваших замыслов может забрать ооочень много времени (в смысле, бесконечно много).

Есть много компаний, которые распознают намек на появление вопросов о курице и яйце и умно защищаются. Когда Transmeta представила свой новый процессор, то она была первой за долгое время компанией, кроме Intel, которая окончательно признала, что если ты делаешь процессоры и хочешь, чтобы достаточно большое количество людей купило твой процессор, то он обязан исполнять x86-код. И это после того, как Hitachi, Motorola, IBM, MIPS, National Semiconductor и кто знает сколько еще компаний обманывали себя в том, что у них есть право придумывать новый набор инструкций. С первого дня принципы Transmeta основаны на том, что любой бизнес план, призывающий делать компьютеры, на которых не запускается Excel, ведёт в никуда.

thesis writing service dissertation writing

Personal tools