Пол Грем, «Хакери і художники», глава 5: «The Other Road Ahead», продовження

«Інвестори та аналітики питали нас про те, що ми запланували на майбутнє. Нашою відповіддю було б: «У нас взагалі немає планів».»
— Пол Грем, розробник, інвестор, есеїст.

Мені було цікаво познайомитися з прогнозом засновника впливового бізнес-інкубатора кремнієвої долини (Y combinator). Через 15 років з моменту публікації есе Пола Грема, завдяки компанії Edison і чудовим людям з Хабра, руки дійшли до перекладу. Для тих, кому цікаво, як відбувалося зародження нового продукту і як три програміста буцалися з гігантами індустрії, ласкаво просимо під кат.



Вересень 2001
Оригінал — The Other Road Ahead
(За переклад спасибі Щекотовой Яні)

Читати першу частину голови.

Підхід до справи

Мати можливість випускати програму негайно — істотний мотиватор. Часто по дорозі на роботу я думав про зміни, які мені хотілося внести в додаток, і вносив їх у той же день. Це також працювало і для більш великих фіч. Навіть якщо на написання чогось потрібно було два тижні (а на деяких проектах), я знав, що зможу побачити результат як тільки все буде реалізовано.

Якщо б мені доводилося чекати рік до наступного релізу, я б більшість таких ідей відклав в довгий ящик, принаймні, на деякий час. Справа в тому, що, все-таки, ідеї призводять до інших ідей. Ви коли-небудь помічали, що, як тільки ви сідаєте щось написати, половина втілених у роботі ідей — це ті ідеї, які відвідали вас в процесі? Те ж саме відбувається і з програмами. Робота над реалізацією однієї ідеї дає вам ще більше ідей. Тому за відкладання ви заплатите не тільки затримкою в реалізації своєї ідеї, але також і всіма ідеями, до яких ви прийдете на даному етапі. Насправді, відкладання перешкоджає появі нових ідей: як тільки ви починаєте міркувати про якийсь новий функціонал, ви згадуєте про свій «ящик» і думаєте: «Але ж у мене вже купа фішок для реалізації в наступному релізі».

Великі компанії замість реалізації фіч планують їх. З цієї причини ми Viaweb іноді стикалися з труднощами. Інвестори та аналітики питали нас про те, що ми запланували на майбутнє. Нашою відповіддю було б: «У нас взагалі немає планів». У нас були загальні уявлення про те, що б ми хотіли поліпшити, але якби ми знали, то вже давно б це зробили. Що ми збираємося робити протягом наступних шести місяців? Все, що могло б привести нас до максимально виграшному положення. Не знаю, чи наважився б я коли-небудь так відповісти, але така була правда. Плани — це лише синонім до слова «ідеї». Коли нас відвідували хороші ідеї, ми реалізовували їх.

У Viaweb, так само як і в багатьох інших компаніях по розробці програмного забезпечення, більшість коду має одного певного власника. Але якщо вам щось належить, то ви реально цим мали: ніхто, за винятком власника частини програми, не може дати дозвіл на її реліз (або навіть знати про це). Як такої захисту від поломок, крім страху виглядати ідіотом перед своїми колегами, не було, але і цього було більш ніж достатньо. Я, можливо, створив помилкове уявлення про те, що ми просто безтурботно рухалися вперед створюючи код. Ми і правда швидко просувалися, але ми ретельно продумували все перед тим, як викласти додаток на сервери. У плані надійності увагу важливіше повільного просування. Саме завдяки підвищеній увазі до процесу військовий льотчик може вночі посадити 40 000 фунтовий літак на швидкості 140 миль в годину на розгойдується палубу авіаносця, і при цьому ризик буде менше, ніж при розрізуванні хліба середньостатистичним підлітком.

Звичайно, такий спосіб написання програм — це палиця про два кінці. Він набагато краще працює в маленьких командах з хороших, надійних програмістів, а не у великих фірмах з посередніми працівниками, де погані ідеї відсіваються на зборах, а не людьми, до яких вони приходять.

Теорія Брукса навпаки



На щастя, веб-додатки вимагають меншої кількості програмістів. Одного разу, я працював у середніх розмірів фірми по розробці додатків для настільних комп'ютерів, в якій в технічному відділі, в цілому, налічувалося більше ста чоловік. Лише 13 з них були задіяні в розробці продукту. Всі інші працювали над релізами, портированием і т. п. З веб-додатками все, що вам потрібно (здебільшого), це 13 осіб, тому що немає ні релізів, ні портування, нічого такого.

Viaweb був написаний всього трьома людьми. [7] Я дуже намагався найняти ще, тому що нам хотілося, щоб нас купили, а ми знали, що було б нелегко переконати покупців заплатити високу ціну за фірму з трьома програмістами. (Рішення: ми найняли людей, але створили для них нові проекти.)

Коли ви пишете програми, маючи в штаті меншу кількість програмістів, то ви економите більше, ніж тільки гроші. Як зауважив Фред Брукс у своїй книзі «Містичний людино-місяць», збільшення числа людей в проекті веде до його уповільнення. Кількість можливих зв'язків між розробниками зростає експоненціально зі збільшенням розміру групи: чим вона більша, тим більше часу буде витрачено на обговорення того, як додатки будуть спільно працювати, і тим більше помилок проявиться із-за непередбачених залежностей. На щастя, цей процес також працює і в зворотному напрямку: чим менше група, тим вище по експоненті зростає ефективність процесу розробки додатків. Я не можу пригадати, щоб програмісти у Viaweb організовували справжні зборів. Ми ніколи не раз говорили більше, ніж могли сказати по дорозі на обід.

Якщо тут і є якийсь недолік, то він полягає в тому, що всі програмісти в деякій мірі повинні також бути і системними адміністраторами. Коли ви розгортаєте додаток, хтось повинен спостерігати за серверами і, практично, єдині люди, хто це може зробити правильно, це ті, хто це додаток і написав. У Viaweb наша система містила в собі так багато компонентів і змінювалася так часто, що не було чіткої межі між додатком і інфраструктурою. Свавільне затвердження такої межі обмежило б нас у виборі проектних рішень. І тому, хоча ми постійно сподівалися, що одного разу («через кілька місяців») все буде достатньо стабільно працювати, щоб ми могли найняти кого-небудь, у чиї обов'язки входило б тільки турбота про серверах, але цього так і не сталося.

