이 상황은 두 가지 기본 문제, 아마도 세 가지 문제가 있다고 해석합니다.
- 원치 않는 SDK 업그레이드로 인해 제품에 부정적인 영향을 줄 수있는 소스로 만들었습니다.
- 질문에서 : 원치 않는 업그레이드를 수행 한 기고자는 이전에 구체적인 업그레이드 결정에 대해 알지 못했습니다.
제 생각에는이 중 첫 번째가 가장 심각합니다. 원치 않는 SDK 업그레이드가 코드에 포함될 수 있다면 다른 문제도 발생할 수 있습니다.
누군가 업그레이드를 감지하면 실패하는 단위 테스트 사례를 추가 할 것을 제안했습니다. 업그레이드가 발생하는 것을 막을 수 있지만, 이것이 위험한 경로라고 생각 하며 시간이 지남에 따라 용암의 흐름 을 초래합니다 . 추후 언젠가 SDK가 업그레이드되어 새로운 기능이나 버그 수정을 가져 오거나 이전 버전이 더 이상 지원되지 않기 때문에 불가피합니다. 이러한 단위 테스트가 실패 할 때 발생할 수있는 헤드 스크래칭 (아마도 논쟁)을 상상해보십시오.
가장 일반적인 해결책은 개발 프로세스를 조정하는 것입니다. git의 경우 pull request 프로세스를 사용하십시오 . Subversion 및 이전 도구의 경우 분기 및 diff를 사용하십시오. 그러나이 일부 수석 개발자가 이러한 종류의 문제를 잡을 수 있도록 처리 하기 전에 그들이 코드베이스로 만들 다른 개발자에 영향을 미칠합니다.
풀 요청 프로세스가 현재 상황에서 사용되었고 각 풀 요청이 좁고 구체적이라면 시간이 많이 낭비되지 않았을 것입니다. SDK 업그레이드 요청이 제출되었으며 업그레이드를 원하지 않는다는 의견으로 거부되었습니다. 다른 사람은 영향을받지 않았으므로 이제 SDK 업그레이드를 되돌릴 필요가 없습니다.
그러나 원래의 질문에 직접 대답하기 위해 모든 개발자가 코드, 릴리스 노트 등의 전체 개정 내역을 완전히 읽는 것이 귀중한 시간 낭비라고 기대합니다. 짧은 팀 이메일에 어떤 문제가 있습니까?
가능한 세 번째 문제 : 왜 업그레이드를 원하지 않습니까? 분명히 적어도 한 명의 개발자가 업그레이드가 좋은 것이라고 생각했습니다. 업그레이드를 지연시키는 데에는 여러 가지 이유가 있지만 나쁜 것도 있습니다. 용암류 (불필요한 역 호환성 코드)와 화물 숭배 ( "그것을 업그레이드 할 수는 없지만 왜 그런지 모르겠습니다") 반 패턴을 피하십시오!