Joel on Software

Joel on Software   Джоэл о программном обеспечении

 

Другие статьи сайта "Joel on Software" на русском языке

Другие статьи сайта "Joel on Software" на английском языке

Адрес электронной почты автора (пожалуйста, пишите только по-английски)

 

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


Автор: Джоэл Сполски
Переводчик: Борис Надион
Редактор: Любовь Абрамова
24 мая 2000

Смысл рекламы - это лгать, не боясь быть пойманным. Большинство организаций, начиная рекламную кампанию, просто берут самую неприглядную правду про свою организацию, переворачивают все вверх тормашками ("лгут") и впихивают это потребителю. Давайте назовем это "интерпретацией". Например, полет на самолете неудобен из-за необходимости пребывания в замкнутом пространстве, а служащие авиакомпаний грубы и неприятны, да и на самом деле вся система коммерческих перелетов специально задумана как средство пыток. Поэтому почти все заявления авиакомпаний будут о том, как удобно и приятно летать, и как вас будут баловать практически на каждом шагу. Когда "Британские авиалинии" (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) практически сделал карьеру на непонимании вопроса о курице и яйце, причем дважды. Но остальные из нас не имеют в своем распоряжении Личную Систему Искажения Реальности Стива Джобса, поэтому нам придется взяться за работу и тяжело учиться.

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

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

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

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

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

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

Software платформы, на самом деле, дают нам хорошие советы, как решать проблемы курицы вместе с проблемами яйца. Давайте заглянем чуть-чуть в историю software платформ для персональных компьютеров с момента появления 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, но и полностью поддерживал старый CP/M programming interface. Под 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 программы могли вести себя так, как будто они имеют в своем распоряжении весь компьютер, даже тогда, когда другие программы были запущены и тоже претендовали на весь компьютер.

Итак Windows 3.x на Intel 80386 был первой версией, которая могла многократно запускать DOS программы, ничего не нарушая. (Технически 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, то распределитель памяти запускался в специальном режиме, в котором память освобождалась не сразу. Вот такая вот навязчивая идея обратной совместимости заставила людей захотеть перейти на 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 000 000 человек с их сумасшедшими бизнес схемами до того, как это действительно заработает. Одна из самых возмутительно глупых идей, обнаруженных мной, называлась ActiveNames. Их бессмысленный план заключался в том, что каждый человек в мире сможет поставить маленькое дополнение к почтовому клиенту, которое будет искать имена людей на их центральных серверах для получения адресов электронной почты. Потом вместо того, чтобы сказать людям, что ваш адрес kermit@sesame-street.com, вы скажете, что ваш ActiveName "spolsky", и для того, чтобы отправить вам email, им понадобится ставить специальный софт. Бр-р-р. Неверный ответ. Я даже не могу начать перечислять все причины, по которым этот замысел никогда не осуществится.

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

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



В английском оригинале статья называется Strategy Letter II: Chicken and Egg Problems  

Джоель Спольски - основатель Fog Creek Software, небольшой компании по
разработке программного обеспечения, расположенной в Нью-Йорке.
Окончил Йельский Университет, работал программистом и управляющим в
Microsoft, Viacom и Juno.


Содержимое этих страниц представляет собой мнение одного человека.
Всё содержимое Copyright ©1999-2005  by Joel Spolsky. All Rights Reserved.

FogBUGZ | CityDesk | Fog Creek Software | Joel Spolsky