최신 버전 제어 시스템의 장점 정량화 [닫기]


24

저는 3 년 동안 더 큰 부분을 위해 대규모 금융 기업 환경에서 팀 리더 / 개발자로 일했습니다. 우리의 생산 릴리스 프로세스는 Clearcase를 중심으로 진행되므로 악몽입니다. 모든 릴리스를 실행하고 코드에서 프로덕션으로 코드를 허용하는 변경 관리 그룹이 있습니다.

참여할 때 가장 먼저 한 일은 Git과 팀을 구성하는 것이 었습니다. 모두 Clearcase가 끔찍하고 일상적인 소스 제어 문제를 처리하는 데 비현실적이라는 데 동의했습니다. 그래서 우리는 로컬 컴퓨터에 일종의 "비공식"저장소를 설정했고 릴리스 시간에 git과 Clearcase repos를 동기화하는 스크립트를 작성했습니다.

이 이야기는 다른 팀으로 확산되었으며 여러 팀이 동일한 프로세스를 채택했습니다. 일상적인 활동을 위해 "비공식"방식으로 git을 사용하고 릴리스를 위해 Clearcase를 "공식적으로"사용합니다. 나는 Git과 관련된 문제에 대해 일종의 사람이되었습니다.

그래서 이번 주 SVP와 Git의 장점을 구체적으로 설명하고자하는 인프라 변경에 관한 회의를 열었습니다. Clearcase에 대한 나의 빈번한 rants에 그녀에게 명백하게 도착했다. 그녀가 나의 주장을 받아들이면, 나는 고용주가이 혐오를 제거 할 수 있도록 도와 줄 것입니다.

경영진에 대한 나의 경험에 따르면 a) 모든 것에 대해 매우 간결한 설명을 원합니다. b) 달러 수치와 관련된 사실에만 관심이 있습니다.

개발자에게 Git over Clearcase (또는 그 문제에 대한 Clearcase의 다른 버전 제어 시스템)의 장점을 설명 할 수 있지만 기술적 배경이없는 기술 임원 에게이 작업을 수행하는 방법에 대한 빈칸을 그립니다. MBA에서 지리학을 전공했습니다.)

나는 그녀에게 어떤 주장이 기술적 인 횡설수설처럼 들리거나 개인적 취향을 복음화하고 있다고 느낀다.

내가 찾으려고하는 것은 개발자가 Git 또는 최신 소스 제어 시스템을보다 효과적으로 사용한다는 것을 보여주는 구체적인 사실입니다.

다른 팀이 Git을 내부적으로 사용하기 시작했다는 사실은 의미있는 신호라고 생각하지만 여전히 개인 취향으로 무시 될 수 있기 때문에 아직 강하지 않습니다.

내가 정말로 필요한 것은 "이 과정은 20 년 동안 효과가 있었는데 왜 변경해야합니까?" 논의.


4
나는 그들이 달러 수치에 관한 사실에만 관심이 있다고 생각하면 그들을 판단하고 있다고 생각합니다. 자세한 설명은 이해할 수없는 내용으로 속일 수 있기 때문에 간결한 설명을 원할 수도 있습니다. 가장 좋은 방법은 Git이 가지고 있지만 ClearCase가 가지고 있지 않은 좋은 목록을 제공하는 것입니다. 그럼에도 불구하고, 기업 환경 경영진은 특히 잘 정립 된 엔터프라이즈 버전이있는 경우 오픈 소스 소프트웨어를 신뢰하지 않는다고 생각합니다.
정보 : A


2
git을 사용하는 것이 당신과 다른 팀이 당신의 임무를 얼마나 효과적으로 수행하는지 보여줍니다. 사례를 듣지 않고 ClearCase를 자원 봉사자로 교체하지 말고 매일 혜택이있는 곳을 보여주십시오. Github이 강력하지 않은 빌드 감사 또는 프로젝트 전체 이슈 트래킹에 ClearCase가 필요할 수 있습니다.
Kevin

3
그들이 달러에 관심이 있다면 연간 ClearCase 라이센스 요금과 유지 보수 비용을 지불해야합니다.
26 개 중

3
"주요 의견 기반으로 유지"나는 이것에 매우 동의하지 않습니다. 내 질문에서 "내가 찾은 것은 개발자가 Git을보다 효과적으로 사용한다는 것을 보여주는 구체적인 사실입니다." 그것에 대한 의견은 무엇입니까?
Mike

답변:


22