Не думаю, що тут є інший вихід, поки ви все ще активно розробляєте продукт. Веб-додатки ніколи не стануть тим, що ви пишете, зберігаєте в репозиторій і йдете додому. Це щось живе, що виконується на ваших серверах прямо зараз. Моторошний баг може не тільки знищити один з користувацьких процесів, але також він може знищити їх всі. Якщо помилку у вашому коді руйнує деякі дані на диску, то ви повинні це виправити. І т. д. Ми з'ясували, що немає необхідності перевіряти сервери кожну хвилину (після першого року або близько того), але вам обов'язково захочеться стежити за тим, що ви нещодавно змінили. Не можна випустити код пізно вночі, а потім піти додому.

Спостереження за користувачами

У серверному додатку ви знаходитесь в більш тісному контакті зі своїм кодом. І ви також можете бути в більш тісному контакті зі своїми користувачами. Intuit відомий тим, що знайомить клієнтів зі своїми рішеннями у роздрібних магазинах і просить зайти на їх сайт з дому. Якщо ви коли-небудь спостерігали за тим, як хтось використовує вашу програму в перший раз, то ви знаєте, які сюрпризи, повинно бути, його чекали.

Додаток повинен виконувати те, що, як думають користувачі, вона і має робити. Але вам і в голову не прийде, що в голові у користувачів, повірте, поки ви за ними не пронаблюдаете. А серверні додатки надають вам інформацію про їх поведінку без будь-якої конкретики. Ви не обмежені маленькими, штучними фокус-групами. Ви можете побачити кожен клік, зроблений кожним користувачем. Вам доведеться ретельно визначити, на що ви збираєтеся дивитися, тому що ви ж не хочете порушити приватне життя людей, але навіть найбільш загальний статистичний приклад може бути досить корисний.

Коли на вашому сервері є користувачі, вам не потрібно покладатися, наприклад, на бенчмарки, які є емуляцією користувачів. З серверними додатками ви можете спостерігати за реальними користувачами. Щоб вирішити, що оптимізувати, просто не зайдіть на сервері і подивіться, що споживає все процесорний час. І вам також відомо, коли завершити оптимізацію. Ми в підсумку довели редактор Viaweb до такої точки, коли він став більше залежати від обсягу пам'яті, а не від швидкодії процесора, і, оскільки ми нічого не могли зробити для зменшення розмірів користувальницьких даних (ну, нічого того, що вважалося простим), ми знали, що треба би на цьому зупинитися.

Для серверних додатків продуктивність має значення, тому що ви платите за обладнання. Кількість користувачів, що ви можете підтримувати на одному сервері, є дільником ваших капітальних витрат, тому, якщо ви можете створити досить продуктивне додаток, ви зможете надавати його за ціною нижче, ніж у конкурентів, і отримати прибуток. У Viaweb наші капітальні витрати в розрахунку на одного користувача знизилися до 5$. А зараз вони б могли б бути ще менше. Можливо, менше, ніж відправка рахунку за перший місяць. Зараз обладнання вам нічого не коштує, якщо ваші програми досить продуктивні.

Спостереження за користувачами може привести вас до питань, як проектування, так і оптимізації. У Viaweb використовується скриптова мова RTML, який дозволив просунутим користувачам визначати стиль їх особистих сторінок. Ми з'ясували, що RTML став свого роду журнал відгуків та пропозицій, оскільки користувачі використовували його тільки тоді, коли готові стилі сторінок не могли реалізувати те, що їм хотілося. Наприклад, спочатку редактор розміщував панель з кнопками впоперек сторінки, але після того, як деяке число користувачів скористалися RTML для розміщення кнопок внизу ліворуч, ми реалізували таку опцію (за замовчуванням) в готових стилях сторінки.

І, нарешті, спостерігаючи за користувачами, часто можна визначити, коли вони відчувають труднощі. І, оскільки клієнт завжди правий, це є ознакою того, що вам потрібно виправити. У Viaweb ключових моментів у розумінні користувачів був пробний запуск онлайн. Це була не просто послідовність слайдів, складених маркетологами. У нашому тестовому запуску користувачі реально використовували додаток. Це зайняло близько 5 хвилин, і в результаті вони створили справжній працюючий магазин.

Саме через цей тестдрайв ми зрозуміли, що потрібно майже всім нашим новим користувачам. Думаю, результат був би таким же для більшості веб-додатків. Якщо користувачі можуть успішно пройти тестовий запуск, то їм сподобається продукт. Якщо вони заплутаються або занудьгують, то ні. Тому, все, що ми могли зробити для залучення більшого числа людей з допомогою тестового запуску, збільшило б наші темпи зростання.

Я вивчав історію переходів по посиланнях людей, які беруть участь у тестовому запуску і з'ясував, що на певному кроці вони заплутувалися і кликали мишею на кнопку браузера «Назад». (Якщо ви спробуєте написати веб-додаток, то виявите, що кнопка «Назад» переходить в розряд однією з найбільш цікавих філософських проблем.) Тому я додав, що в цьому місці повідомлення, що роз'яснює користувачам, що вони практично закінчили, і щоб вони не натискали на кнопку «Назад». Ще одна чудова річ у веб-додатках це те, що ви отримуєте миттєву реакцію на зміни: число людей, що завершили тестовий запуск, тут же зросла з 60% до 90%. А оскільки кількість нових користувачів залежить від числа завершили тестдрайв, наш дохід зріс на 50% тільки за цих змін.

Оплата

