Шаг 1 заключается в том, что вы должны исходить из того, что это (обновление ломает другие вещи) не является нормальным. Ваше обновление не должно нарушать или замедлять работу других частей приложения. Это не нормально, этого не следует ожидать, и это не вина пользователя, когда они жалуются на это. Вы должны делать как можно больше испытаний, чтобы попытаться предотвратить это. Когда это происходит, у вас есть проблема, и срочно.
Шаг 2 заключается в том, что вы должны знать, что вы сделали. Ваша система контроля версий может помочь вам, или какая-то система отслеживания работы, но вы должны быть в состоянии сказать, в ту минуту, когда вы получите одну из этих жалоб "хорошо, я добавил столбец в эту таблицу, изменил эту сетку для расчета новые налоги, добавили эти два новых отчета ... "и так далее.
Шаг 3 заключается в том, что у вас должен быть опыт быстрого поиска проблем и сбоев, чтобы вы знали, какие вещи могут их вызвать, и можете сразу же решить проблему. Эта вещь стала реальностью, и вы должны быстро найти проблему и получить патч. Изменение отчета не может замедлить работу части приложения, которая не использует отчет. Вы находитесь в аварийном режиме сейчас и должны выяснить, где ошибка и что с этим делать - не нарушая при этом другую часть приложения.
Шаг 4 для каждого из этих страданий, вы должны выучить урок, который вы будете проверять в следующий раз. Вы станете «тем парнем», который возражает против определенных конструкций, потому что «это будет ужасно, когда будет 10000 записей».
Еще немного о «это нормально». Я управляю (помимо прочего) гибким проектом для внешнего клиента. Мы делали релизы примерно каждые 6 недель в течение двух или трех лет. И да, релиз запланирован до минуты. Мы только что сделали один в 8 утра вчера. И примерно каждый четвертый или пятый выпуск (другими словами, один или два раза в год) что-то ломается вживую, и мы начинаем действовать и делаем это как можно быстрее. Хотя мы тестируем и тестируем и тестируем перед выпуском. Тогда мы расскажем им, что случилось. «В июньском развертывании была небольшая ошибка, из-за которой это поле было пустым, но мы никогда не замечали, потому что мы не использовали значение в то время. Затем в этом развертывании, когда мы начали использовать поле, те, которые были пустыми, вызывали это сообщение об ошибке, которое вы видели. Мы мы исправили ошибку, чтобы они не могли быть пустыми, поместили значения в плохие записи и подтвердили, что она больше не взрывается. Приносим свои извинения ». Или« Это экстренное изменение, о котором вы просили, всего за два дня до релиза, имело последствия, о которых мы не думали и не проверяли. Помните, почему мы сопротивляемся экстренным изменениям? »Я не могу быть плохим программистом, чтобы ухудшить ситуацию с обновлением, но я наверняка сделал плохую вещь. И мне нужно сделать это правильно. Возможно, я не плохой программист, чтобы ухудшить ситуацию с обновлением, но я, безусловно, поступил плохо. И мне нужно сделать это правильно. Возможно, я не плохой программист, чтобы ухудшить ситуацию с обновлением, но я, безусловно, поступил плохо. И мне нужно сделать это правильно.