자동 빌드 시스템을 설정하는 담당자는 누구입니까?


15

저는 회사의 프로젝트 관리자입니다. CVS라고하는 잘 알려진 표준 버전 제어 시스템을 사용하여 몇 명의 개발자 팀과 함께 작업합니다. 빌드 중단 및 프로덕션 서버에 대한 부적절한 배포로 인한 문제를 방지하기 위해 지속적인 통합 및 자동화 된 빌드를 구현하고 싶습니다.

나는 이것을 스스로 설정할 수 있다고 확신하지만 두 가지 이유로 직접하고 싶지 않습니다.

  1. 시간이 없어요 마케팅, 개발에 참여하지 않은 팀원과 다른 이해 관계자와의 의사 소통, 고객과의 의사 소통 및 프로젝트 계획과 관련된 본인의 책임이 있습니다.

  2. 가장 중요한 것은 프로젝트 관리자입니다. 저의 목적은 개발팀미세 관리 하지 않고 리더십을 제공하는 것입니다 .

개발 팀에서이를 설정하는 데 열정을 가진 사람을 찾기 위해 할 수있는 일은 무엇입니까? Java, Spring 및 Google App Engine에 대한 지식이 필요하다는 점을 고려하여 개발자가이 작업에 적합한 사람입니까? 변화가 우려되는 곳에서 변화를 촉진하는 데 도움이되는 몇 가지 팁은 무엇입니까?


7
프로젝트 관리자의 역할은 리더십을 제공하는 것입니다.
Yuriy Zubarev

마지막에 필요한 지식 목록, 개발자가 가질 수도 있고 갖지 않을 수있는 모든 것, 비 개발자는 그렇지 않을 것입니다. 당신에 따라 다릅니다.
Orbling

5
여전히 CVS를 사용하는 경우 거의 -1입니다.
Johannes Rudolph

@Johannes-그것이 나에게 달려 있다면 우리는 그렇지 않을 것입니다. 사실, 내가 사용하고있는 SVN 저장소 설정이 있습니다.
jmort253

1
CVS는 오래된 기술 (그리고 내가 좋아하는 것과는 거리가 름)만큼 작동하지만 여전히 많은 곳에서 사용하고 있습니다. 그리고 그것이 일을하고 있다면 그것을 제자리에 두어야합니다. 우리는 그것을 사무실에서 사용하고 작업을 완료합니다.
Zachary K

답변:


14

먼저 몇 가지 가능성을 연구했습니다. 예를 들어 Hudson은 다소 인기있는 연속 통합 서버이며 매우 유연합니다. 개발자 팀에 다음과 같은 이메일을 보낼 수 있습니다.

독성 개정이 이후보다 훨씬 빨리 나타나도록 지속적인 통합 도구를 소개하고 싶습니다. 나는 [hudson, acme CIS, foo]를 보았고 모두 작동하는 것처럼 보입니다. CVS를 [list 여기서 경고]와 함께 사용하고 있다는 사실을 고려할 때 권장 사항을 찾고 있으며 팀이 결정한대로 살 것입니다.

데이브, 합의를 이끌어 내고 실행 해 팀-목요일이 끝날 때까지 Dave에게 의견을 보내 주시면 금요일에 테스트 할 수 있습니다.

설정이 완료되면 자격 증명을 보내 주시기 바랍니다.

이 방법에는 다음과 같은 이점이 있습니다.

  • 당신은 덤핑하지 않고 위임하고 있습니다
  • 사람들은 당신이 조사한 것을 알고 있습니다. 당신이 지적한 물건의 질은 구현 된 도구의 질에 대한 당신의 기대를 정의하는 데 도움이됩니다
  • 당신은 [주의 사항]을 알고 있습니다. 그들이 실제로 당면한 과제에 대한 거래 차단기가 아닌 한, 그것들에 대해 토론하지 마십시오.
  • 당신은 약간의 민주주의를 허용합니다. 물론, 문제가 발생했는지 확인하기 위해 로그인하지만 CIS를 처리 해야하는 사람들이 플랫폼을 선택하는 사람들이 될 것입니다.

