Я трактую цю ситуацію як дві основні проблеми, можливо, три.
- Небажане оновлення SDK перетворило його на джерело, де це може негативно вплинути на продукт.
- З питання: дописувач, який здійснив небажане оновлення, не знав про попереднє, конкретне рішення не оновлювати.
Перший з них, на мою думку, є найсерйознішим. Якщо небажане оновлення SDK може внести його в код, це може призвести до інших проблем.
Хтось запропонував додати тестовий випадок, який не вдасться, якщо виявить оновлення. Хоча це не дозволить здійснити оновлення, я вважаю, що це небезпечний шлях, що призводить до течії лави з часом. Мабуть, неминуче, що в якийсь момент у майбутньому SDK буде оновлено, запровадити нові функції або виправлення, або тому, що стара версія більше не підтримується. Уявіть, що голова чухається, можливо, навіть аргументи, які будуть виникати, коли такий тест одиниці потім не вдасться.
Я думаю, що найзагальнішим рішенням є коригування процесу розвитку. Для git використовуйте процес запиту на тягнення . Для підривних і старих інструментів використовуйте гілки та розл. Але є певний процес, який дозволяє старшим розробникам вловлювати подібні проблеми, перш ніж вони перетворять їх у кодову базу та впливають на інших розробників.
Якби процес запиту на витяг використовувався у вашій ситуації, і якщо кожен запит на витяг вузький і конкретний, витрачалося б не багато часу. Запит на оновлення SDK був би поданий і відмовився з коментарем, що оновлення не потрібно. Ніхто інший не зазнав би цього впливу, і зараз не потрібно буде повертати оновлення SDK.
Але безпосередньо відповісти на початкове запитання, я погоджуюся з іншими, що сподіваюся, що всі розробники повністю прочитають всю історію редагування коду, випустять нотатки тощо для повідомлень, як це марно витрачає час. Що не так з короткою командою електронної пошти?
Можливе третє питання: Чому оновлення не хочеться в першу чергу? Очевидно, що принаймні один розробник вважав, що оновлення буде хорошою справою. Існує багато вагомих причин затримати оновлення, але також багато поганих. Слідкуйте за тим, щоб уникнути потоку лави (зайвий код сумісності назад) та культу вантажу ("ми не можемо оновити це, але я не знаю, чому") анти-шаблони!