Руководство, как стать лучшим разработчиком программных продуктов

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

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

Тематическое исследование

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

Во время обычного еженедельного выпуска кто-то из команды Мэри запустил в производство код, который позволяет покупателям редактировать цену обуви и совершать покупку с отредактированной ценой. Пятница, 18:00, и менеджер Мэри звонит ей, чтобы сообщить, что что-то не так в производственной среде.

Как Мария может решить эту проблему?

Как вы можете улучшить свои навыки управления инцидентами?

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

  1. Понять проблему
    Прежде всего, Мэри должна потратить некоторое время на то, чтобы понять, в чем именно заключается проблема. Можно провести здесь разумное количество времени, пока Мэри полностью не поймет проблему. Это лучше, чем тратить время, решая не ту проблему.
  2. Сохраняйте спокойствие. Расслабьтесь, найдите время, чтобы все обдумать
    Мэри как раз собиралась начать свои выходные, и звонок мог ее очень расстроить. Никогда не знаешь, когда могут произойти инциденты. Что важно, так это войти в оперативный штаб со свежими мыслями. Мэри решила успокоиться, напиться, а затем войти в боевую комнату.
  3. Вы можете быть мастером на все руки, но обратитесь к нужным людям, пока не стало слишком поздно
    Мэри всю свою карьеру проработала инженером и была одной из лучших в организации . Это не значит, что она должна все отлаживать сама. Она выяснила, какие коммиты могли повлиять на ситуацию, и попросила младших разработчиков присоединиться к звонку.
    Она также информирует своего менеджера и технического руководителя о статусе проблемы, следующих шагах и сроках ее действия. для исправления.
  4. Общаться четко, проявлять сочувствие
    Мэри спокойно объясняет проблему своим коллегам и предлагает решение
  5. Соблюдайте культуру отсутствия вины
    Хотя Мэри лично недовольна этим инцидентом, она не рассказывает об этом своим сверстникам. Она считает, что это часть работы и что ошибки могут случаться.
  6. Анализ влияния
    Пока другие члены команды работают над исправлением, Мэри решает выяснить, сколько клиентов разместили заказы, минуя фактическую цену.
    Она проходит. данные этих клиентов операционной группе, чтобы проверить, могут ли эти заказы быть исправлены параллельно.
  7. Немедленно найдите, как предотвратить ухудшение воздействия
    Мэри предлагает план, как на данный момент запретить платформе принимать новые заказы. Она сообщает фронтенд-инженерам показать баннер обслуживания.
  8. Найдите исправление, тщательно протестируйте его, примените исправление
    После того как младшие разработчики напишут исправление, Мэри лично тщательно проверит код и попросит протестировать его в среде контроля качества. После того, как все тестовые проверки пройдены, она запрашивает развертывание и опускание баннера обслуживания.
  9. Наблюдение и мониторинг
    После того, как исправление будет развернуто, Мэри запрашивает производственное тестирование и лично контролирует несколько заказов, которые были размещены после этого. Убедившись, что все в порядке, она передает обязанности по мониторингу инженеру службы поддержки и подписывает контракт.
  10. Найдите RCA и примите участие в вскрытии. Посмотрите, как вы можете избежать подобных инцидентов в будущем
    На следующей неделе она снова соберется со своими сверстниками, чтобы определить, как этот пограничный случай был упущен и как этого можно избежать в будущем. Она предлагает поднимать оповещения в случае несоответствия цен, выдавать ошибки, если значения подделаны, и писать дополнительные модульные тесты для проверки всех сценариев.

Заключение

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

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