보스는 새 프로젝트에 버전 관리 시스템을 사용하는 것에 회의적입니다. 어쨌든해야합니까?


9

참조 /software/109817/superior-refusing-to-use-subversion를

내 질문은 비슷하지만 내 시나리오의 주요 차이점은 다음과 같습니다.

  • 우리는 PHP와 웹 기술을 사용하여 처음부터 새로운 프로젝트를 시작하고 있습니다. 내 길을 가졌다면 처음부터 그것을 채택 할 것이기 때문에 개발에 다운 타임이 없을 것입니다.

  • 내 개발팀은 나와 상사로 구성됩니다. 우리는 비교적 작은 회사의 "IT"부서입니다.

웹 응용 프로그램은 기존 응용 프로그램을 소스 제어없이 완전히 대체합니다. 지리적 법적 요구 사항이 다양하기 때문에 (임직 전) 각 버전에 대해 완전히 별도의 7 개의 디렉토리에 앱을 포크하기로 결정했습니다. 다른 개발자들은 그 후 다른 시간에 다른 장소에서 다른 일을했습니다. 그들 사이의 변화를 패치하는 것은 글쎄, 나는 그것이 더 잘 될 수 있다고 생각합니다. 그것이 내가 게시하는 이유라고 생각합니다.

이메일에서 직접 붙여 넣은 상사의 제안 :

  • 업데이트는 SUBMISSIONS 폴더에 패키지로 제출해야합니다. 패키지에는 업데이트 관련 설명, 포함 된 모든 새 파일 목록 (설명 포함) 및 수정 세부 정보가 포함 된 모든 수정 된 파일 목록이 포함 된 'UPDATE.NFO'파일뿐만 아니라 모든 관련 파일이 포함되어야합니다.

  • 업데이트 패키지는 개별 요소에 중점을 두어야하며 의도 된 목적을 벗어나지 않아야합니다. 코드는 가능하면 모듈 식으로 재사용 할 수 있도록 설계해야합니다.

  • 제출 된 모든 패키지는 제출 직후 각 개발자의 테스트 환경에 설치해야합니다. 각 개발자는 새로운 추가 사항을 검토하고 프로덕션 환경으로의 설치에 대한 모든 우려 사항을 알려야합니다. 프로덕션 환경에로드하기 전에이 검토 프로세스에 대해 최소 3 일 (영업일 기준) 동안 표준 패키지 업데이트를 유지해야합니다. 우선 순위가 높은 업데이트 / 수정은이 요구 사항을 건너 뛸 수 있습니다.

소스 제어가 발명 된 이유는 자동으로 수행하는 것입니다. 대학에서 사용한 것이기 때문에 전복을 제안했습니다. 보스는 "코드를 엉망으로 만들기"때문에 서브 버전을 좋아하지 않습니다 (즉, 이진법을 사용하고 읽을 수는 없습니다). 한 번 시도했지만 Windows에서 사용하려고하면 이상한 소문자 / 대문자 오류가 발생하여 파일을 확인할 수 없었습니다. 나는 그것이 Subversion인지 또는 불쾌한 모든 소스 제어 제품인지 여부를 모르겠습니다.

그래서 상사에게 어떤 종류의 논쟁을해야합니까? 아니면 그가 맞습니까? 그리고 이상한 버그로 모든 작업을 잃을 위험이 있습니까?

아니면 내가 잘못 되었습니까? 내 상황에서 소스 제어가 정말로 필요한가? 이것이 우리가 말하는 비즈니스 크리티컬 소프트웨어이므로 의심 할 여지가 없습니다. 그러나 현재 개발자는 2 명뿐입니다.

또한, 내가 그를 설득 할 수 없다면, 나 자신만을 위해 그것을 사용할 어떤 점이 있습니까? 나는 실제로 svn을 사용하는 경험이 매우 제한된 사람으로 말하고 있습니다. 내가 정말로 아는 것은 결제와 커밋입니다. 개인 개발 노력에 도움이되는 소스 제어의 기능 (svn 이외의 다른 제품을 포함 할 수 있음)은 무엇입니까?

"다른 직업을 구하십시오"라는 의견은 없습니다. 토론에 도움이되지 않습니다.


25
'그리고 "다른 직업을 얻지 말아주세요"라고 말하지 마십시오. 왜 안돼? 당신의 상사는 운명입니다.
S.Lott December

9
당신이 그를 설득 할 수 없더라도, 그것을 개인적으로 사용하는 것이 여전히 유용합니다. 따라서 걱정없이 파일을 자유롭게 편집 할 수 있습니다. 작업중인 파일에 대한 "저장 지점"이 많이 있습니다. 로컬 박스에 SVN이 있어야하더라도 아무것도 아닌 것보다 낫습니다.
Lord Tydus

