Вчера (~10 лет назад, прим. пер.) я спросила в Твиттере о страхе и программировании, и о том, как боязнь вносить важные изменения делает программиста неэффективным. Завязалась интересная дискуссия, о которой я хочу рассказать.
Райан Кеннеди поделился презентацией «Разработка, управляемая страхом», где говорится, что страх создает локальные максимумы. Когда мне страшно, я становлюсь суперконсервативной и боюсь вносить изменения, думая, что все сломается. Если вы боитесь изменений, вы не можете существенно улучшить код или провести рефакторинг.
Удобные инструменты и налаженные процессы уменьшают страх
Система контроля версий позволяет вносить изменения без боязни потерять старую версию. Многие упоминали тестирование как способ укрепить уверенность в себе. Также помогают тестовые среды, постепенные деплои, возможность откатить деплой и QA-команды.
Страх негативных последствий
Но даже с лучшими инструментами ошибки неизбежны. Важно, что происходит, когда вы ошибаетесь. В Etsy, Google и Stripe практикуют обсуждение инцидентов без обвинений. Фокусируются на фактах, а не на поиске виноватых. Если обвинять людей, они будут бояться вносить изменения, что приведет к написанию некачественных программ.
Иррациональные страхи
Некоторые страхи иррациональны и могут передаваться другим людям. Если вы сделали деплой, что-то пошло не так, вы нашли причину, исправили проблему и никто на вас не накричал, будущие деплои не должны пугать. Но мы люди, а не логичные роботы. Возможно, какое-то время вы будете нервничать при выполнении деплоя, пока не убедитесь, что все в порядке.
Как страх ошибок влияет на карьеру и жизнь
![Как страх ошибок влияет на карьеру и жизнь](https://media.proglib.io/posts/2024/07/25/d5cbe139cc9f821bfa1f1b6e36727360.jpg)
Бесконечный перфекционизм и откладывание дел на потом
- Перфекционисты, одержимые страхом ошибиться, часто не терпят даже малейших недочетов в своей работе.
- Стремление к недостижимому идеалу может вести к прокрастинации и откладыванию важных задач и целей.
Желание заслужить одобрение окружающих любой ценой
- Страх ошибок может выражаться в стремлении угодить начальству, преподавателям, родным, быть «хорошим» в глазах других.
- Попытки всем угодить требуют колоссальных усилий: сверхурочной работы, жертвования выходными, неумения отстаивать личные границы.
- Совершив оплошность, человек вновь стремится заслужить расположение окружающих.
Влияние на принятие решений
- Люди, испытывающие страх перед ошибками, могут быть склонны к излишней осторожности при принятии решений или, наоборот, к избеганию принятия решений вообще. Это может замедлять процесс работы и приводить к упущению важных возможностей.
Взаимоотношения в команде
- Страх ошибок может привести к тому, что человек будет менее открыт к обратной связи и сотрудничеству, что может негативно сказаться на командной работе и рабочих отношениях.
Здоровое отношение к ошибкам на работе
![Здоровое отношение к ошибкам на работе](https://media.proglib.io/posts/2024/07/25/a0dfcda224bf13fe0984871538202069.jpg)
- Совершать промахи в рабочем процессе естественно, это неотъемлемая часть профессионального опыта каждого человека.
- Сохраняйте спокойствие и трезвость мышления, не позволяйте эмоциям искажать реальность и влиять на принятие решений.
- Сосредоточьтесь на выявлении причин, приведших к ошибке, а не на ее последствиях.
- Своевременно устраняйте последствия ошибок, делайте выводы, работайте над самосовершенствованием и улучшением рабочих процессов.
- Помните, что ошибки неизбежны.
Мы задали три вопроса в телеграме
🔍 Как вы справляетесь со страхом совершить ошибку в коде?
🛠️ Какие инструменты или практики в вашей команде помогают уменьшить страх перед внесением изменений в код?
🌱 Как вы превращаете свои ошибки в возможности для роста и развития?
И получили следующие ответы (орфография и пунктуация сохранены):
Жизнь без страха
![Жизнь без страха](https://media.proglib.io/posts/2024/07/25/3d5b4cb26dcf14b1c4cd1443ba678aae.png)
«Никакого страха, пусть клиенты боятся!»
Ошибки – это опыт
![Ошибки – это опыт](https://media.proglib.io/posts/2024/07/25/826977d3cc5ee598f208843ec3b505d5.png)
«Страх я вижу только в глазах тимлида, когда он видит мой пятничный пулл реквест.
Надо смириться с тем, что ошибки будут и не ошибается только тот, кто нихрена не делает. Ошибки это опыт.
Но с налаженным процессом разработки и хорошими инструментами, вероятность ошибок и их последствия сводятся к минимуму. Мы используем вполне обычный набор, линтеры, форматтеры, логгеры, системы контроля версий с внятной структурой веток, тесты пишем, локальные бэкапы делаем, организовываем код ревью, и все такое врочее».
Тесты, тесты и еще раз тесты
![Тесты, тесты и еще раз тесты](https://media.proglib.io/posts/2024/07/25/f63cf368edadbdcb7c5e5cb233af552d.png)
«У нас нет страха ошибок. Ручное тестирование + автотесты + юниттесты + запрет на внедрение в пятницу = полное спокойствие в жизни».
Смириться с ошибками в коде
![Кодинг состоит из четырех этапов](https://media.proglib.io/posts/2024/07/25/26cd17823a13bb5e04091eb2dbf6e5a7.png)
«Давно смирился с ошибками в коде. Понял для себя что прога делиться на четыре этапа:
- Кодишь.
- Сыпишься на юнит тестах.
- Бегаешь с зелёным жуком по циклам и сверяешь каждое значение.
- Repeat until False».
Оптимизировать процессы
![Оптимизируй процессы](https://media.proglib.io/posts/2024/07/25/0f5cfe6be4be20eb4e8718bc507283b9.png)
«Думаю, тут целый комплекс влияющих факторов. Многое зависит от руководителя и заказчика, а также уровня личного перфекционизма, сроков, сложности задачи, работы системы бережливого производства, и.т.д, и.т.п. Зачастую проблемы чисто организационные. Если так, то можно сделать попытку оптимизировать бизнес-процессы. Если причина сложные отношения, то тут все индивидуально. А вот если излишний личный перфекционизм, то это уже совсем другая история. Истоки ее обычно в самом детстве, а с этим лучше разбираться с психологом».
Всего не предусмотреть
![Всего не предусмотреть](https://media.proglib.io/posts/2024/07/25/b48033449cba56ad663484afd44464f8.png)
«А кто-то реально боится ошибок? Написал тесты да и все. Если баг, то баг – все не предусмотреть»
Все проблемы решаемы
![Все проблемы решаемы](https://media.proglib.io/posts/2024/07/25/9a92c0731aea70da24b57120f32822ca.png)
«В смысле "страх совершить ошибку" ? Это уверенность в том, что ошибки обязательно есть, просто их пока не нашли.
От опечаток помогут линтеры. При сборке будут сообщения об ошибках от компилятора (ну или интерпретатора при запуске). От логических ошибок помогут функциональное автотесты.
В самом крайнем случае ошибку найдут тестировщики или пользователи продукта – но и это не страшно: служба поддержки заведет заявку на исправление».
Сталкивались ли вы с ситуацией, когда страх совершить ошибку серьезно повлиял на ваш проект? Как вы справились с этой проблемой?
Комментарии