Как изменить свое мышление, когда вы сломали свой код

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

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

Старый я

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

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

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

Табло

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

Мне потребовалось некоторое время, чтобы понять, что табло нет. Бальной системы нет. Ошибки — нормальная часть разработки программного обеспечения. Их делают даже самые опытные разработчики. У каждого старшего разработчика есть несколько ошибок, которые он совершал за свою карьеру. Говоря о себе, бывают моменты, когда я прогуливаюсь по улице и вспоминаю глупую ошибку, которую я вызвал.

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

Общность

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

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

Возможность

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

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

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

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