На початку 90-х років я прочитав статтю, в якій хтось сказав, що програмне забезпечення — це бізнес на основі передплати. Спочатку це твердження здалося дуже цинічним. Але потім я усвідомив, що це відображає реальність: розробка програмного забезпечення — це безперервний процес. Вважаю, що буде чесніше, якщо ви відкрито позначите вартість передплати замість того, щоб змушувати людей купувати і встановлювати нові версії, щоб вони продовжували вам платити. І, на щастя, підписка — це природний спосіб оплати веб-додатків.

Хостинг додатків — це область, де фірми будуть грати роль в такій ніші, яка найімовірніше не буде заповнена безкоштовним. Хостинг додатків — це великий стрес, і тут доведеться витратитися. Ніхто не захоче робити це безкоштовно.

Для компаній веб-додатки — це ідеальний джерело доходу. Замість того, щоб починати кожен квартал з чистого аркуша, у вас буде періодичний дохід. Оскільки ваше додаток поступово розкручується, вам не потрібно турбуватися, що нова модель зазнає краху; нова модель, як така, і не буде потрібна, і якщо ви внесете в додаток щось, що користувачі сприймуть в штики, то ви відразу дізнаєтеся про це. У вас немає проблем з рахунками, підлягаючих оплаті: якщо хтось не буде платити, ви просто вимикаєте сервіс. Тут також відсутня можливість для піратства.

Це останнє «перевага» може вилитися і в проблему. Деяка піратська активність вигідна компаніям з розробки програмного забезпечення. Якщо якийсь користувач і справді не купив би ваш додаток ні за яку ціну, ви б нічого не втратили від того, що він використовує піратську копію. Насправді, ви навіть виграєте від цього, оскільки він є ще одним користувачем, що допомагає зробити ваш додаток еталонним, або який зможе купити копію додатка пізніше, коли закінчить університет.

Компанії по можливості люблять проводити цінову дискримінацію, що означає призначити кожному клієнтові як можна більш високу ціну, яку тільки можна дозволити. [8] Програмне забезпечення особливо підходить для цінової дискримінації, оскільки граничні витрати близькі до нуля. Ось чому деякі програми для запуску на комп'ютерах Suns коштують більше аналогів для Intel: фірма, що використовує Suns, не зацікавлена в економії грошей і може заплатити більше. Піратство, по суті, є нижчим рівнем цінової дискримінації. Думаю, що компанії по розробці, це розуміють і навмисно не помічають деякі види піратства. [9] Що стосується серверних додатків, то для них придумають інше рішення.

Веб-додатки добре продаються, особливо в порівнянні з десктопним, тому що його легко купити. Ви могли б подумати, що рішення людей щось купити, і подальша покупка — це два окремих кроку. Так я думав раніше в Viaweb, по мірі того, як розмірковував на цю тему в принципі. Насправді, другий крок може перейти назад в перший: якщо що-то складно купити, люди почнуть сумніватися, а чи потрібно їм це. І навпаки: ви продасте, якщо це легко купити. Я купую більше книг, тому що існує Amazon. Веб-додаток просто найпростіша в світі річ, яку можна купити, особливо якщо ви тільки що зробили онлайн демо-версію. Користувачі не повинні здійснювати багато дій, а тільки вводити номер кредитної картки. (Змушуйте робити їх більше дій на свій страх і ризик.)

Іноді веб-додатки поширюються через інтернет-провайдерів, які виступають в якості посередників. Це погана ідея. Вам доведеться займатися управлінням серверів, тому що вам потрібно постійно поліпшувати як апаратне, так і програмне забезпечення. Якщо ви упустите безпосередній контроль над серверами, ви упустите більшість переваг розробки веб-додатків.

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

Клієнти

Ким будуть ваші клієнти? Для Viaweb спочатку це були приватні особи і невеликі фірми, і, як мені здається, в веб-додатках це стане усталеним правилом. Такі користувачі готові спробувати щось нове частково тому, що вони більш гнучкі, і частково тому, що вони хочуть менше витрачатися на нові технології.

Також веб-додатки часто будуть розглядатися як найкращий варіант для великих компаній (хоча ті будуть повільно це усвідомлювати). Краща комп'ютерна мережа підприємства – це Інтернет. Якщо фірма використовує справжні веб-додатки, програми будуть краще працювати, за серверами будуть краще стежити, а працівники будуть мати доступ до системи звідки завгодно.

Аргументи проти такого підходу зазвичай тісно пов'язані з безпекою: якщо для працівників доступ спрощено, то таким він буде і для зловмисників. Деякі великі продавці неохоче використовували Viaweb, тому що вони вважали, що інформація про кредитні картки клієнтів буде в більшій безпеці на їх власних серверах. Нелегко було це вирішити дипломатичним шляхом, але в дійсності дані майже напевно безпечніше було зберігати на нашому боці, а не на їх. Хто може найняти кращих людей для управління безпекою: технологічний стартап, чий бізнес повністю працює на серверах, або продавець одягу? У нас не тільки кращі люди, що відповідають за безпеку, але й ми самі приділяти їй більше уваги. Якщо хтось зламає сервери продавця одягу, то це вплине в основному на одну торговельну фірму, а це справа, можливо, замнуть, і, в гіршому випадку, звільнять однієї людини. Якщо хтось зламає наші сервера, то це вплине на тисячі торгових фірм, і, можливо, виявиться в новинах по CNet, і ми втратимо свій бізнес.

Якщо ви хочете зберегти ваші гроші, то ви зберігаєте їх під матрацом у себе вдома, або віддаєте в банк? Це застосовне до будь-якого аспекту управління серверами: не тільки безпеки, але і до часу безвідмовної роботи, пропускної здатності, управління навантаженням, резервного копіювання, і т. д. Наше існування залежить від правильного виконання перерахованих речей. Наявність проблем з сервером були для нас абсолютно неприпустимі, як для творця іграшок неприпустимі небезпечні іграшки, або спалах сальмонельозу для кухонного комбайна.

