Follow by Email

понедельник, 25 февраля 2013 г.

О великих велосипедах, или почему иногда нужно писать с нуля


Not invented here — источник инноваций и причина успеха?


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


Очень часто в компаниях выступают против синдрома «not invented here». Я, как менеджер проектов, прекрасно понимаю соображения такого толка. Велосипеды — это лишние затраты, удлинение сроков разработки, сложность и дороговизна поддержки продукта в будущем, зависимость от разработчиков велосипеда и все такое прочее.

Но как программист, понимаю однозначно — без велосипедов не будет инноваций. А без инноваций не будет прорывных технологических решений, новых проектов. Будут только одинаковые, похожие друг на друга, собранные из одного набора кубиков проекты и приложения, никак не могущие конкурировать между собой (разве что кто кого засудит и «отожмет» рынок).

Не случайно поэтому Гугл выделяет 20% на свободное творчество, и это рождает такие великолепные переосмысления старых вещей, как почтовый клиент Gmail.

Но обо все по порядку. В этой статье я хочу коротко рассказать о трех «велосипедах», которые произвели революцию в своей области.


Велосипеды и инновации часто ходят рядом — иногда в буквальном смысле

Ford Model T


Если бы я слушал своих клиентов, мне бы пришлось дать им более быструю лошадь
Генри Форд, выдающийся предприниматель и изобретатель.


В начале 20го века производство автомобилей было ручным. Каждую операцию производили индивидуально. Также автомобили были очень дорогими, потому что было много разных настроек в «конфиге» сборки, и это приводило к издержкам.

Форд изменил ситуацию в корне, пойдя против сложившихся представлений, и изобрел велосипед. Во-первых, он выбросил все дополнительные опции, сказав известную фраза «любой клиент может получить автомобиль выкрашенный в тот цвет, в который он хочет — до тех пор пока этот цвет — чёрный».

Но что еще более важно, он первым запатентовал и стал использовать промышленный конвейер для сборки, в сотни раз повысив эффективность производства. О чем рассказал в известной книге "«Моя жизнь, мои достижения».".

Изобретательность Форда сделала автомобиль из предмета роскоши обычным, доступным для американского среднего класса средством передвижения.

Впрочем, не все попытки бывают удачными и могут просто ехать, не говоря уже о взлете.

Google


Компания Google является примером фантастически удачной корпорации, сочетающей инновационность своих продуктов с коммерческим успехом.

Однако в начале 2000х, когда они только начинали, ситуация на рынке поисковых систем была совершенно иной. Сегодня Google — лидер и монополия. А тогда царили Yahoo, Altavista, Hotbot, Lycos и ряд других поисковиков, о которых помнят теперь только зубры интернета (хотелось сказать, древнее только фидо, но это было бы ложью)

Казалось бы, стоит ли изобретать велосипед, когда на рынке столько успешных корпораций. Однако Сергей Брин так не думал, напротив, он активно интересовался тематикой, сделал ее сначала объектом своих научных исследований. А затем и вместе с будущим партнером Ларри Пейджем написал прототип поисковой системы в рамках университета, из которого затем и выросла сверхуспешная компания, пережившая крах доткомов и победившая всех своих конкурентов.

Google набирал и набирает только лучших, и поддерживает дух энтузиазма и творчества, что несовместимо с запретом на создание своих велосипедов. 20% времени выделяется сотрудникам на создание своих проектов, и это дало свои плоды неоднократно.



nginx



Осенью 2001 года у меня появилась идея написать более легкий и производительный веб-сервер, чем Apache. На тот момент были уже другие похожие серверы, но все они не умели проксировать, они отдавали только статику. Был у них еще один общий недостаток – они работали в одном процессе, и, соответственно, отмасштабировать их, допустим, на двухпроцессорной машине было нереально.
На тот момент у меня уже был достаточно неплохой опыт работы с Apache — и как у системного администратора, и как у программиста. Два написанных модуля прибавили мне знаний: приходилось смотреть исходники Apache и понимать, как там все устроено. Поэтому очень многие вещи в nginx перекочевали из Apache идеологически. Не код, а именно идеология, весь код nginx был написан с нуля.

Из интервью выдающегося разработчика Игоря Сысоева


Каких только вариаций веб-сервера на Хабре не было — и на PHP, и на bash, и чуть ли не на Brainfuck (хм, а может не было? надо проверить! :) ).

Но по-настоящему серьезных разработок крайне мало. Ведь в сфере веб-серверов, казалось бы, все давно решено — есть проверенный годами Apache, есть всякие Томкаты для Джавы, для MS есть свой IIS, в общем, выбирай — не хочу. И взяться разработать веб-сервер, который в будущем не просто обойдет apache, а даже местами вытеснит его (многие ставят nginx +php-fpm без апача) — это не просто дерзко, это просто неслыханно!

Но, тем не менее, велосипед был написан, и достиг впечатляющих результатов (100 тысяч соединений, Фря, nginx, масло, 2007).


Слова выдающегося инноватора актуальны и поныне.

%имя Вашего проекта%


К чему все эти истории? Вам может казаться, что написать велосипед — это лишнее. 
Начальство может успешно промывать мозги, что писать свои компоненты не нужно, нужно все брать готовое.
Друзья говорить, что уже написано 10 фреймворков (серверов, шифраторов, поисковых систем, архиваторов, собрано марсоходов и тд), и что ваша затея не имеет смысла.

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

Найдите то, что Вам по душе. И создайте нечто свое, новое, что можно показать миру. Ведь если все будут собирать продукты из кубиков лего и копировать друг у друга, кто будет двигать мир, как не изобретатели велосипедов?

Invent it all again!

upd: в комментариях увидел жалобы на отсутствие определения «велосипеду». Общего определения однозначного, как известно, не существует. Дам свое. 

Итак — под велосипедом я в статье подразумеваю написание с нуля своего решения для определенного круга задач, когда уже имеются готовые чужие решения, которые эти задачи решили. И никаких связей с качеством не делаю — велосипед может быть как суперудачным, так и просто таким, что хочется плакать, глядя на него (вторых больше).

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

оригинал http://habrahabr.ru/post/170379/

Комментариев нет:

Отправить комментарий