“Все, что может пойти не так, пойдет не так”,  —  закон Мерфи.

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

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

Наивность оптимистического прогнозирования

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

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

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

Такой подход к решению проблем  —  сначала создание, затем проверка  —  может привести ко многим непредсказуемым последствиям. Слепой оптимизм заставляет видеть только конечную цель и игнорировать все факторы, необходимые для успеха на этом пути. Это то же самое, что перестать планировать, перестать прогнозировать, перестать думать о потребителях.

Etsy  —  онлайн-платформа для продажи предметов искусства и ручных изделий  —  усвоила этот урок на собственном опыте. Компания потратила месяцы и сотни тысяч долларов, чтобы создать функцию бесконечной прокрутки для веб-страниц с продуктами. Разработчики были абсолютно уверены в том, что новая функция ускорит товарооборот.

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

Не уподобляйтесь Etsy. Не планируйте, не разрабатывайте и не создавайте код с уверенностью в его 100-процентной непогрешимости. Очень может быть, что ваши инвестиции окажутся напрасными.

Пессимистический оптимизм

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

Но дело в том, что мы не всеведущи. Мы не можем знать, какой эффект произведет продукт (и произойдет ли это в целом).

Конечно, не стоит рассчитывать на неминуемый крах любого начинания. Но нужно признавать вероятность того, что проект может не “выстрелить”. Разработка может оказаться напрасной, созданные компоненты могут не поддаться масштабированию, а потери времени и ресурсов могут привести к тому, что пострадает компания или уйдут клиенты.

Этот принцип лежал в основе учения античных стоиков. Позже их философия была сведена к латинскому изречению premeditatio malorum (предвосхищение худшего), поощряющему визуализацию возможного провала. Иначе говоря, при любом начинании стоики предполагали, что потерпят неудачу и представляли себе все, что может пойти не так. Однако вероятная катастрофа, по их убеждению, была не поводом для пессимизма, а стратегией, позволяющей стать сильнее перед лицом невзгод.

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

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

Катастрофический провал стал хорошим уроком для Etsy. Платформа пришла к пониманию того, что при продвижении проекта нельзя ставить все на карту успеха. Поэтому было принято решение: по мере благополучной реализации 10% каждого проекта, проводить A/B-тестирование, которое покажет, какие изменения нужно внести и стоит ли вообще продолжать разработку. Эта стратегия оказалась очень плодотворной для стабильности и успеха компании. А главное  —  позволила ей стать более гибкой.

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

Правильная позиция

Статья не призывает вас мыслить только негативно. Вместо этого, используйте пессимизм как стратегическое средство для построения более успешной карьеры. Используйте негативную визуализацию, чтобы развивать свои способности и усилить оптимистичное отношение к делу. Однако не позволяйте негативу подрывать вашу веру в свои силы.

Разработчики играют важную роль в мире технологий и бизнеса. Чтобы стать эффективным на этом поприще, нужно быть более реалистичным и практичным по отношению к потенциальным угрозам.

Не позволяйте мыслям о неудаче пугать вас. Заставьте их работать на ваш успех и самосовершенствование.

Читайте также:

Читайте нас в TelegramVK и Яндекс.Дзен


Перевод статьи Zachary Minott: Why Your Development Projects Fail

Предыдущая статьяНовые функции стандартной библиотеки Kotlin 1.5
Следующая статьяТОП-25 библиотек React 2021–2022: новые, полезные, но малоизвестные пакеты JavaScript