Ростислав Чебыкин

Нечего добавлять

Как добавления вредят проектам

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

Пьер Корнель. Рассуждения о полезности и частях драматического произведения

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

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

Пагубная мысль о добавлениях часто исходит от заказчиков и начальников, но, к сожалению, не менее часто — от самих исполнителей. Дизайнер что-то пририсовывает, журналист приписывает, программист ваяет дополнительные фишки, архитектор пристраивает к дачному сортиру бельведер с пинаклями…

Мировой опыт проектирования и разработки показывает, что системы часто улучшаются, если убрать из них что-нибудь лишнее, и почти никогда — если к ним что-нибудь добавить. Наоборот, всякое добавление оттягивает силы от основной идеи проекта — конечно, если она была.

Чтобы реализовать дополнительный компонент, нужно время и прочие ресурсы. А ваш проект, скорее всего, и так уже не укладывается в сроки и бюджет. Значит, ради этого «давайте добавим…» вам придётся ещё больше торопиться, суетиться, халтурить и засорять карму.

Новую деталь нужно увязать с другими частями системы, которые разрабатывались без расчёта на добавление. На увязывание часто требуется больше ресурсов, чем на изготовление самóй детали. При этом вы обязательно упустите нечто важное, и потом придётся в аварийном режиме бороться с последствиями. Кто бы мог подумать, что виджет социальной сети, добавленный в последний момент, сломает форму обратной связи?

Дело усугубляется тем, что мало кто ограничивается единичным дополнением. Если уж чью-то светлую голову посетила идея «давайте добавим», то она продолжит наносить визиты снова и снова. Добавим то, добавим это, потом ещё пятое и десятое, и вообще всё добавим, и это будет продолжаться, пока спасительный форс-мажор не остановит лавину.

Между тем, добавить два компонента — не просто вдвое сложнее, чем один. Трудоёмкость возрастает в геометрической прогрессии, если не в гиперфакториальной. Каждое добавление увеличивает шансы на то, что система накроется медным коллапсом, а вы полностью потеряете над ней контроль. В Интернете полно сайтов, с которыми это уже произошло: половина функций не действует, оставшаяся половина сбоит, а разработчики боятся хоть что-нибудь менять, потому что любое вмешательство в эту пучину хаоса грозит гибелью всему оставшемуся. А начиналось всё с идеи добавить какую-то кнопочку.

Особый повод для недоумения — в том, что опыт предыдущих неприятностей никого не учит. Вы помните, какие проблемы возникли в прошлый раз из-за внезапного желания что-то добавить? А в позапрошлый? А во все предыдущие разы? И при этом вы продолжаете снова настаивать на добавках, как будто вам не хватило прежних эпизодов. Вам не жалко времени, денег и нервных окончаний?

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