나는 항공 우주 및 자동차 산업에서 매우 비슷한 상황에 처해 있습니다. 이 회의 나 그 이후의 회의에서 크게 발전 할 것으로 기대하지 마십시오. 이 두 가지 상황 모두 개선을 위해 계속 싸우고 자하는 욕구보다 오래 지속되었지만 지금까지 내가 본 최고의 전술입니다 ...

"이 과정은 20 년 동안 일해 왔습니다." "우리의 생산 릴리스 프로세스는 악몽"이라는 의미의 의미로 시작합니다. ClearCase와 무관하게 현재 프로세스 / 도구와 관련된 문제 목록을 작성하십시오.

그런 다음 가능한 한 Git과 무관 한 프로세스 / 도구 "솔루션"목록을 작성하십시오 (Git 또는 최신 DVCS는 계산서에 정확히 맞습니다). Git이 ClearCase보다 나은 이유를 설명하는 것은 비 사용자에게는 아무 의미가 없습니다.

인프라 팀에서 현재 접근 방식에 식별 된 문제가 있는지 확인할 수 있습니다. 이로 인해 IBM은 이러한 문제를 "수정"하기 위해 IBM의 지원을 요청합니다. IBM이 문제를 회피하지 않도록 연결 상태를 유지하십시오. ClearCase에는 버전 제어에 대한 현대적인 이해에 대한 기본 특성이 없기 때문에 이러한 문제는 대부분 해결 될 수 없거나 주요 인프라 변경이 필요합니다.

이 시점에서 인프라 팀은이 문제를 비즈니스 문제로 볼 수 있지만 쉬운 해결책이없는 문제로 생각합니다. 이 시점에서 예상 비용으로 추가 솔루션을 벤치마킹 할 수 있습니다. 많은 팀이 이미 Git을 사용하고 있으므로 교육 비용을 제거 할 수 있습니다.

행운을 빕니다!


참고 : ClearCase는 20 세가 아닙니다.
Jan Hudec

2
ClearCase로 할 수없는 것을 찾을 것이라고 생각하지 않습니다 . 그러나 많은 것들이 ClearCase로 훨씬 더 복잡해 지고 당밀만큼 느리게 진행될 것입니다 . 운 좋게도 일을 빨리 끝내는 것은 대부분의 관리자 받아 들일 논거 입니다.
Jan Hudec

10
@JanHudec은 Rational ClearCase의 최초 릴리스가 1992 년에 22 세가되었습니다.
private_meta

@private_meta : 나는 1998 년을 기억하는 이유 흠은 몰라
얀 허덱을

14

우리의 생산 릴리스 프로세스는 Clearcase를 중심으로 진행되므로 악몽입니다. 모든 릴리스를 실행하고 코드에서 프로덕션으로 코드를 허용하는 변경 관리 그룹이 있습니다.

아니요, 변경 관리 그룹과 릴리스 절차로 인해 프로세스가 "악몽"입니다. SVN, git 또는 Fossil의 Clearcase를 교체하십시오. 당신은해야합니다 동일한 문제 . (나는 그들이 TBH를 올바르게하고 있다고 생각합니다. 강력한 릴리스 제어가 필수적입니다).

이것은 git의 괴상한 자격 증명 (개발자 이외의 모든 사람과 관련이 없음)이 아니라 집중 해야하는 것이므로 프로세스를 덜 번거롭게 만드는 비즈니스 사례에 집중해야합니다. Clearcase를 사용하여 그렇게 할 수는 있지만 어쨌든 git 사용에 대한 아이디어를 몰래 얻을 수 있습니다.

여기서 "더 큰 그림"을 보지 않으면 릴리스 그룹에서 요구하는 것과 동일한 제한으로 git을 사용하는 것이 가장 좋습니다. 변경 제어가 무엇인지에 대한 더 넓은 측면을 고려한다면, 조직이 필요로하는 일종의 강력하게 제어되는 릴리스 프로세스에서 git을 유용하게 만들기 위해 구현해야하는 제한 사항에 대해 감사하게 생각합니다.


몇 가지 아이디어 : 개발자 관점에서 현재 시스템의 생산성 문제를 확인하십시오. 2의 1 부로이를 수행하십시오. 2 부, 릴리스에서 이들과 함께 작업하여 개발자가 이해해야하는 제어 문제를 볼 수 있습니다. 이를 양측이 다른 쪽의 관점을보기위한 학습 연습으로 취급하면 양쪽의 주요 요구 사항을 여전히 해결하는 솔루션을 더 잘 만들 수 있어야합니다. 릴리스는 개발자보다 중요하므로 예상보다 더 많은 것을 제공 할 준비가되어 있어야합니다.

