“Все, что может пойти не так, пойдет не так”, — закон Мерфи.
Мы, разработчики, легко попадаем в ловушку самоуверенности, полагая, что все наши проекты обречены на успех. Мы любим тешить себя мыслью о том, что все задуманное воплотится наилучшим образом. Поэтому возлагаем большие надежды на каждую разработку, свято веря в эффективность и высокую инвестиционную отдачу конечного продукта.
Таким образом, мы тратим массу времени и ресурсов на разработку проекта, ни на минуту не сомневаясь в том, что наши усилия не пропадут даром. Когда же работа над проектом подходит к концу, спешим внедрить его, довольные тем, что он завершен и упакован.
Наивность оптимистического прогнозирования
Ориентироваться исключительно на успех крайне наивно. Оптимизм — это хорошо, но слепой оптимизм — путь к катастрофе. Проектирование с расчетом на успех — это наглядный пример того слепого оптимизма, который может иметь катастрофические последствия. К сожалению, эта проблема затрагивает культуру многих технологических компаний, как больших, так и малых.
Вы наверняка испытали на себе последствия слепой веры в успех. Возможно, вам приходилось потратить дни, недели или даже месяцы на создание компонента, проекта или какого-либо инструмента, который так никогда и не увидел свет. Возможно, что еще хуже, вы пытались создать собственное приложение, бросив его на полпути или потерпев полное фиаско, поскольку либо не спланировали работу должным образом, либо были сбиты с толку препятствиями, вставшими у вас на пути.
Независимо от того, с какой из описанных ситуаций вы столкнулись, трудно избавиться от гнетущего чувства, которое приходит вместе с неудачей и разрушает оптимистические ожидания.
Такой подход к решению проблем — сначала создание, затем проверка — может привести ко многим непредсказуемым последствиям. Слепой оптимизм заставляет видеть только конечную цель и игнорировать все факторы, необходимые для успеха на этом пути. Это то же самое, что перестать планировать, перестать прогнозировать, перестать думать о потребителях.
Etsy — онлайн-платформа для продажи предметов искусства и ручных изделий — усвоила этот урок на собственном опыте. Компания потратила месяцы и сотни тысяч долларов, чтобы создать функцию бесконечной прокрутки для веб-страниц с продуктами. Разработчики были абсолютно уверены в том, что новая функция ускорит товарооборот.
Однако, несмотря на вложенные ресурсы, бесконечная прокрутка снизила скорость оборота продуктов. Эта неудача, вероятно, была вызвана парадоксом выбора. Он заключается в следующем: чем больше вариантов, тем меньше вероятность того, что мы будем удовлетворены выбором. Поэтому мы часто предпочитаем вообще не выбирать.
Не уподобляйтесь Etsy. Не планируйте, не разрабатывайте и не создавайте код с уверенностью в его 100-процентной непогрешимости. Очень может быть, что ваши инвестиции окажутся напрасными.
Пессимистический оптимизм
Да, оптимизм важен, как и визуализация успеха. Наличие четкой цели, к которой нужно неуклонно стремиться, решительность и большие надежды позволяют разработчикам преодолевать препятствия и доводить проект до конца.
Но дело в том, что мы не всеведущи. Мы не можем знать, какой эффект произведет продукт (и произойдет ли это в целом).
Конечно, не стоит рассчитывать на неминуемый крах любого начинания. Но нужно признавать вероятность того, что проект может не “выстрелить”. Разработка может оказаться напрасной, созданные компоненты могут не поддаться масштабированию, а потери времени и ресурсов могут привести к тому, что пострадает компания или уйдут клиенты.
Этот принцип лежал в основе учения античных стоиков. Позже их философия была сведена к латинскому изречению premeditatio malorum (предвосхищение худшего), поощряющему визуализацию возможного провала. Иначе говоря, при любом начинании стоики предполагали, что потерпят неудачу и представляли себе все, что может пойти не так. Однако вероятная катастрофа, по их убеждению, была не поводом для пессимизма, а стратегией, позволяющей стать сильнее перед лицом невзгод.
Представляя себе, что проект в какой-то момент потерпит крах, вы будете планировать его совершенно иначе. Вы станете более тщательно продумывать стратегию и совершенствовать процесс разработки, чтобы сосредоточиться на ключевых моментах.
Когда же на вашем пути встанет самое худшее, вы будете менее эмоционально относиться к ситуации. Наоборот, вы поведете себя более рационально, стараясь устранить неисправные процессы, проблемы масштабируемости, слабую вовлеченность пользователей или сильно связанные/зависимые отношения между функциями и классами. Вы сможете сделать шаг назад и задуматься над тем, как лучше внедрить новые процессы. Вы будете чаще проводить тестирования и обмениваться мнениями с другими людьми. Вы заставите себя писать код более четко и структурированно, чтобы он был продуктивным и понятным любому разработчику.
Катастрофический провал стал хорошим уроком для Etsy. Платформа пришла к пониманию того, что при продвижении проекта нельзя ставить все на карту успеха. Поэтому было принято решение: по мере благополучной реализации 10% каждого проекта, проводить A/B-тестирование, которое покажет, какие изменения нужно внести и стоит ли вообще продолжать разработку. Эта стратегия оказалась очень плодотворной для стабильности и успеха компании. А главное — позволила ей стать более гибкой.
Следуйте этому примеру — и получите те же преимущества. Вместо того, чтобы простодушно верить в фантастический успех своих проектов, научитесь признавать тот факт, что все может пойти не так. Возьмите на вооружение философию стоиков и развивайте в себе чувство пессимистического оптимизма, которое заставляет реалистично смотреть на вещи, не поддаваясь упадническим настроениям. Такое отношение к делу поможет устоять перед вызовами судьбы и многого добиться.
Правильная позиция
Статья не призывает вас мыслить только негативно. Вместо этого, используйте пессимизм как стратегическое средство для построения более успешной карьеры. Используйте негативную визуализацию, чтобы развивать свои способности и усилить оптимистичное отношение к делу. Однако не позволяйте негативу подрывать вашу веру в свои силы.
Разработчики играют важную роль в мире технологий и бизнеса. Чтобы стать эффективным на этом поприще, нужно быть более реалистичным и практичным по отношению к потенциальным угрозам.
Не позволяйте мыслям о неудаче пугать вас. Заставьте их работать на ваш успех и самосовершенствование.
Читайте также:
- 5 советов аналитикам и их менеджерам
- Практические советы начинающим программистам
- 7 признаков того, что вы - опытный разработчик
Читайте нас в Telegram, VK и Яндекс.Дзен
Перевод статьи Zachary Minott: Why Your Development Projects Fail