Ты добавил всего две строчки. Почему на это ушло два дня?

На первый взгляд вопрос кажется разумным.

  • Потому что описание проблемы была расплывчато, и чтобы ее воспроизвести, потребовалось много времени.
    Разработчик, первым делом, обратиться к человеку, который сообщил о проблеме. Постарается узнать больше деталей, чтобы понять, как воспроизвести проблему. На коммуникации тратится очень много времени. А если задача не была начата в ближайшее время, то будет тратиться много времени хотя бы на то, чтобы вспомнить об этой проблеме.
  • Потому что проблема была связана с функциональностью, с которой я не знаком.
    Т.к. программист не занимался функционалом, в котором требуется выполнить исправление, ему потребуется больше времени, чтобы разобраться в деталях и нюансах работы ПО.
  • Потому что я потратил время, чтобы исследовать реальную причину проблемы, а не просто смотреть на симптомы. Если какой-то код выдаёт ошибку, вы можно просто обернуть его в оператор try-catch и скрыть ошибку. Нет ошибки, нет проблем, правильно? Извините, для меня сделать проблему невидимой — это не то же самое, что исправить ее. «Проглатывание» ошибки может легко привести к неожиданным побочным эффектам.
  • Потому что я исследовал, существуют ли другие способы воспроизведения проблемы, а не только описанные этапы. Определённые шаги для воспроизведения могут показать проблему в одном месте, когда на самом деле она может быть более глубокой. Поиск точной причины проблемы и рассмотрение всех способов её получения даёт ценную информацию. Очень полезно рассмотреть, как на самом деле используется код и где могут быть другие места с возможными (другими?) проблемами.
  • Потому что я потратил время, чтобы проверить, есть ли другие части кода, которые могут быть затронуты этой проблемой. Если появилась одна ошибка, то такая же могла быть допущена и в других местах кодовой базы. Сейчас самое время это проверить.
  • Потому что когда я нашёл причину проблемы, я искал самый простой способ её устранения с минимальным риском побочных эффектов. Я не стремлюсь к скорости. Я хочу исправить ситуацию так, чтобы устранить и другие проблемы в будущем.
  • Потому что я тщательно протестировал это изменение и убедился, что оно решает проблему для всех вариантов работы кода, которые были затронуты. Я не хочу полагаться на кого-то другого, чтобы проверить, что я сделал правильно. И не хочу, чтобы ошибка была найдена в будущем, чтобы мне пришлось вернуться к этому коду, когда я уже забуду её контекст. Переключение контекста дорого и неприятно. Наличие специального тестировщика, который должен снова посмотреть на «то же самое» изменение, — то, чего я хочу избежать, когда это возможно.

Я не люблю исправлять ошибки. Я предпочитаю работать над новыми вещами.

Что может быть хуже, чем исправить ошибку? Необходимость исправлять одну и ту же ошибку неоднократно.

Автор: @eantonov
Телеграм: Тимлид Очевидность
Обсудить: Чат канала в телеграм

Рейтинг
( 1 оценка, среднее 5 из 5 )
Maxyc Webber/ автор статьи
Мне 35 лет. Опыт профессиональной разработки 15 лет. Занимаюсь разработкой и поддержкой корпоративных систем автоматизации бизнеса, а также высоконагруженными проектами. Мне нравится решать нестандартные проблемы бизнеса. Имею опыт формирования команд под проект, налаживания процесса разработки, коммуникации программистов и заказчиков. Есть опыт работы с зарубежными заказчиками (ОАЭ, Польша, Германия, Швейцария).
Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.