Книга: Правила Кавасаки. Жесткое руководство для тех, кто хочет оставить конкурентов позади

Глава 29. О чем лгут инженеры и программисты

Глава 29. О чем лгут инженеры и программисты

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

Рик Кук, американский писатель-фантаст

Я готов превозносить инженеров и программистов, однако должен признать, что они лгут, и лгут часто. Возможно, ложь – необходимое условие для создания великой инновации, потому что куча людей норовят сказать новатору о том, что его идея нереализуема или никому не нужна. Однако если новатор знает, что они лгут, это никак его не заденет.

• «Я ничего не знаю о маркетинге». Эта ложь продиктована ложной скромностью. На самом деле человек думает: «Я ничего не знаю о маркетинге, но неужели он более сложен, чем мое нынешнее занятие? Надеюсь, все эти ребята с MBA смогут создать хоть что-то достойное моей прекрасной программы». Впрочем, эта ложь довольно безобидна: как только разработчик начнет пропускать сроки завершения одного этапа работ за другим, то сам поймет, что проблемы серьезнее, чем ему казалось.

• «Мы собираемся начать бета-тестирование». Это заявление не имеет никакого смысла, потому что срок начала бета-тестирования вообще не важен. Единственное, что имеет значение, – это когда бета-тестирование будет завершено (главное жесткое и эффективное правило проведения бета-тестирования в наши дни гласит, что оно заканчивается, когда заканчиваются деньги). В старые добрые времена альфа-тестирование означало «все свойства в наличии, однако не всегда работают штатным образом», а бета– «в программе нет повторяющихся багов». В наши дни бета значит: «Мы уже пропустили все мыслимые сроки вывода продукта на рынок, обещанные инвесторам».

• «Я сделаю в программе комментарии, чтобы следующий человек, работающий над ней, понял, что к чему». Эта ложь вызвана добрыми намерениями. Программист действительно намеревается дополнить программу комментариями, но, когда срок сдачи продукта приближается, его приоритеты резко меняются. И тогда он ставит перед руководством вопрос: «Вы хотите, чтобы я занялся комментированием программы или же скорейшим завершением работы на ней?» Угадайте, каким бывает ответ? К счастью, отсутствие комментариев обычно не имеет никакого значения, потому что программа написана настолько ужасно, что в течение года ее приходится переписывать с нуля.

• «Наша архитектура может масштабироваться». Эта ложь нравится мне больше всех остальных. Обычно эту фразу говорит тот, кто никогда не занимался вопросами производства продукта, после того как создает прототип в Visual Basic. В более пространной версии эта ложь звучит следующим образом: «Наша архитектура более масштабируема, чем архитектура Google. Их система позволяет одновременно обрабатывать 25 миллионов поисковых запросов. Мы же легко можем обрабатывать миллиард». К счастью, в большинстве случаев принятие продукта происходит медленнее, чем в самых «консервативных» прогнозах CEO, поэтому проблема масштабируемости никогда не проявляется в полном объеме.

• «Программа соответствует всем стандартам отрасли». Это почти правда, которая требует небольшого уточнения: «Программа соответствует всем стандартам отрасли, с которыми я согласен». Программист принимает личное решение игнорировать стандарты, которые ему не нравятся, например стандарты, навязываемые Microsoft. С его точки зрения, это не столь важно: ведь потребители никогда об этом не узнают.

• «У нас есть эффективная система отчетов о багах». Чаще всего эта ложь строится на уверенности в том, что система почти не имеет багов и поэтому их база будет довольно незначительной по размерам. Однако практика показывает, что если количество задокументированных багов не превышает 1000, то компания просто не умеет их отслеживать.

• «Мы можем сделать все то же самое быстрее, дешевле и лучше, если возьмем на работу команду офшорных программистов из Индии». Эту ложь редко можно услышать из уст рядовых программистов – куда чаще ее произносят главные инженеры. Почему-то многие уверены, что каждый программист в Индии профессионален, быстро работает и стоит копейки, а каждый программист в США некомпетентен, медленно работает и много просит. На самом деле это совсем не так.

• «Бета-тестеры обожают этот продукт». За 25 лет работы в мире технологий я ни разу не слышал, чтобы бета-тестерам не понравился продукт. Для этого могут быть три причины: во-первых, многие из них настолько горды, получая программу раньше даты официального выпуска, что просто не хотят говорить о ней ничего плохого. Во-вторых, большинство бета-тестеров не пользуются программой достаточно активно. В-третьих, большинство бета-тестеров не хотят выглядеть слишком жестокими и критиковать новый продукт компании. В их глазах это так же неприемлемо, как сказать другому человеку, что его ребенок – урод.

• «В этот раз мы сделали все правильно». Самое пугающее в этой фразе то, что произносящий ее действительно в это верит. Причем раз за разом. Проблема, однако, заключается в том, что «в этот раз» возникает снова и снова. Я искренне люблю разработчиков и верю, что в конце концов они сделают все правильно. Стоит, правда отметить, что в конце концов мы все умрем.

• «Эта программа написана ужасно. Проще написать ее заново, чем выявить все ошибки». Каждый программист говорит это о любой программе, написанной кем-то другим. Кто-то обязательно скажет это и о переписанной заново версии программы.

• «Я люблю поразмыслить об архитектуре, но при этом умею писать программы». Это означает, что программист не умеет писать программы. И, скорее всего, он не способен создать и хорошую архитектуру.

• «Это работает на моем компьютере». При этом не исключено, что этот «мой компьютер» – единственный, на котором программа может работать.

• «Я могу перестать создавать программы и вместо этого заняться управлением бизнесом». Это можно считать отличной эпитафией для каждого технаря, занявшегося предпринимательством. Подобные слова означают, что он (или она) не может ни бросить программирование, ни управлять бизнесом.

• «Даже моя мама может переключаться из одного экрана в другой». Разумеется, особенно если ваша мама имеет научную степень в области компьютерных наук.

Мне нравится, как лгут разработчики, по трем причинам. Прежде всего это показывает, что они действительно, а не только в анекдотах не знают, как работает компания. Кроме того, они искренне верят в собственную ложь. Чего нельзя сказать о предпринимателях, венчурных инвесторах и юристах. Третье, их ложь свидетельствует не о нечестности, а скорее об определенной незрелости, что со временем может пройти. Если вы разработчик, то теперь знаете, как именно лжете, даже не осознавая этого. А если вы по другую сторону баррикад, то теперь знаете, когда именно разработчики вам лгут.

Оглавление книги


Генерация: 0.056. Запросов К БД/Cache: 0 / 0
поделиться
Вверх Вниз