릴리스에 필요한 사항을 알고 나면 필요한 내용을 제공 할 수있는 프로세스 문서를 자세하게 (추후 세부 단계로) 작성하는 데 동의해야합니다. 어떻게 당신을 위해 dev 쪽이 나아지도록 이것을 마사지 할 수 있습니까? 소스가 올바르게 관리되고 올바르게 구성되어있는 한 개발자가 개발자의 개발 방식에 관심이 없다고 생각합니다. 즉, 티켓 변경에 코드 변경 사항을 묶어 코드를 작성하는 방법을 보여 주어야합니다. 패치, 빌드 및 재 릴리스 릴리스.


아마도 ClearCase의 가장 큰 문제는 당밀만큼 느리다는 것입니다. 따라서 프로세스가 복잡하고 그럴만한 이유가있는 경우 더 빠른 것으로 전환하면 프로세스가 향상됩니다.
Jan Hudec

1
@JanHudec Clearcase를 회상합니다. 제가 일한 곳은 느리지 않았지만 아마도 레포가 여러 계층의 보안 및 라우팅으로 둘러싸인 먼 회사 데이터 센터의 서버에 배치되는 제품 중 하나 일 것입니다. 나는 OP가 SVN 또는 TFS에서 git보다 더 좋은 기회를 가질 것이라고 생각하지만, 그가 마음을 정한 것은 아닙니다.
gbjbaanb

3
ClearCase는 기본적으로 버전이 지정된 네트워크 파일 시스템입니다. 따라서 네트워크 대역폭과 특히 대기 시간이 중요합니다. 로컬 복제본을 사용하면 대부분의 작업을 견딜 수 있었지만 속도를 위해 설계된 git보다 훨씬 느리지 만 일부 작업은 끔찍했습니다. 내가 한 최악의 일은 모든 파일에 레이블을 지정하는 것이었고 15 분이 걸렸으며 매우 큰 프로젝트는 아니 었습니다.
Jan Hudec

1
기술 문제가 아니라 "사람"문제라는 것을 지적한 +1.
kdgregory

1
CVS와 마찬가지로 필자가 가장 큰 악몽은 개별 파일 수준에서만 버전이 지정되었다는 것입니다. 병합 문제 등은 CC의 최신 버전으로 인해 빌드가 손상되고 전체 코드베이스를 임의의 날짜 / 시간으로 롤백 할 수 없다는 것을 의미합니다. 가상 네트워크 드라이브 대신 로컬보기를 수행하는 옵션을 사용하면 IO 대기 시간으로 인한 고통이 크게 줄어 듭니다.
Dan Neely

6

구체적인 예는 추상적 이점보다 더 인상적입니다. (a) Clearcase로 인해 문제를 해결하는 데 시간이 걸리고 Git이 문제를 해결하는 특정 예제를 문서화 할 수 있다면 가장 큰 성공을 거둘 수 있다고 생각합니다. 이유무엇인지에 대한 기술적 세부 사항을 설명 할 필요는 없습니다 (요청이없는 경우). 경영진은 기술을 알 필요가 없습니다. 그것이 바로 여러분이 지불 한 것입니다.

이 예제에 특정 시간 척도 및 날짜를 ​​첨부 할 수 있다면 훨씬 좋습니다. Clearcase에서는 Y 분, Git에서는 Z 분이 많은 작업 X를 표시하여이 작업을 마무리 할 수도 있습니다.

시간이 돈이라는 것을 기억하십시오. Git 작업이 더 빠르다 는 것을 보여 주면 재정적으로도 의미가 있음을 보여줄 수 있습니다.


3

여기에 내가 시도하는 방법이 있습니다.

개발자에게는 어리석게 들릴지 모르지만 경영진에게는 기술적 변화가 위험한 것으로 보입니다.

"마술이 이미 효과가 있다면 왜 위험을 감수해야할까요?"

따라서 테이블을 돌려야합니다. git으로 전환 하지 않는 것이 더 위험 합니다. 모든 비용으로 새 장난감처럼 들리지 않도록하십시오.

git이 이제 널리 사용된다고 말하는 것으로 시작하겠습니다. 다음과 같은 숫자를 사용하십시오 : http://ianskerrett.wordpress.com/2014/06/23/eclipse-community-survey-2014-results/

관리자에게는 git을 사용하여 많은 개발자를 찾을 수 있어야 함을 의미합니다. 그리고 타사 도구의 전체 생태계 (Microsoft조차도 현재 git을 Visual Studio와 통합한다고 들었습니다).