10
@ S.Lott, OP는 질문의 경계를 지정할 권리가 있다고 생각합니다. 예를 들어, OP가 소규모 국가에 거주하고 그의 아버지 / 시어머니가 OP가 두 배 또는 세 배의 급여를받는 직책의 보스 인 경우 "다른 직업을 구하십시오"는 실현 가능하지 않습니다. 공개 시장에서 가치가 있습니다. 요컨대, 그것은 질문의 일부가 아닙니다.
Dan Rosenstark

8
@ S.Lott I, on the other hand, think that the OP is being silly in trying to specify the bounds on the answer....글쎄, 특정 경계는 어리석지 않다. 경력 조언은 주제가 아니며, 질문에 대답하고 경력 조언을 제공하는 답변이 완벽하게 훌륭하지만 OP가 경력 조언을 신경 쓰지 않는다고 명시하는 것은 어리석지 않다고 생각합니다 .
yannis

9
@ S.Lott 반면에 어리석은 점은 특히 "다른 직업을 찾을 때"라는 직업 조언입니다. 알 수없는 변수가 너무 많아서 그러한 조언을 진지하게 받아 들일 수는 없습니다.
yannis

답변:


35

물어 보지마 말하지 마 그를 보여줘.

svn 또는 git 또는 추가 시스템에 원하는 것을 설치하십시오. 사용하는 것뿐만 아니라 설명 할 때까지 편안하게 사용하십시오. 새로운 시스템에 익숙해 지려면 자신보다 더 편안해야합니다. 그가 합병을 조이거나 잘못된 장소에 무언가를 점검 할 때 쉽게 회복 할 수 있도록 도와 주어야합니다.

당신이 준비되면, 당신이 말하는 것을 정확하게 그에게 보여주십시오. 그에게 어떤 것도 "엉망으로 만들지 않음"을 보여주십시오. 이전 버전의 코드를 쉽게 검색 할 수있을뿐만 아니라 두 버전 사이에서 변경된 내용을 정확하게 알 수 있습니다.

서버에 심각한 문제가 발생하면 (심각한 버그, 바이러스, 해커, 디스크 충돌 등) 필요한 버전을 즉시 재구성 할 수 있다면 모두 영웅처럼 보일 것 입니다. 당신이 생산할 수 있다면 당신은 좋은 배 보일 것이라는 점 역시 지적 모든 요구에 버전. 이전 전자 메일을 검색하고 지난 1 년 동안 버전 관리로 피할 수 있었던 문제 목록을 작성하십시오.

버전 관리 시스템을 쉽게 사용할 수 있도록 치트 시트를 제공 하십시오.

마지막으로 몇 가지 옵션을 제안 하지만 결정은 그에게 맡깁니다 . 당신은 당신의 자신의 서버를 설정하거나 많은 호스팅 서비스 중 하나를 사용해야 합니까? svn, git 또는 다른 것을 사용해야합니까? 7 개의 프로젝트를 모두 시스템으로 마이그레이션해야합니까, 아니면 처음에는 한두 가지로 시도해야합니까?


9
"말하지 말고, 보여주고 (연습 후)"+1
Javier

2
그러나 누군가가 말했듯이 자신의 사본으로 사용하십시오
0fnt

3
–1search your old e-mail and compile a list of problems you've had over the past year that you could have avoided with version control.
Daenyth

또한 표시 할 내용이 있으면 표시가 더 쉬울 수 있습니다. git 용 SourceTree 와 같은 GUI와 함께 사용하는 것이 좋습니다. 그렇게하면 덜 위협적이고, 배우기가 더 쉬워집니다. 아무도 오타로 전체 시스템을 망칠 염려가 없으며, 이미 언급 한 치트 시트의 그래픽 버전입니다.
R. Schmitz

28

소스 제어의 이점은 여러 개발자가 단일 코드에서 작업 할 수 있도록하는 것 이상입니다. SourceGear 의 창립자 인 Eric Sink 는 소스 컨트롤을 단독 개발자로 사용해야 하는 몇 가지 강력한 이유를 나열합니다 .

- It's an undo mechanism.
- It's a historical archive.
- It's a reference point for diff.
- It's a backup.
- It's a journal of my progress. 
- It's a server. 

Eric은 또한 초보자에게 좋은 소스 제어 방법을 제공합니다 . Joel Spolsky 가 제공하는 무료 온라인 Mercurial 튜토리얼 이 있으며 Mercurial은 널리 사용되는 분산 버전 제어 시스템입니다.

다음 단계로 단독 개발자로서 머신에서 로컬로 소스 컨트롤을 사용하는 것이 좋습니다. 곧 상사는 몇 분 안에 몇 초 안에 초 임계 버그가 얼마나 멀리 돌아가는지를 알려주는 등 마법을 깎을 수 있다는 것을 알게 될 것입니다. 지옥이 풀린다. 또는 CEO가 변경 한 모든 변경 사항을 취소 할 수있는 것은 매우 빠릅니다.

그리고 마지막으로 상사를 설득하기 전에 이의 제기 처리 주제를 탐구하고 싶을 수도 있습니다 . 101의 판매입니다.

