Автономность проектов
Существует мнение, что разработку проекта можно закончить. В основном, так считают люди, далекие от самой разработки, но и внутри каждого разработчика есть ощущение, что когда-нибудь это закончится и все будет работать хорошо и само.
Этот пост я написал для разоблачения самообмана и возможности сослаться на него в диалогах. Я постарался приводить понятные аналогии и примеры.
Почему нельзя написать идеальную программу
Можно, ведь она основана на логике — абстрактном математическом понятии. При этом мы изначально берем за аксиому верность каких то утверждений:
Если А верно, то и Б верно, но то, что А верно — мы решили сами.
Но программы работают на конкретном оборудовании — станки, ЭВМ, самолеты. А они собраны из неидеальных деталей, а значит неидеальным способом. А значит — они сломаются даже до физического износа. В общем, об этом и так сказано достаточно много.
Поэтому наша программа из одной строчки гарантированно будет работать с ошибками.
mov AX, 0
Нанимаем техников и что?
Ок, мы закрыли вопрос оборудования, повысили его надежность, наняли системных администраторов для замены сбойного.
Для того чтобы вывести на экран «Hello, world!» нужно несколько сот строчек кода (послать сигналы соответствующему оборудованию, обработать шрифт и т.д.) — для аналогии можете представить себе несколько школьных досок заполненных математическими формулами. Ошибка в начале рассуждений вполне может перечеркнуть всю работу. Драйвера пишут уже 100 лет и все равно они не идеальны.
Современные операционные системы насчитывают миллионы строк кода. Легко себе представить количество логических ошибок в такой огромной среде.
И да, чем больше пользователей у вашего продукта — тем больше будет ошибок и багов.
Да, мы могли бы писать программы без использования чужих разработок, но нужен ли будет кому-то идеально работающий продукт устаревший на 10 лет его разработки?
Мы готовы ждать долго, дорого, чтобы было ах…
Наш мир — это мир конкуренции. Без конкуренции — не было бы движения, так как пропадал бы смысл существования.
Бизнес — это максимальная конкурентная среда. Здесь нельзя ждать.
Представьте что для вашей курьерской организации вы заказали в 18 веке телегу с супер-колесами. Она позволила бы вам обойти конкурентов и увеличить прибыль на всю оставшуюся жизнь. Вам сказали, что разрабатывать ее будут 10 лет. Но через 5 лет появляются автоматические повозки, еще через 5 — конкуренты налаживают их массовое производство и вот уже бизнес любого школьника рентабельнее вашего.
Вчера Артемий Лебедев хватался кроссбраузерностью и стилями. Сегодня сотни framework’ов сделают тоже самое. Ваш миллионрублевый сайт под ключ нацеленный на гигантское увеличение продаж — уже завтра конкуренты, постоянно обновляющие технологии задемпингуют вас с помощью низких накладных расходов.
Вывод
Да, в идеальной среде без конкуренции и оборудованием из заколдованного мифрила автономные проекты могут существовать. А мы же пока будем готовиться к бесконечной разработке!
Автор: arvitaly