Одной из причин постоянных поломок Twitter было то, что он был сделан быстро, как одна большая, беспорядочная программа. Там не было распределенной архитектуры, а значит, своими свойствами он напоминал карточный домик: если выпадала одна деталь, рушилось все здание. И каждый раз, когда нам приходилось разбираться, что пошло неправильно, мы должны были пересматривать всю систему. После нескольких часов аналитического исследования у нас получалось найти поломанный кусочек. Потом нужно было определить, кто написал эту часть программы. Если этот человек вдруг оказывался на больничном, это означало, что нам не повезло. Мы разочаровывали пользователей Twitter и получали регулярные разгромные статьи в прессе.
Однажды я смотрел старый эпизод «Star Trek: Вояджер. Демон»
(Все системы на «Вояджере» поделены на отсеки и изолированы. По своей воле они могут частично отключать их, и корабль в это время будет продолжать работать. (Должен признать, что это открытие из разряда очевидных.) Архитектура Twitter не была идеальной, но и не была ошибочной. Он не был рассчитан на массовый успех, мы не ожидали, что станем популярными так быстро. Гораздо лучше создать хороший продукт и выпустить его на рынок, чем годами переделывать что-то, прежде чем выяснить, нужен ли он кому-то.
На следующий день я шел на работу с твердым намерением предложить новый подход к решению проблем Twitter. Джейсон Голдман пришел из Blogger, чтобы стать вице-президентом по разработке продукта и правой рукой Эвана. К счастью для меня, Джейсон был еще и фанатом «Star Trek». (Мы оба были «треккерами».) Я спросил его: «Мы можем разделить элементы нашей системы на разные отделы – например регистрация, обновления, некоторые запросы к серверу, – чтобы при поломке одного отдела мы могли отключить только его и чтобы при этом хоть что-то в других отделах продолжало работать? Тогда мы не будем полностью ломаться каждый раз, когда что-то идет неправильно. Ты все еще видишь главную страницу. Ты все еще видишь твиты. Мы могли бы создать режим полутонов?»
Ответ был положительным. Именно в ту неделю мы сформировали рудиментарную версию разделения опций по секторам. Теперь наш сайт не падал полностью из-за любой даже самой маленькой проблемы. «Star Trek»: дар, который мы продолжаем получать.
Одной из самых больших проблем Twitter была наша так называемая платформа. В 2007 году мы запустили свою платформу – набор API (интерфейс прикладных программ), который позволяет трети разработчиков пользоваться технологией Twitter. Нам нравилась возможность привлекать сторонних разработчиков к созданию приложений, которые бы углубляли и дополняли Twitter. Но мы продумали эту идею недостаточно хорошо.
Как только мы сделали релиз платформы, появилось большое количество новых приложений для Twitter. Большое количество новых опций спровоцировало повышенную активность пользователей. А разрешение всем этим приложениям делать практически неограниченное число обращений к нашему серверу больно ударило по нему. Это создало угрозу стабильной работе Twitter. Девелоперская платформа была тяжелой, дорогой и часто вносила свою лепту в поломку сайта.
ЧТОБЫ ОДЕРЖАТЬ
ВПЕЧАТЛЯЮЩУЮ ПОБЕДУ,
НАДО БЫТЬ ГОТОВЫМ
К ВПЕЧАТЛЯЮЩЕМУ ПРОВАЛУ.
ДРУГИМИ СЛОВАМИ,
ВЫ ДОЛЖНЫ БЫТЬ ГОТОВЫ
УМЕРЕТЬ ЗА СВОЮ ЦЕЛЬ.
Когда появился Facebook со своей платформой f8, думаю, они тоже испытывали некоторые из этих проблем. Через полгода Кэтрин Рампелл (Catherine Rampell) из
Рисуя обложки для книг, я понял, что лучшие из них должны отвечать множеству критериев. Они нравятся отделу дизайна, издательскому и продажам. Так же и с успешной платформой: она должна в первую очередь служить клиентам. Во-вторых, должна обогащать сообщество разработчиков, чтобы они могли зарабатывать на жизнь, создавая забавные проекты с использованием частей нашего кода, которые мы решили сделать публичными. И наконец, они должны увеличивать общую стоимость Twitter, делая его лучшей компанией и лучшим сервисом. Именно эти критерии должны были руководить нами при совершении релиза. Вместо этого мы просто распахнули шлюзовые ворота. Тем, что потом пришлось закрыть некоторые затворки, мы расстроили многих людей.