Великі компанії, які використовують веб-додатки, в деякій мірі передають частину IT-функцій в аутсорс. Як би різко це не звучало, я вважаю, що, в цілому, це хороша ідея. Так у фірм більше шансів отримати краще обслуговування, ніж якщо б вони організовували власний штат системних адміністраторів, які можуть стати примхливими і несприйнятливими, тому що вони не зазнають безпосередньо конкурентному тиску: продавець працює з клієнтами, розробник з додатками конкурентів, а до системного адміністратора, як у старого холостяка, в розпорядженні всього кілька зовнішніх факторів, що утримують його на плаву. [10] У Viaweb зовнішніх чинників для утримання себе на плаву було в достатку. Люди, які телефонують нам, були клієнтами, а не просто колегами. Якщо сервер заклинювало, ми тут же підривалися; вже сама думка про це змушує відчути сплеск адреналіну, навіть через роки.

Тому, зазвичай, веб-додатки будуть вірним рішенням і для великих фірм. Однак до них дійде в останню чергу, як це було з настільними комп'ютерами. І частково з тієї ж самої причини: переконати великі компанії в тому, що їм потрібно щось більш дороге, буде коштувати величезну купу грошей.

Завжди існує тенденція до того, що багаті клієнти купують дорогі рішення, навіть коли дешеві рішення краще, оскільки люди, що пропонують дорогі рішення, можуть витратитися навіть більше, намагаючись їх продати. Ми в Viaweb завжди були категорично проти такого підходу. Ми втратили кількох торгових представників високого класу, які пішли до компаній з веб-консалтингу, переконали їх у тому, що вони будуть в більш вигідному становищі, якщо вони заплатять півмільйона доларів за власний онлайн-магазин на їх власному сервері. Як правило, у вигідне положення вони так і не потрапляли, тому що виявилося, що при настанні сезону різдвяних покупок на їх сервер зростало навантаження. Viaweb представляв собою набагато більш складний продукт, ніж те, що було у більшості торгових представників, але у нас не було можливості повідомити їм про це. Працюючи за $300 в місяць, ми не могли дозволити собі направити до клієнтів команду пристойно одягнених і впливових людей для презентації продукту.

Основну частку того, що великі фірми платять завищену ціну, складають витрати на продаж їм дорогих речей. (Якщо Міністерство оборони платить 1000$ за сидіння для унітазів, то це частково із-за того, що потрібно багато коштів для продажу сидінь для унітазів за 1000$.) І це одна з причин, по якій інтранет ЗА продовжить процвітати, навіть якщо це і погане рішення. Вона просто дорожче. І ви нічого не зможете з цим зробити, тому найкращим планом дій буде звернути свою увагу спочатку на більш дрібних клієнтів. Все інше додасться в потрібний час.

Син сервера

Нічого нового в запуску програма на сервері немає. Насправді, це застаріла модель: всі програми для супереом є серверними. Якщо серверні додатки — це така хороша ідея, то чому вона програла іншим? Чому настільні комп'ютери затьмарили супереом?

Спочатку настільні комп'ютери не розглядалися як пряма загроза. Всі перші користувачі були поголовно комп'ютерними фахівцями або людьми захопленими. Їм подобалися мікроеом, тому що вони були дешевше. Вперше у вас був свій власний комп'ютер. Фраза «персональний комп'ютер» зараз міцно увійшла в побут, але коли її вперше використали, вона володіла навмисно яскравим звучанням, як сьогодні фраза «персональний супутник».

Чому настільні комп'ютери перемогли? Думаю тому, що їх було краще. І вважаю, що причина, по якій додатки для мікрокомп'ютерів були краще, полягала в тому, що їх могли написати маленькі фірми.

Не думаю, що багато людей усвідомлюють, як хиткі й непевні стартапи на ранній стадії. Багато стартапи починаються майже випадково: пара молодих людей, або з постійною роботою, або школярі, пишуть прототип чогось, що могло, якщо це виглядало багатообіцяючим, перерости у фірму. В такому зародковому стані будь-значна перешкода намертво заморозить стартап. Написання ПЗ для супереом вимагало надто багато зобов'язань. Комп'ютери для розробки були дороги, і, т. к. клієнтами були великі фірми, вам знадобився б вражаючий торговий персонал, щоб їм це продати. Починати стартап по створенню ПЗ для супереом було б набагато більш серйозною справою, ніж просто спільне колупання програм на своєму Apple II вечорами. Тому і не було великого числа стартапів по створенню такого.

Поява настільних комп'ютерів надихнуло на створення нових додатків, тому що розробка програм здавалася досяжною метою для «зародкових» стартапів. Розробка була дешевою, і клієнтами були фізичні особи, з якими можна було встановити контакт через комп'ютерні магазини або навіть торгівлю поштою.

Додаток, яке перевело настільні комп'ютери в панівну тенденцію, називалося VisiCalc, перший редактор таблиць. Його написали на горищі два хлопця, і воно творило такі речі, які ні один додаток для супереом здійснити не могло. [11] VisiCalc було в той час таким проривом, що люди купували Apple II тільки для того, щоб запускати його. І це було початком нового тренда: настільні комп'ютери перемогли тому, що стартапи створювали під них програми.

Здається, що серверні додатки були б як не можна до речі, оскільки стартапи їх напишуть. Зараз комп'ютери такі дешеві, що ви можете почати з того ж, що і ми, тобто використовувати настільний комп'ютер в якості сервера. Недорогі процесори поглинули ринок робочих станцій (ви зараз навряд чи почуєте це словосполучення) і здебільшого через ринок серверів; сервери Yahoo, які справляються з навантаженнями, як і всі інші сервери в Інтернет, всі вони оснащені недорогими процесорами Intel, що встановлені у вашому настільному комп'ютері. І, коли ви написали програму, все, що вам потрібно продати, це веб-сайт. Майже всі наші користувачі прийшли прямо на наш сайт за допомогою сарафанного радіо і посиланнями в пресі. [12]

Viaweb був типовим «первісним» стартапом. Нам було страшно організовувати фірму, і, протягом перших кількох місяців заспокоювали себе, сприймаючи це все як експеримент, який ми могли перервати у будь-який момент. На щастя, крім технічних були й інші проблеми. В ході написання програми наш веб-сервер грав роль настільного ПК, що використовується в процесі розробки, і був з'єднаний з усім іншим світом через телефонну лінію зв'язку. Єдиними нашими витратами на даному етапі були їжа і оренда.