또한 관리자는 주류를 따르는 것에 대해 비난받을 수 없습니다. 반면, 누가 $ other_cvs를 사용합니까?

단순하고 빠르며 유연하며 강력하기 때문에 대규모 프로젝트가 얼마나 큰 프로젝트를 사용하고 있는지 강조하십시오.

그것이 나쁜 움직임이 될 수 없음을 입증 한 후에는 사건이 어떻게 개선 될 수 있는지 계속할 수 있습니다.

당신은 회사가 경쟁력을 유지하고 더 빠르고 민첩한 팀에 의해 뛰어 넘기를 원치 않습니까? Clearcase vs Git을 사용하여 생산성이 어떻게 변했는지에 대한 내부 (필기) 추정치를 찾으려고합니다. 동료 개발자의 도움을받을 수 있습니다. 그런 다음 전체 회사 (예 : 모든 소프트웨어 개발자)를 위해 숫자와 예상되는 Clearcase 유지 비용을 추정하십시오.

회의가 끝난 후에도 모든 내용을 서면 전자 메일로 다시 요약 해 보겠습니다 (적절한 사람 포함).


1
전담 부서가 있다면 거의 모든 "더 빠르고 민첩한 팀"에 대한 정보를 제공하지 않습니다. 아마도 개발자의 생산성에도 신경 쓰지 않을 것입니다. 이들은 안정성, 변경 사항 추적 및 릴리스에서 발생하는 사항에 대한 제어에 관심을 갖습니다.
gbjbaanb

@gbjbaanb 좋은 지적이지만, 다른 CVS가 이미 사용될 때 관리자와의 토론에서 그것에 대해 논쟁하는 방법을 보지 못했습니다.
nha

1

내가 정말로 필요한 것은 "이 과정은 20 년 동안 효과가 있었는데 왜 변경해야합니까?" 논의.

이것은 잘못된 주장입니다 (말이 끄는 마차는 "수세기 동안 일해 왔지만 대신 자동차를 사고 싶을 것입니다").

svn vs. mercurial에 대한 동일한 주장을 들었습니다 (저는 개발 시스템에서 수은을 사용하는 사람이었습니다).

이 문제는 작동하는 것을 대체하는 것이 아닙니다. 그런 말로 표현하지 말고, 이것이 "패배"해야 할 질문이라면, 그것이 작동하는 것이 아닌 문제가 아니라 git의 장점이 무엇인지 지적하는 것으로 시작해야합니다. , 둘 다 작동 할 때 (git가 더 잘 작동하는 이유).

자식 사용에 대한 좋은 주장 :

  • git은 파일 중심이 아닌 변경 세트 중심입니다. 즉, 변경 사항이 전체 파일을보다 쉽게 ​​추적 할 수 있습니다 (프로젝트 전체의 추적 성).

  • git은 중앙 집중식 대신 배포됩니다. 즉, 물건 체크인은 네트워크 속도에 의해 제한되지 않으므로 시간을 많이 절약 할 수 있습니다. 또한 ClearCase 서버가 다운 될 경우 단일 실패 지점이 없음을 의미합니다.

  • 분기 시스템이기 때문에 git은 병합 필요성을 최소화합니다 (즉, 모든 체크인에서 파일을 병합하지 않고 모든 완료된 기능에서 파일을 병합하지 않습니다). 하루에 여러 번 (모든 커밋에서) 병합 충돌 해결 (있는 경우)에서 일주일에 한 번 또는 두 번 (완료된 모든 기능에서)으로 전환합니다. 이는 개발자의 개발 시간이 길다는 것을 의미합니다 (관리자가 최대화하고 싶어 함).

다른 팀이 Git을 내부적으로 사용하기 시작했다는 사실은 의미있는 신호라고 생각하지만 여전히 개인 취향으로 무시 될 수 있기 때문에 아직 강하지 않습니다.

질적 차이가 너무 크다는 것을 지적 할 수 있으며 , 회사 전체의 개발자는 Clearcase 외에 git을 설치, 구성 및 사용하는 데 따른 추가 기능 때문에 복잡성을 선호합니다. 실제로는 강력한 주장입니다 (더 나은 사용자 경험과 기능 세트를 제공하지 않으면 사람들은 그것을 사용하기 위해 여분의 마일을 가지지 않을 것입니다-특히 회사에서 요구 하지 않는 것이기 때문에 ).

그래서 이번 주 SVP와 Git의 장점을 구체적으로 설명하고자하는 인프라 변경에 관한 회의를 열었습니다.