실패한 경우-가능한 한 빨리 진행하여 풍차에서 시간을 낭비하지 마십시오.


1
Eric Sink 기사의 경우 +1 hg 제안에 +1 git은 모든 분노이지만 op는 소스 제어의 초보자이며 hg는 git보다 조금 더 쉽다는 것이 분명합니다. hg 튜토리얼의 경우 +1 영업 지향적 인 참조를 제공하는 +1, Pointy-haired Bosses (Google 검색 링크 인 경우 -0.5)를 가장 잘 다루는 방법입니다. 돈키호테 참조 +1 이것은 중복 계정을 만들어 두 번 이상 투표 할 수있는 일종의 답변입니다.
yannis

1
이 답변은 기본적으로 모든 것을 말합니다. 소스 컨트롤을 스스로 사용해야하는 또 하나의 이유 : 소스 컨트롤에 대한 경험이 있다면 이력서에 좋은 모습을 보일 것입니다. 그러한 경험이 없으면 좋아 보이지 않을 것입니다.
Mike Nakis

10

예, 소스 컨트롤을 사용하는 것만으로도 가치가 있습니다. 예를 들어 Git은 독립형 개발자에게 매우 효과적이며 분기 및 병합 (가능한 최저 비용으로)과 같은 작업을 수행하고 변경 사항을 버전화할 수 있습니다.

SVN 또는 다른 버전 제어 시스템을 사용하면 실제로이 작업을 수행 할 수 있지만 병합은 약간 더 문제가됩니다.


Git 사용에 동의합니다. 나는 유일한 개발자 인 경우에도 프로젝트에 사용합니다.
DanO

나도 시작하고있다. SVN은 아니지만 Git을 사용하면 서버를 다루지 않고도 repo를 만들고 관리하기가 쉬워서 작업을 시작한 순간을 말하지 않는 것이 정당화되기가 어려워집니다 git init.
cHao

권리 .gitignore가 없으면 git repo는 기본적으로 쓸모가 없습니다. 즉, 제외 장소에 있어야하는 유일한 일이git init
댄 Rosenstark는

" 하지만 병합은 좀 더 문제가 있습니다. "-OP가 자신 만 사용하는 경우 많은 병합이 없을 것입니까? 자신의 피처 브랜치를 자신의 마스터로 병합하는 것은 가능하지만, 그의 상사로부터받은 코드는 오히려 새로운 커밋에 들어 가지 않습니까? SVN에 대한 경험이 없지만 git 만 있습니다.
R. Schmitz

1
“많이 병합되지 않을 것입니다.” 취미 프로젝트 인 경우에도 모든 프로젝트는 개발자 팀 (한 사람이 될 수 있음)이 한 번에 두 가지 작업을 수행해야합니다. 그런 다음 병합해야하며 어느 시점에서 병합 충돌이 발생합니다.
Dan Rosenstark

5

내가 그를 설득 할 수 없다면, 나 자신만을 위해 그것을 사용할 어떤 점이 있습니까?

예. 직접 사용하는 것이 좋습니다. 변경 내역을 확인하여 다른 사항을 확인할 수 있습니다.

아닙니다. 상사가 프로젝트를 파기하여 많은 무의미한 재 작업으로 파산했기 때문에 아무런 이점이 없습니다.


차이점을 볼 수있을뿐만 아니라 2 초 이내에 새 버전과 이전 버전간에 전환 할 수 있습니다.
gnasher729

3

git을 사용하기 전에 언급 한 것처럼, # 1은 재난이 발생할 경우 모든 VCS가 안전망이기 때문에 강력히 권장합니다. “화재의 경우 : 자식 커밋, 자식 푸시, 건물을 떠나십시오”스티커를 찾으십시오. 코드는 다른 곳에 저장 될 수 있지만, 도난 당하거나 도난 당할 수있는 랩톱에는 없습니다. 심지어 로컬 네트워크 서버조차도 코드만큼 가치있는 곳이 가장 안전한 곳은 아닙니다.

번호 2. 변경 사항, 누가, 언제, 무엇을했는지 등 ... 합병, 실행 취소. 3 번, 그리고 더 많은 경우를위한 마법의 도구를 습격하십시오. 번호 4. 지점 번호 5. 버전, 릴리스 등 태그 지정

가장 일반적인 git 워크 플로 중 하나에 대한 자세한 내용은 https://nvie.com/posts/a-successful-git-branching-model/을 참조 하십시오.

나는 git을 사용하는 것이 처음에는 위협적 일 수 있다는 것을 알고 있지만 기술에 대한 좋은 투자이며 모든 개발 팀에 필수적입니다.

텍스트 케이스 관련 문제에 대해 Tortoise 사용을 피하십시오. SVN에서 매우 일반적이기 때문에 대부분의 사람들이 git 용 GUI로 사용한다는 것을 알고 있습니다. 또는 Atlasian의 SourceTree입니다.

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