Зараз для стартапів ще більше причин для створення веб-додатків, тому що розробка ПО для настільних комп'ютерів вже не так цікава. Якщо зараз ви хочете писати програми для настільних комп'ютерів, то ви робите це на умовах Microsoft, викликаючи їх API і працюючи з їх глючной OS. І якщо вам вдасться написати щось таке, що вистрілить, ви, можливо, виявите, що ви просто займалися маркетинговими дослідженнями для Microsoft.

Якщо фірма хоче створити платформу, на основі якої будуть реалізовуватися стартапи, то вона повинна бути такою, щоб програмісти самі захотіли б її використовувати. Що означає, що вона повинна бути недорогою і добре спроектованої. Коли Mac вперше з'явився, він був популярний серед комп'ютерних професіоналів, і багато з них писали під нього програми. [13] У випадку з Windows це було менш помітно, т. к. програмісти їй не користувалися. Зараз люди, які гарні в розробці додатків, схильні до використання Linux або FreeBSD.

Не думаю, що ми б організували стартап для створення ПЗ для настільних комп'ютерів, тому що таке має запускатися на Windows, а перед тим, як писати під Windows, нам довелося б їй користуватися. Веб дозволяє обійти Windows, і надавати ПЗ, що працює на Unix, безпосередньо користувачам через браузер. Це відмінний шанс, щоб звільнитися від залежностей, що дуже нагадує поява ПК 25 років тому.

Microsoft

Давним давно, коли з'явилися настільні комп'ютери, IBM був гігантом, якого всі боялися. Зараз складно уявити, але я дуже добре пам'ятаю це почуття. Зараз же страхітливим гігантом виступає Microsoft, і я не думаю, що вони не розуміють загрозу, маячащей перед ними, як це робила фірма IBM. Зрештою, Microsoft навмисно почала вести свій бізнес в сліпій зоні IBM.

Я якось згадував раніше, що, наприклад, моїй матері взагалі не потрібен настільний комп'ютер. І, ймовірно, більшості користувачів це теж не треба. Ось в чому проблема Microsoft, і вони це знають. Якщо додатки запускаються на віддалених серверах, нікому не потрібна Windows. Що ж буде робити Microsoft? Чи зможуть вони скористатися своїм контролем над ПК, щоб запобігти або обмежити це нове покоління додатків?

Припущу, що Microsoft розробить деякого сорту гібрид серверного та десктопного додатки, де операційна система працює спільно з серверами, якими вони управляють. Як мінімум, файли точно будуть доступні користувачам, яким це треба. Не думаю, що Microsoft впаде в крайність і організовує обчислення на сервері, де в якості клієнта буде виступати тільки браузер, якщо вони можуть цього уникнути. Якщо в якості клієнта вам потрібен лише браузер, то на клієнтській машині вам не потрібен Microsoft, а якщо Microsoft не управляє клієнтом, то вони не зможуть змусити користувачів перейти на їх серверні додатки.

Я вважаю, що Microsoft буде складно утримувати технології в жорстких рамках. Буде занадто багато різних типів клієнтів, щоб забезпечувати контроль над ними усіма. А якщо Microsoft працюють тільки з деякими клієнтами, конкурентам вдасться їх обскакати, пропонуючи програми, що працюють на будь-якому клієнтові. [14]

У світі веб-додатків для Microsoft немає автоматично вибраного місця. Вони можуть досягти успіху в самостійному його створення, але не думаю, що вони втримають лідируючі позиції в цьому новому світі, як їм це вдалося у світі додатків для настільних ПК.

Справа не тільки в тому, що їх обставлять конкуренти, але і в тому, що вони самі собі риють яму. По мірі розвитку веб-додатків вони зіткнуться не тільки з технічними проблемами, але і з своїм прийняттям бажаного за дійсне. Їм потрібно поглинути свій поточний бізнес, і я уявити не можу, що вони підуть на це. Та сама цілеспрямованість, яка їх так далеко завела, тепер працюватиме проти них. IBM була в точно такому ж становищі, і їй не вдалося з цим впоратися. IBM зробила запізнілий і нерішучий вихід на ринок мікроеом, тому що вони відчували двоїсте відчуття, ставлячи під загрозу свою дійну корову – використання супереом. Аналогічно Microsoft буде обмежений у своїх діях, бажаючи зберегти настільні рішення. Надійне джерело грошей може перетворитися на досить важку ношу.

Я не стверджую, що нікому не вдасться домінувати в області серверних додатків. Ймовірно, врешті-решт, хтось це зробить. Але я хочу сказати, що пройде досить багато часу цікавою плутанини, прямо як на зорі мікроеом. Це був гарний час для стартапів. Багато дрібні фірми розцвіли, створюючи круті речі.

Більше, ніж просто стартап

Класичний стартап організується швидко і без зайвих формальностей, з малим штатом і бюджетом. Ці кілька людей наполегливо працюють, а технології підсилюють ефект від прийнятих ними рішень. Якщо вони виграють, то виграють по великому.

В стартапі по створенню веб-додатків все, що асоціюється у вас з стартапами, доводиться до крайності. Можна створювати і запускати продукт навіть з меншою кількістю людей і навіть з меншим бюджетом. Тільки вам доведеться бути ще швидше, і знизити рівень формальностей. Можна запускати продукт в буквальному сенсі слова, з трьома людьми у вітальні чий-то квартири, і сервером у інтернет-провайдера. У нас все так і було.

Згодом команди стали менше, швидше і більш невимушеними. У 1960 під розробкою ПО малася на увазі кімната, повна людей в окулярах з роговою оправою у вузьких чорних краватках, старанно пишуть по 10 рядків коду в день в бланках для кодування IBM. У 1980 це була команда з 8-10 людей, що приходять в офіс у джинсах і друкувальних в терміналах vt100. Тепер це пара хлопців, що сидять у вітальні з ноутбуками. (А джинси виявилися не останнім пунктом в забезпеченні атмосфери невимушеності і свободи.)