내 모의 시나리오에서, Dave그는 자신의 접시에 최소한을 가지고 있고 아마도 새로운 서버를 설정하는 데 아무런 문제가 없기 때문에 선택되었습니다. 작업 부하에 따라 Dave귀하가 필요할 수 있습니다. 그건 너무 주관적입니다. 당신 not my job to do that이 그것을 할 시간이있는 유일한 사람이라면 특히 말할 수는 없습니다 . 모두가 이미 시간이 지남에 따라 도움을 줄 의지에 대한 인식 이 더 중요해집니다. 그것은 시간이 지남에 따라 개발하는 기술입니다.

어쨌든 금요일까지 CIS 서버가 있거나 추가 손이 없으면 불가능한 이유에 대한 세부 정보가 제공됩니다.


2
의견과 조언에 감사드립니다. 나는 일을 끝내기 위해 not my job카드 를 꺼내려고하지 않았지만 프로젝트 관리자가 때로는 개발 팀의 일에 너무 관여하기 쉽기 때문에. 이것을 개발에 위임함으로써 나는 그들에게 통제권과 통치권을 부여합니다. 또한,이 설정을 담당하는 사람은이 설정을 담당 할 가능성이 높지만, 설정 한 경우 지속적인 통합을 설정하는 방법에 대한 훌륭한 학습 경험을 얻을 수 있지만 ROI가없고 기부 비용이 발생합니다. 내 다른 작업에. 또한 샘플 이메일은 매우 유용합니다. :) +1
jmort253

@ jmort253-네, 일을 피하고 있지 않다는 것을 알고 있습니다. 명확성을 위해 업데이트하겠습니다.
Tim Post

3
팀을 참여시키고 기술 결정을 내릴 수있게 해 +1. 그것이 새로운 시스템을 받아들이고 사용하게하는 열쇠입니다.
Péter Török

14

나는 그것이 세 가지 가능한 방법으로 가고 있음을 보았다.

  1. 개발자 팀의 누군가에게 가능한 도구에 대한 빠른 평가를 제시하고 신속하게 무언가를 내놓게하십시오. 개별 프로젝트에 적절한 빌드 스크립트가있는 경우 (즉, IDE 외부에서 프로젝트를 빌드 할 수있는 경우) CI에 신속하게 연결해야합니다.

  2. 빌드 인프라를 팀 내의 내부 프로젝트로 취급하고 관리하십시오. 첫 번째 포인트보다 조금 더 복잡하지만 올바르게 수행하면 더 나은 시스템을 얻을 수 있습니다. 또한 지식을 팀에 전파하면 아래에 언급 된 전문화의 위험이 줄어 듭니다. 또한 동료 검토의 이점을 얻을 수 있습니다. 그러나 일부 프로그래머는이 작업을 의미없는 것으로 인식 할 수 있으므로 원하는만큼 사용하지 않을 수 있습니다.

  3. 개발자를 빌드 마스터로 고용하고 모든 도구를 설정하도록하십시오. 그런 다음 계속해서 그를 사용하여 시스템을 개선하고, 메트릭을 추가하고, 자동화 된 문서 생성, 자동화 된 테스트 등을 수행하십시오. 비용이 많이 들지만 제대로 수행하면 개발자 팀의 효율성을 높여서 매우 빨리 투자를 지불하게됩니다. 이 사람은 팀에서 사용하는 언어 및 프레임 워크에 능숙해야하며 시스템에 해당 언어를 붙이려 고합니다. 반면에 (의견에서) 이것은 예산 내에 있지 않을 수 있으며 전문적인 직책을 만들면 전환이 어려울 수있는 문서화 된 솔루션으로 이어질 수 있습니다.

