대규모 조직에서 가지를 피하는 방법?


10

대규모 조직에서 작업 할 때 분기 별 상황을 어떻게 피합니까?

우리는 소프트웨어를 업데이트하지 않고 높은 / 중요 보안 패치 및 맞춤형 기능 만 사용하는 여러 대기업과 협력하고 있습니다. 이러한 조직은 주요 업데이트간에 만 패치 및 사용자 지정 릴리스를 수행합니다. 주요 업데이트는 몇 년이 소요될 수 있으며 비용이 많이 듭니다. 이러한 접근 방식을 통해 우리 (소프트웨어 회사)는 주요 고객 당 코드 분기를 가지게되는데, 이는 장기 분기의 모든 비용과 비 효율성을 수반합니다.

커뮤니티에 대한 나의 질문은 다음과 같습니다.

  • 고객으로부터 유사한 업데이트 수락 방법을 경험 했습니까?
  • 이 접근법을 사용하는 데 도움이되는 제안은 무엇입니까?
  • 소프트웨어 업데이트에 대한 조직의 접근 방식을 변경하는 데 도움이되는 제안은 무엇입니까?

마크 이봐, 당신은 흥미로운 딜레마가있는 것 같습니다. 고객 별 업데이트를 어떻게 관리합니까? 각 고객에 대해 일회성으로 개발합니까, 아니면 모든 고객에게 개발하여 적용하는 것입니까?
PrestonM

개인적으로 저는이 상황에서 다른 고용을 구할 수 있습니다. 이것은 보안 사고가 발생하기를 기다리는 것처럼 들립니다. 내가 일했던 기기 공급 업체에 대해 알려줄 수 있습니다. 업데이트 할 수없는 주요 버그가 있다고합니다. 그들은 맞춤형 수정을 원했습니다. 우리는 그것들을 구축하는 것을 거부하고 그들이 비즈니스 정책을 고칠 필요가 있다고 말했습니다. 우리는 내부 정치 문제를 피할 수 있도록 이미 패치 한 버그에 대한 맞춤형 핫픽스를 발표하지는 않을 것입니다.
James Shewey

여러 코드 분기를 통해 사용자 지정 클라이언트 별 업데이트를 관리하고 모든 분기에 대한 보안 업데이트를 교차 수정하고 분기 코드를 다시 트렁크로 교차 수정합니다. 고객 A는 지점에서 고객 B 업데이트를받지 않고 자체 업데이트 및 보안 패치 만 가져옵니다. 이는 지점의 안정성에 대한 요구로 인해 발생하므로 관련 업데이트 만 테스트하면됩니다. 완전한 테스트 재실행을 실행할 준비가되면 트렁크 업데이트가 덜 빈번하게 (즉, 몇 개월에서 몇 년) 걸리며, 완료하는 데 몇 개월이 걸릴 수 있습니다. 자동화 된 테스트가 답이 될 수 있습니다!
Mark Wheeler

답변:


3

Michael이 언급했듯이 릴리스 버전 / 수를 기준으로 표준 수명주기를 제공하는 표준 솔루션을 제공하십시오 (일반 고객에게는 의미가있는 경우 하나 이상의 짧은 수명 중간 버전으로 인터리브 될 수 있음).

고객에게 적절한 표준 마이그레이션 마감일이있는이 표준 릴리스 트랙을 시작할 수있는 옵션을 제공하십시오.

그들이 완전한 맞춤형 지사 지원 전략을 고집한다면, 그에 따라 요금을 청구하고, 그러한 완전한 맞춤형 지원을 제공하기위한 모든 추가 비용을 적절히 충당하기 위해 – 그것은 사업 적으로 만 이해됩니다. 일부 고객은 비용을 절감하기 위해 마이그레이션 할 것입니다 (사용자 지정 지점 수를 줄이는 데 도움이 됨).

사용자 지정 브랜치가 시작된 릴리스 버전의 연령에 따라 점진적으로 증가하는 변수 지원 청구는 고객이 더 새로운 브랜치로 더 빨리 마이그레이션하여 이전 사용자 지정 브랜치를 더 빨리 닫는 데 도움이 될 수 있습니다. 이렇게하면 여러 버전의 소프트웨어를 동시에 실행하는 고객이있는 경우 고객 당 사용자 지정 분기 수를 줄일 수 있습니다.

릴리스 브랜치 (표준 및 사용자 정의 모두)에서 전체 브랜치 병합을 수행하는 함정에 빠지지 않도록하십시오. 모든 변경 브랜치는 개별적으로 개발되거나 통합 된 수정 사항이어야합니다.

이러한 각 브랜치가 점차 서로 분기되므로 커스터마이징 / 개별 개발이 필요한 핫픽스의 수가 기하 급수적으로 늘어날 것입니다 (일반 체리 픽 병합 병합 실패). 이를 위해서는 개발 비용을 고려해야합니다.

그림에 (중요한) 브랜치 병합이 없으면이 브랜치에 대해 완전 자동화 된 CI / CD 파이프 라인을 구축 할 수 있으며 (좋은 중요성을 강조 할 수는 없음), 우수한 핫픽스 추적 / 관리 시스템을 갖추어 핫픽스를 제공합니다. 그냥 일상적인 (또는 거의).


댄-매우 명백하고 단순하지만 완벽하게 이해됩니다. 돈은 세상을 돌아 다니며 장기적으로 지속되는 지점의 비용을 보상하거나 고객이 업그레이드하고 트렁크에 가까이 머 무르도록 장려합니다. 좋은 조언 감사합니다.
Mark Wheeler

1

고객이 아닌 버전별로 지점을 유지 관리하면 고객 수를 줄이는 데 도움이 될 수 있습니까?

그렇지 않으면 소프트웨어에서 실제로 벗어날 수있는 유일한 방법은 소프트웨어를 직접 호스팅하고 SaaS 모델로 전환하여 한 버전 만 유지할 수있는 것입니다.


불행히도 우리 고객은 종종 작업중인 재무 데이터로 인해 매우 종료 된 환경에서 작업하기 때문에 SaaS 모델을 사용할 수 없습니다.
Mark Wheeler
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.