У стартапах багато стресу, і, на жаль, це також доводиться до крайності у сфері веб-додатків. У багатьох компаній по розробці ПО, особливо на початку, були моменти, коли розробники спали під столами і т. п. Тривожним сигналом може стати той факт, що ніщо не може перешкоджати переходу цього явища в постійну практику. Історії про те, як хтось спить під столом, зазвичай закінчуються так: і ось, нарешті, ми зберегли всі зміни і пішли додому, і відсипалися весь тиждень. У веб-застосунках не можна взяти і внести всі зміни. Ви можете працювати по 16 годин в день так довго, як того захочете. А так як можете ви, і ваші конкуренти теж, ви вже змушені це робити. Ви можете, тому ви повинні. Закон Паркінсона навпаки.

Найгірше це не кількість відроблених годин, а відповідальність. У програмістів і системних адміністраторів традиційно різні турботи. Програмісти повинні думати про баги, а системні адміністратори – про інфраструктуру. Програмісти можуть витратити адже день, провівши його зарившись у вихідні коди, але в певний момент їм доведеться піти додому і забути про все це. Системні адміністратори ніколи не залишають роботу на потім, але коли їм приходить повідомлення в 4 ранку, їм зазвичай не треба нічого досить складного робити. У світі веб-додатків ці два види стресу комбінуються. Програмісти стають системними адміністраторами, але без чітко визначених кордонів, які зазвичай і роблять роботу терпимою.

У Viaweb ми провели перші 6 місяців просто за написанням програми. Ми працювали типовий подовжений робочий день стартапу на ранніх стадіях розвитку. Будь ми в компанії з розробки десктопних додатків, ми розповідали, як старанно ми працюємо, але по відчуттях це можна порівняти з відпусткою, якщо брати в порівнянні з наступним етапом, де ми пустили користувачів на свій сервер. Другим великим перевагою (після грошей) від продажу Viaweb компанії Yahoo була можливість перекласти всю відповідальність за все це на плечі великої фірми.

Десктопні програми змушують користувачів ставати системними адміністраторами. Веб-додатки змушують ставати такими програмістів. У загальній сумі стресу виходить менше, але його частка на програмістів більше. Це не завжди погано. Якщо ви затіяли стартап і конкуруєте з великою фірмою, то це добре. [15] Веб-додатки пропонують прямий шлях до того, щоб перевершити ваших конкурентів. А стартапи більшого і не вимагає.

І так добре

Єдине, що може відлякати вас від створення веб-додатків, це убогість веб-сторінок при використанні в якості користувальницького інтерфейсу. Визнаю, це проблема. Нам і справді хотілося додати пару речей в HTML та HTTP. Але насправді, важливо те, що веб-сторінки і так гарні.

Тут простежується аналогія з першими мікроеом. Процесори в цих машинах насправді не були призначені для використання в якості центральних процесорів. Вони були призначені для використання у світлофорах і т. п. Але люди на кшталт Еда Робертса, творця Altair, зрозуміли, що вони добре підходили і для цих цілей теж. Можна було поєднувати один з цих чіпів з якою-небудь пам'яттю (в першому Altair було 256 байт пам'яті), додати передню панель перемикачів, і ось перед вами працюючий комп'ютер. Можливість зібрати свій власний комп'ютер була такою захоплюючою ідеєю, що з'явилася купа людей, які хотіли їх купити, хоча їх кількість і було обмежено.

Веб-сторінки створювалися не для того, щоб служити інтерфейсом веб-додатків, але вони і так гарні. А для значного числа користувачів додатків, якими можна скористатися з будь-якого браузера, буде достатньо, щоб дійсно пересилити неприйняття певній неповороткості у UI. Може, у вас і не виходить створити з допомогою HTML найкрасивішу електронну таблицю, але ви можете створити таку таблицю, якої кілька людей можуть користуватися одночасно з різних місць без спеціального клієнтського ПЗ, або яка може об'єднувати реальні дані, або яка може надсилати вам повідомлення, коли спрацьовують певні умови. Що більш важливо, можна створювати нові види додатків, у яких ще немає назв. VisiCalc був не просто додатком для супереом з версією для мікроеом, врешті-решт, це був новий тип додатків.

Звичайно, серверні додатки не зобов'язані бути веб-додатками. У вас міг би бути який-небудь інший клієнт. Але я впевнений, що це погана ідея. Було б дуже зручно, якби можна було допустити, що всі встановлять ваш клієнт. Так зручно, що ви могли б легко себе переконати, що вони все так і вчинять, але якщо вони не захочуть, то ви будете пов'язані по руках і ногах. Оскільки веб-додатки не роблять ніяких припущень про клієнтській стороні, вона буде працювати скрізь, де працює веб. А це вже велика перевага, і воно буде тільки збільшуватися по мірі поширення нових веб-пристроїв. Ви сподобаєтеся користувачам, тому що ваш додаток просто працює, а ваше життя стане простіше, тому що вам не доведеться налаштовувати його під кожного нового клієнта. [16]

У мене таке відчуття, що я переглянув еволюцію сфери веб докладно, як і кожен з нас, але я не можу передбачити, що станеться з клієнтським наповненням. Ймовірно, гряде конвергенція, але в якій точці? Я не можу визначити лідера. Єдине, що я можу передбачити, це суперечність між AOL і Microsoft. Чим би в результаті виявилася технологія Microsoft .NET, вона, найімовірніше, буде включати з'єднання ПК з сервером. Поки AOL не почне качати права, їх або відсунутий убік, або перетворять на прошарок між клієнтом Microsoft і серверним ПЗ. Якщо Microsoft і AOL затіють війну за клієнта, єдине, що точно спрацює для обох, це перегляд веб-сторінок, тобто веб-додатки будуть єдиним, яке працює скрізь.