이것은 무엇이든 시작하기 전에 실제로 원하는 것을 확인하십시오. 귀하의 질문에는 올바른 기술적 방향으로 안내 할 약간의 세부 정보가 없습니다. 그러한 도구를 사용하여 얻을 수있는 이점을 알아야하며 원하는 시스템에 대한 일반적인 비전이 필요합니다. 모든 것을 연결하는 환경을 만드는 데 먼 길을 갈 수는 있지만 마스터 계획을 세우지 않아도 서클을 실행하고 기존보다 더 복잡하게 만들 수 있습니다.

한때 관리자는 도구는 훌륭하지만 프로세스가 없으면 쓸모가 없다고 말했습니다. 시간을내어 이러한 장소를 제자리에 놓았을 때 그가 말한 것을 계속 따르기를 바랐습니다 ...

따라서, 누군가를 고용하기로 결정했다면, 더 IT 분야에 대한 지식이있는 사람이 아닌 프로그래머를 얻는 데 확실한 이점이 있습니다. 요점은이 사람이 서로 다른 시스템을 일관된 시스템으로 통합하는 글루 코드 및 플러그인을 만드는 데 시간과 에너지를 소비 할 수 있다는 것입니다.

이것이 도움이 되었기를 바랍니다.


2
@Newtopian-도움이됩니다. 특히 맹목적으로 무언가를 구현하기 전에 계획을 세우는 것에 관한 부분. 감사합니다. +1
jmort253

1
+1 건전한 조언. 추가로, 어떤 플랫폼을 사용하든 팀 구성원 중 하나가 주요 Linux-head이거나 개발자 사용자가 빌드 스크립트를 사용하는 다른 OS가있는 경우 프로젝트에 흥미가있을 수 있습니다.
Garet Claborn

1
3) +1 3) 모든 소프트웨어 팀에 요즘 전담 빌드 관리자가 있어야합니다.
Sean Patrick Floyd

1
내가 읽은 저명한 회사 (37 신호? GitHub? I 던노)는 빌드를 마친 마지막 사람에게 빌드 마스터가되는 책임을 부여합니다. 이를 통해 (1) 사람들이 빌드를 중단하지 않도록주의하고 (2) 팀의 여러 구성원이 (이상적으로) 빌드 시스템에 대해 배우는 경험을 얻습니다.
Michelle Tilley

1
@jmort 조만간 아무도 그러한 헌신적 인 입장을 갖지 않는 데 드는 비용을 들이지 않는 지점에 도달하고 있습니다
Sean Patrick Floyd

3

리더십 역할이있는 경우 누락 된 구성 요소 / 실습을 식별하고이를 올바르게 구현해야 할 책임이 있습니다. 이행 과제는 위임 될 수 있지만 궁극적으로 리더의 책임입니다.

수용의 열쇠는 의심의 여지를 이해하거나 최소한 당신에게 이익을주는 것입니다. 원하는 것을 통해 이야기하고 비용과 혜택을 얻을 수 있습니다. 토론으로 이해가되지 않으면 결정에 대한 신뢰에 의존 할 수 있지만 그러한 종류의 리 포어를 구축 한 경우에만 가능합니다.

담당 직원이 전문 지식의 시간 제약을받는 경우 스탠드 또는 팀 회의에서이를 제기하고 자원 봉사자를 요청하십시오. 아무도 오지 않을 경우 다른 작업과 마찬가지로 간단히 할당하십시오.

최신 정보:

모든 회사 내에 조직 구조가 있습니다. 리더십 역할은 해당 수준의 자원에 대한 책임이 있습니다. 또한 문제를 지적하고 해결해야 할 책임이 있습니다. 그들은 당신이 체인을 올라갈 때 추가 자원 및 / 또는 제안이 필요할 수 있습니다. 문제를 해결할 수있는 경우 직접 솔루션을 구현하거나 위임 할 수 있습니다. 이것은 직접적으로 이상적으로 그들과 협력하여 영향을받을 사람들을 포함 할 수 있고 또해야한다.

