Eu interpreto essa situação como tendo dois problemas básicos, possivelmente três.
- Uma atualização indesejada do SDK chegou à origem, onde isso poderia afetar negativamente o produto.
- Da pergunta: o colaborador que executou a atualização indesejada não sabia sobre uma decisão específica anterior para não atualizar.
O primeiro deles, na minha opinião, é o mais sério. Se uma atualização indesejada do SDK puder entrar no código, outros problemas também poderão ocorrer.
Alguém sugeriu a adição de um caso de teste de unidade que falhará se detectar a atualização. Embora isso impeça a atualização, acredito que este seja um caminho perigoso, levando ao fluxo de lava ao longo do tempo. Parece inevitável que em algum momento no futuro o SDK seja atualizado, para trazer novos recursos ou correções, ou porque a versão antiga não é mais suportada. Imagine o coçar a cabeça, talvez até os argumentos, que ocorrerão quando um teste de unidade falhar.
Eu acho que a solução mais geral é ajustar o processo de desenvolvimento. Para o git, use o processo de solicitação de recebimento. Para o Subversion e ferramentas mais antigas, use branches e diff. Mas tenha algum processo que permita aos desenvolvedores seniores capturar esses tipos de problemas antes de entrarem na base de código e afetar outros desenvolvedores.
Se o processo de solicitação de recebimento tivesse sido usado em sua situação e se cada solicitação de recebimento fosse restrita e específica, não seria desperdiçado muito tempo. Uma solicitação de recebimento para atualizar o SDK teria sido enviada e recusada com comentários de que a atualização não é desejada. Ninguém mais teria sido impactado e não haveria necessidade de reverter a atualização do SDK agora.
Mas, para responder diretamente à pergunta original, concordo com outras pessoas que esperam que todos os desenvolvedores leiam completamente todo o histórico de revisões do código, notas de versão, etc. O que há de errado com um email curto da equipe?
Possível terceira questão: por que a atualização não é desejada em primeiro lugar? Claramente, pelo menos um desenvolvedor pensou que a atualização seria uma coisa boa. Há muitas boas razões para adiar uma atualização, mas também muitas ruins. Tome cuidado para evitar os padrões de fluxo de lava (código desnecessário de compatibilidade com versões anteriores) e culto à carga ("não podemos atualizar isso, mas não sei por quê")!