Як це все вирішиться? Я не знаю. А вам і не потрібно знати, якщо ви зробите ставку на веб-додатки. Ніхто не зможе зламати цю тенденцію без обмеження самої можливості перегляду веб-сторінок. Ймовірно, веб не єдиний спосіб реалізації додатків, але він зараз єдиний робочий варіант, який продовжить працювати ще довгий час. Веб-додатки дешеві у розробці і їх просто поширювати навіть самому маленькому стартапу. Над ними потрібно багато працювати, і випробувати чимало стресу, але це тільки підвищує шанси стартапу.

Чому б і ні?

Е. Б. Уайта потішив той факт, що, як розповів йому друг-фермер, багато огорожі з електричним струмом насправді не знаходяться під напругою. Коли корови навчилися триматися від них подалі, вже не було необхідності пропускати струм через огорожу. «Вставайте, корови! – писав він, – Ідіть на свободу, поки ваші тирани хропуть!»

Якщо ви айтішник, який вже подумував якось почати стартап, то, ймовірно, вас стримують дві речі. Перша – ви нічого не знаєте про бізнес. Друга – ви боїтеся конкуренції. Але жодна з цих перешкод не підведена до електричного струму.

Ось дві речі, які ви повинні знати про бізнес: зробити те, що користувачі полюблять, і заробляти більше, ніж витрачаєте. Якщо ви добре засвоїте, ви будете випереджати більшість стартапів. У всьому іншому ви розберетеся по ходу справи.

Можливо, спочатку ви не зможете заробляти більше, ніж витрачаєте, але як тільки цей розрив почне досить швидко скорочуватися, у вас все налагодиться. Якщо ви почнете з меншою кількістю грошових коштів, то це, принаймні, сприятиме виробленню звички до ощадливості. Чим менше ви витрачаєте, тим легше заробити більше своїх витрат. На щастя, запуск веб-застосунок може дуже дешево обійтися. Ми запустилися з бюджетом менше $10,000, а сьогодні це ще дешевше. Нам довелося витратити тисячі на сервер, і ще кілька тисяч на SSL. (Єдиною фірмою, що продає SSL в той час, була Netscape.) Зараз ви можете орендувати набагато більш потужні сервери, вже з SSL, і заплатити за це менше, ніж довелося заплатити нам тільки за смугу пропускання. Ви могли б зараз запустити веб-додаток за вартість, меншу вартості хорошого офісного крісла.

Що стосується створення того, що полюблять користувачі, тут є кілька загальних порад. Почніть зі створення чогось зрозумілого і простого, ніж ви б самі захотіли скористатися. Швидко випустіть версію 1.0, і потім продовжуйте покращувати додаток, уважно прислухаючись до користувачів по ходу справи. Клієнт завжди правий, але різні клієнти праві щодо різних речей; найменш досвідчені користувачі покажуть, що треба спростити і пояснити, а найдосвідченіші вкажуть, який функціонал потрібно додати. Найкраще, що може робити додаток, це відрізнятися простотою, але щоб цього домогтися, потрібно відразу вірно визначити всі сценарії роботи «за замовчуванням», а не обмежувати користувачів у виборі. Не важничайте, якщо додаток конкурента вийшло поганим; еталон, з яким потрібно порівнювати свій додаток, це те, чим воно могло б бути, а не те, що вийшло у конкурентів. Весь час користуйтеся своїм. Viaweb був розроблений як конструктор онлайн-магазинів, але ми також використовували його для створення свого власного сайту. Не слухайте маркетологів, дизайнерів і продуктових менеджерів тільки з-за назви їхніх посад. Якщо у них є хороші ідеї, скористайтеся ними, але це вам вирішувати; додатки повинні розробляти фахівці, які розуміють, що таке дизайн, а не дизайнери, які трохи знають, що таке додатки. Якщо ви не можете спроектувати додаток, ні реалізувати його, не треба запускати стартап.

А тепер давайте обговоримо конкуренцію. Те, чого ви боїтеся, це не передбачувані групи програмістів як ви, а реальні фірми, з офісами та бізнес-планами, продавцями і т. д., так адже? Ну, вони більше бояться вас, ніж ви, і правильно роблять. Набагато простіше парі хакерів розібратися в тому, як орендувати офісне приміщення або найняти людей для ведення продажів, ніж для фірми будь-якого розміру написати додаток. Я побував по обидві сторони барикад, і знаю, про що кажу. Коли Viaweb був куплений фірмою Yahoo, я виявив, що я працюю на велику компанію, і це було рівносильно біжу по пояс у воді.

Я не хочу принижувати Yahoo. У них було кілька хороших фахівців, менеджери вищої ланки були справжніми монстрами. Для великої компанії це рідкість. Але все ж, вони продуктивні лише на десяту частку маленького стартапу. І ні одна велика фірма не зможе зробити краще. Що в Microsoft лякає, так це те, що така велика компанія взагалі може розробляти програми. Вони як гора, яка може пересуватися.

Не давайте себе залякати. Вам під силу те, що не може Microsoft, і вони можуть зробити те, що у вас не вийде. І ніхто вас не зупинить. Вам не треба питати, чию-небудь дозвіл на розробку веб-додатків. Вам не доведеться вирішувати питання з ліцензуванням, або запитувати місце на полиці роздрібних магазинів, або плазувати перед власниками ОС, щоб ваш додаток увійшло до її складу. Ви можете надавати додаток прямо через браузер, і ніхто не може встати між вами та потенційними користувачами без закриття веб мережі.

Ви, може, й не повірите, але я гарантую, що Microsoft боїться вас. Самовдоволені менеджери середньої ланки, може, й немає, але Білл точно, тому що він колись був на вашому місці, в далекому 1975 році, коли останній раз з'явився новий спосіб поширення.

Примітки

[7] Роберт Морріс написав систему замовлень, яку покупці використовували для розміщення замовлень. Тревор Блеквелл написав генератор зображень і менеджер, який продавці використовували для перегляду замовлень, статистики, налаштування доменних імен, і т. д… Я написав редактор, яким користувалися продавці для створення своїх сайтів. Система замовлень і генератор зображень були написані на C і C++, менеджер — в основному на Perl, а редактор — на Lisp.

