Спроси разработчика. Как стать лидером рынка с помощью создания собственного ПО - Джефф Лоусон
Шрифт:
Интервал:
Закладка:
Лично я считаю, что нужно создавать самостоятельно все, что дифференцирует вас при работе с клиентами. Иными словами, вы должны создавать ПО, с которым взаимодействуют ваши клиенты, чтобы не возникла ситуация, когда они спрашивают, почему программа не делает того-то и того-то, а вам приходится отвечать, что все дело в купленном ПО. Все, что затрагивает интересы клиентов, нужно делать своими руками. Случается, что есть смысл написать собственную серверную часть ПО. Иногда в бизнесе конкурентное преимущество дает хорошее управление запасами. Безусловно, в таком случае нужно создавать собственную цепочку поставок ПО.
Но для большинства серверных операций и всего, что не обеспечивает дифференциации при работе с клиентами, ПО необходимо покупать. Вы же не собираетесь создавать собственную электронную почту или систему управления базами данных? Системы управления кадрами, ERP-системы – это области, где вы, скорее всего, не получите конкурентного преимущества в результате собственных разработок. Поэтому хорошим решением будет покупка приложения у SaaS-поставщика. Но позвольте мне еще раз повторить правило: все ПО, с которым взаимодействует клиент, необходимо создавать самостоятельно.
Дифференциацию невозможно купить. Ее можно лишь создать самостоятельно.
Но есть и хорошие новости: создавать ПО стало намного проще. Когда-то, до появления зрелой цепочки поставок ПО, выходом обычно была покупка готовых решений, поскольку решиться на создание собственных было слишком сложно. Чтобы создавать ПО, компании нужно было подняться до уровня Microsoft или Oracle. Но теперь, благодаря третьей великой эре программного обеспечения и цифровой цепочке поставок, создание ПО не просто возможно, а необходимо. Эту необходимость диктует конкурентная динамика.
Вы связываете строительные блоки в целостное ПО, которое вам необходимо и которое обеспечивает ваше конкурентное преимущество. Но части, из которых создается ваше ПО, являются готовыми и быстро интегрируются в ваши программы. Вы добавляете в набор готовых элементов множество собственных микросервисов, создаете сервисы, которые составляют ваши конкурентные преимущества. Возможно, это собственный алгоритм ценообразования или логистический алгоритм, уникальный для вашей системы дистрибуции. Но использование готовых строительных блоков везде, где это можно, позволяет направить всю энергию на свои уникальные области дифференциации.
К счастью, все больше и больше этих готовых строительных блоков становятся зрелыми. Облачные платформы заменяют устаревшую инфраструктуру почти везде, где это возможно. Эти коммерческие микросервисы являются исходными ингредиентами почти всех используемых вами приложений. За пользовательским интерфейсом приложения в действительности имеется своего рода лоскутное одеяло, состоящее из сотен или даже тысяч микросервисов, некоторые из которых созданы собственными разработчиками компании, а некоторые – коммерческими поставщиками.
Ныне существует еще немало мест, где у разработчиков нет другого выбора, кроме создания микросервисов с нуля, поскольку готовых альтернатив просто не существует. Но прелесть модели использования микросервисов заключается в том, что микросервис можно встроить в любое место приложения, не нарушая остальной части кода. По мере появления новых коммерческих микросервисов разработчики зачастую удаляют собственные части кода и заменяют их коммерческими альтернативами. А все потому, что подобные коммерческие микросервисы становятся лучше с каждым днем, в то время как собственные разработки нередко не развиваются. Возьмем, например, Twilio – в период работы над этой книгой в нашем отделе исследований и разработок трудилось более тысячи человек, ежедневно совершенствовавших коммуникационную платформу. Наши клиенты получают выгоду от того, что наше приложение непрерывно улучшается.
Теоретически в один прекрасный день софтверная компания сможет создать приложение, вообще не написав собственного кода, а просто скомпоновав микросервисы, созданные другими компаниями. Фактически это идея компании, которая оценивается на рынке в $1 млрд или больше, но управляется одним человеком – разработчиком, чье приложение выстроено на основе коммерческих микросервисов. Такого пока не произошло, но это лишь вопрос времени. Процесс, который мы называем «написание ПО», может стать в значительной степени процессом объединения фрагментов кода – точно так же, как Dell собирает из готовых компонентов персональный компьютер или шеф-повар делает особенное блюдо из готовых ингредиентов. В действительности написание программы может вскоре оказаться таким легким делом, которое под силу любому человеку без специальной подготовки в области компьютерных наук.
Пока же существует гибридная модель. Вы покупаете общие части кода там, где возможно, а остальное пишете самостоятельно. Новым может быть то, как именно вы интегрируете готовые части и насколько хороша ваша программа на основе микросервисов, с которой взаимодействуют клиенты. В состав Apple iPhone входят готовые компоненты, такие как чипы памяти и флеш-накопители, которые может купить любая компания. Apple не разрабатывает и не создает собственные версии этих компонентов, с тем чтобы сделать свой продукт лучше других смартфонов. Но Apple разрабатывает специальный микропроцессор для iPhone, потому что он улучшает работу iPhone. Apple также пишет все ПО для iPhone. Ноу-хау Apple – это знание того, какие компоненты iPhone покупать, а какие создавать самостоятельно; знание того, как интегрировать эти части уникальным образом, и, самое главное, привлечение лучших разработчиков планеты. Apple также всегда знала, как преподнести свою историю и продать свой бренд – это еще одна область, где она решила дифференцироваться, и это решение окупилось в полной мере.
Точно так же, как и Apple, разработчики теперь сочетают собственное ПО с готовыми микросервисами, предоставляемыми другими. Хороший пример – Uber. То, что вы называете «приложение Uber», на самом деле представляет собой набор примерно из 4000 микросервисов, некоторые из которых разработаны инженерами Uber, а многие предоставляются внешними операторами облачных платформ. Когда пассажир звонит водителю, его команда мгновенно перемещается с главного экрана Uber на наши серверы Twilio, и мы направляем вызов водителю. Но это все невидимо ни для пассажира, ни для водителя – они лишь знают, что Uber позволяет им связаться друг с другом. Платежи обрабатываются другим микросервисом, в то время как конвертация валют осуществляется микросервисом Tincup, который Uber разработала самостоятельно.
Именно так все новые компании в Кремниевой долине создают свое ПО, быстро превращающееся в стандарт для традиционных компаний, таких как банки, розничные продавцы и авиакомпании.
Спросите своих разработчиков, какие сервисы вам нужно покупать
Некоторые компании считают, что такие услуги, как вычисления, хранение данных, платежи или связь, являются основными и не могут передаваться на аутсорсинг. Например, я знаю розничные компании, которые на заре существования облака