이사급 이상의 직책이 회사의 특정 개인이나 그룹에 대해 직접 책임을 지어서는 안된다고 말할 수는 없습니다. 그것은 실제로 회사의 조직 구조에 달려 있습니다. 저는 CTO가 개발자와 테스터를 직접 담당하는 신생 기업에서 근무했습니다. 해당 수준의보다 전통적인 회사 관리에서는 해당 하위 수준에서 적절한 결정을 내리는 데 필요한 가시성이나 친숙 함이 필요하지 않습니다.


당신이 다른 지도자의 지도자라고 가정합니까? 프로젝트 팀의 주니어 Java 개발자가 추가 교육이 필요하다는 것을 식별하는 것은 CEO의 책임입니까?
jmort253

@ jmort253 짧은 대답은 아마도 회사의 조직 구조에 달려 있습니다. 회사 구조가 평평하고 작은 경우 개발자가 교육을 받도록하는 것이 CEO의 책임 일 수 있습니다. 실제로 저는 VP가 관리자가 아닌 직접 보고서를 가지고있는 수많은 신생 기업에서 근무했습니다.
dietbuddha

1

나는 주로 개발자이며 가능한 한 (즉, 명시 적으로 금지되지 않은 경우) 설정했습니다. 일반적으로 내가 일하는 곳은 .NET 상점이므로 CruiseControl.NET은 오픈 소스이기 때문에 대부분의 주요 소스 제어 시스템과 함께 작동하고 비교적 사용하기 쉽기 때문에 선택합니다. 나는 항상 Ambient Orb 를 출력 중 하나로 설정하고 싶었지만 그것은 일반적으로 통제 할 수 없습니다.

현재 진행중인 프로젝트에 영향을 미치지 않는 한, 누군가가 그렇게하고자 하는지를 먼저 만나기 위해 회의에 참석하십시오.

현재 위치 (국립 연구소 중 하나)에서 일관된 방식으로 빌드를 구축하여 우리가하는 일을보고 싶은 사람들이 언제든지 실행 가능한 버전을 얻을 수 있도록 설정했습니다. . 그들은 단위 테스트를 원하지 않습니다 (프로젝트 관리자는 단위 테스트에 노력을 기울이면 프로젝트를 .NET으로 이식 할 수 있었을 것입니다).

이전에는 제품 전체에서 표준적이고 일관된 빌드를 만들려고했습니다. 하나의 특수 컴퓨터에만 너무 많은 제품을 구축 할 수있었습니다. 그의 현재 상용 제품을 대체 할 수있는 유일한 제품 이었기 때문에). 또한 아침 사람인 한 사람 만 설치할 수 있으므로 오후 3시 이후에 빌드가 필요한 경우 다음 날까지 기다렸습니다.

Java, Spring 및 Google App Engine에 대한 지식이 필요하다는 점을 고려하여 개발자가이 작업에 적합한 사람입니까?

때에 따라 다르지. 스크립팅에 적합한 QA 담당자가있는 경우 먼저 QA 담당자에게 문의하십시오.

시작하도록 설정하는 것은 복잡한 작업이 아닙니다. 설정하는 데 며칠이 걸리지 않아야하며 (주로 회사 환경에서 번거 로움은 필요한 모든 권한으로 작업을 수행하기위한 계정을 얻습니다).


0

프로덕션 환경에 문제가있을 때 개발팀에 맡겨서 문제를 해결하고 빠르게 해결하려면 다른 방향에서 설정해보십시오. 그런 다음 최신 코드, 버전 스탬프 등에서 컴파일하는 간단한 야간 빌드 아이디어를 소개하십시오. 빌드에 실패하면 승격되지 않습니다.

개발 스크립트는 빌드 스크립트를 소유해야한다고 생각합니다. 종속성을 수정하거나 변경할 때 스크립트를 업데이트하는 방법을 아는 것이 가장 좋습니다. 그리고 프로젝트 관리 팀이 소유하고 있다면 문제가 생길 때마다 회의에 참석할 것이라고 말합니다.


0

다음 번의 회의에서 "좋습니다. 우리가 할 수있는 일 때문에해야한다고 생각합니다. 누가 그것을 구현할 수 있을까요?" 그럼 당신은 그것에 대해 싸울 필요가 없습니다.

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