[8] Цінова дискримінація так поширена (як часто ви чули, щоб роздрібний продавець заявляв, що їх купівельна спроможність означала б більш низькі ціни для вас?), я був сильно здивований, коли дізнався, що в США законом Робінсона-Патмана 1936 року вона оголошена незаконною діяльністю. До прийняття такого закону, здається, не особливо-то і примушували.

[9] Наомі Кляйн з No Logo каже, що бренди одягу, що користуються популярністю у «міський молоді», не особливо-то і намагаються запобігати магазинні крадіжки, тому що в їх цільовому ринку магазинні злодії також є провідними гравцями в моді.

[10] Фірми часто задаються питанням, що віддати в аутсорс, а що ні. Один можливий відповідь: віддавати в аутсорс будь-яку роботу, яка прямо не піддається конкурнтному тиску, тому що, таким чином, її аутсорс підставить її під це саме тиск.

[11] Цими двома хлопцями були Ден Бріклін і Боб Фракстон. Ден написав прототип на Basic за пару днів, потім протягом наступного року вони працювали разом (в основному по ночах) над створенням більш потужної версії, написаної мовою комп'ютера 6502. Ден в той час навчався в Гарвардській школі бізнесу, а Боб офіційно мав постійну роботу, де писав програми. «У веденні свого бізнесу не було великих ризиків, – писав Боб, – Якщо не вийде, то не вийде. Нічого особливого».

[12] Це не зовсім так просто, як я це озвучив. Потрібно багато болісного часу, щоб сарафанне радіо запрацювало, і у нас не було частих освітлення в пресі, поки ми не найняли PR фірму (і правда краща у своїй справі) за $16,000 в місяць. Однак правда в тому, що єдиним значущим каналом був наш власний сайт.

[13] Якщо Mac був такий крутий, чому він програв? Знову ж таки, справа в ціні. Microsoft сконцентрувався на створенні, і випустила натовп постачальників дешевих компонентів для обладнання Apple. Але це також не допомогло, that suits took over during a critical period.

[14] Єдине, що допомогло б веб-додатків, і утримало б наступне покоління додатків від being overshadowed by Microsoft, це хороший open-source браузер. Mozilla є open-source браузером, але, здається, постраждало від занадто тривалого перебування в амплуа корпоративного програми. Маленький швидкий браузер, який активно підтримували, вже само по собі було б здорово, а також, можливо, надихнуло б фірми на реалізацію невеликих веб-пристроїв.

Крім того, відповідний open-source браузер став би причиною подальшого розвитку HTTP і HTML (як, наприклад, це було Perl). Це дуже допомогло б веб-додатками розпізнавати виділення посилання і прохід по ній; все, що для цього знадобиться, буде банальним розширенням HTTP, що дозволить утримувати кілька URL в запиті. Каскадне меню також добре було б реалізувати.

Якщо ви хочете змінити світ, напишіть нову Mosaic. Думаєте, занадто пізно? У 1998 багато людей думали, що надто пізно запускати новий пошуковий движок, але Google довів зворотне. Завжди є місце для чогось нового, якщо поточні рішення досить убогі. Спочатку переконайтеся, що вона працює на всіх безкоштовних операційних системах, т. к. нове починається з їх користувачів.

[15] Тревор Блеквелл, який, можливо, зі свого особистого досвіду знає про це більше, ніж хто-небудь, пише: «Я б додав, що, т. к. серверні додатки надто суворі з програмістами, це викликає істотний економічний відтік з великих фірм. Від програмістів потрібно деяка енергія та відданість справі, яку вони зможуть проявити тільки тоді, коли це їх власна фірма. Фірми по розробці, можуть найняти досвідчених людей для роботи в не надто вимогливою середовищі, а можуть найняти недосвідчених людей, щоб вони відчували труднощі, але вони не можуть найняти висококваліфікованих людей, щоб ті надривалися на роботі. З тих пір як капітальні вкладення перестали бути обов'язковим елементом, великі фірми мало чим можуть зацікавити.»

[16] У первісній версії цього есе я радив уникати Javascript. Такий план був хороший для 2001 року, але Javascript зараз і справді працює.




Хакери і художники
image
Глави і переказиwww.paulgraham.com/hptoc.html
  1. Why Nerds Are Unpopular
    Their minds are not on the game.
    оригінал, переклад частина 1, частина 2
  2. Hackers and Painters
    Hackers are makers, like painters or architects or writers.
    оригінал, переклад частина 1, частина 2, альтернатива
  3. What You can't Say
    How to think heretical thoughts and what to do with them.
    оригінал, переклад
  4. Good Bad Attitude
    Like Americans, hackers win by breaking rules.
    оригінал, переклад
  5. The Other Road Ahead
    Web-based software offers the biggest opportunity since the arrival of the microcomputer.
    оригінал, переклад частина 1
  6. How to Make Wealth
    The best way to get rich is to create wealth. And startups are the best way to do that.
    оригінал, перевод
  7. Mind the Gap
    Could «unequal income distribution» be less of a problem than we think?
    оригінал, переклад
  8. A Plan for Spam
    Till most recently experts thought spam filtering wouldn't work. This proposal changed their minds.
    оригінал, переклад
  9. Taste for Makers
    How do you make great things?
    оригінал, переклад
  10. Programming Languages Explained
    What a programming language is and why they are a hot topic now.
    переклад
  11. The Hundred-Year Language
    How will we program in a hundred years? Why not start now?
    оригінал, перевод
  12. б'ється серцем the Averages
    For web-based applications you can use whatever language you want. So can your competitors.
    оригінал, переклад
  13. Revenge of the Nerds
    In technology, «industry best practice» is a recipe for losing.
    оригінал, переклад 1, 2, 3
  14. The Dream Language
    A good programming language is one that lets hackers have their way with it.
    оригінал, переклад частина 1, частина 2
  15. Design and Research
    Research has to be original. Design has to be good.
    оригінал, переклад


Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.