두 시스템으로 커밋을 나타내는 차트를 그리고 공개적으로 커밋하지 않는 개발자가 얻은 간소화를 보여줍니다 (예 : 파일을 중단하면 나머지 팀은 차단되지 않으며 문제를 해결할 때까지 준수 할 수 없음). 또한 다른 사람에 영향을주지 않고 중간 커밋을 할 수있을 때 당신이 할 수있는 별도의 품질 관리를 설명, 깨끗 차이점 얻을 수 있다는 사실 기능 당 (코드 리뷰에 필수적인을).


3
비 기술적 관리는 아마도 이러한 주장에 신경 쓰지 않을 것입니다.
jcm

1
특정 비교 포인트를 가져 오는 데있어 문제는 대안을 매우 잘 알고 있어야 하거나 그렇지 않다는 것입니다. 이 응답의 경우, 유일하게 유효한 지점은 "분산 대 중앙 집중식"점이며, "당신은 불만을 품은 모든 직원이 랩톱에 전체 소스 저장소를 가지고 있다는 것을 의미해야합니까?!"
kdgregory

2
@kdgregory ClearCase가 100 % 시간 내에 작동하기에는 너무 느리고 번거로우 기 때문에 불만을 품은 모든 직원에게는 여러 개의 zip 파일과 코드의 개인 저장소도 있습니다. :-)
Jace Browning

@kdgregory 그리고 그들은 "서버에 가지 않고 체크인 할 수 있습니다. PC가 충돌하면 모든 체크인을 잃을 것입니다. 백업은 어디에 있습니까? 에서 해방? "
gbjbaanb

1

내가 정말로 필요한 것은 "이 과정은 20 년 동안 효과가 있었는데 왜 변경해야합니까?" 논의.

현장의 증인이 아닌 좋은 주장이 무엇인지 실제로 판단하기는 어렵습니다. 그러나 나는 당신이 당신의 주장을들을 수 있도록 틀을 짜도록 도울 것입니다.

나는 당신의 청중이 주제에 대해 비전문가 수준의 지식을 가지고 있고 현재 과정을 유지하는데 관심이 있다고 가정합니다. 서로 다른 우려와 책임이 있으며 문제가 발생하면 심각한 결과를 겪을 수 있으므로 그러한 사고 방식을 따라야합니다. 그들이 가질 수있는 몇 가지 질문이나 걱정을 예상하십시오.

  • 어떤 새로운 기능이 제공됩니까? 현재 할 수없는 일,하고 싶은 일,이 새로운 일로 우리가 할 수있는 일이 있습니까? 긍정적 인 말로 시작하십시오.

  • 출시 일정에 미치는 영향은 무엇입니까? 즉시 다음 릴리스로이 변경을 구현하는 비용은 얼마입니까? 다음 릴리스의 비용과 이점은 무엇입니까?

  • 프로세스 변경이 수반됩니까? 릴리스 일정과 달리이 변경을 수행하려면 릴리스 프로세스 담당자가 자신의 방식을 변경해야합니까? 이것이 그들에게 투명합니까, 아니면 적응해야합니까? 다른 부서와 협력해야합니까? 사람들은 변화에 저항합니다.

  • 이 있습니까 임박한 현재의 시스템을 고수하는 위험은? 현재 프로세스에 소프트웨어 또는 하드웨어 종속성이 있거나 곧 수명이 다했 을까요? 고용 비용을 증가시키는 개인의 전문 지식에 의존합니까? 새로운 시스템이 막을 가능성이있는 보안 구멍이 있습니까 (이 구멍으로 인해 법적 조치를 취할 수있는 경우 보너스 포인트)? 손을 흔들거나 '아마도'또는 '아마도'이것을하지 마십시오. 감각은 그것이 20 년 동안 잘 작동했기 때문에 증거의 부담은 변화를 옹호하는 것입니다.

또한 문제점 및 솔루션에 대해 구체적으로 설명하십시오 . 구체적인 예를 찾을 수 없으면 전문가로서 자신의 입장에서 정직한 견적을 사용하십시오. 그러한 변화를 채택한 다른 회사 / 부서 / 엔터티의 예, 바람직하게는 해당 업계의 평가 및 해당 변화에 대한 평가가 도움이 될 것입니다. (최근 몇 년 동안 일종의 공개 IT 문제가 발생한 사례를 선택하지 마십시오. 그렇지 않으면이 변경이 원인이 아님을 입증 할 책임이 있습니다.)

이 답변내가 회사에서 버전 관리를 구현하기 위해 노력하고 있음확신시켜 줄 수 있습니까? 도움이되었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.