Team Foundation Server 로의 이동을 평가하는 방법


10

현재 개발 팀은 워크 플로에서 다음 소프트웨어를 사용합니다.

  • 지라
  • Bamboo (아 틀라 시안 연속 통합)
  • Greenhopper (Atlassian 애자일 프로젝트 관리)
  • 합류
  • Git, BitBucket에서 호스팅
  • 비주얼 스튜디오 2012

보시다시피 우리는 Atlassian 생태계에 상당히 많이 투자되었습니다. 우리는 코드 검토 및보다 중요한 Microsoft Test Manager와 같은 고급 Visual Studio 통합 기능을 활용할 수 있도록 TFS 로의 전환을 고려하고 있습니다.

TFS에 대한 나의 이전 경험은 2005 년 또는 2008 년 (기억할 수 없음)에 대한 것이며 기억이 나쁘지만 ClearCase를 사용한 시간만큼 나쁘지는 않습니다.

TFS 로의 이전을 올바르게 평가하기 위해 어떤 기준을 검토해야합니까?


4
나는 자식 회사에서 TFS 2008을 가진 회사로 옮겼는데 엄청나게 고통 스럽습니다. 2012 년이 훨씬 멋지다고 들었지만 현재로서는 업그레이드 할 위치에 있지 않습니다. 현재로서는 ... git으로 돌아 가기 위해 죽일 것입니다 :(
Simon Whitehead

1
맞습니다. TFS 2008은 유지 관리 및 사용이 어려웠습니다. 그러나 TFS 2010은 2008 년보다 훨씬 나아졌고 TFS 2012는 2010 년보다 훨씬 나아졌습니다. Visual Studio (테스터 및 제품 소유자)가없는 사람들이 사용할 수 있도록 유지 관리가 쉽고 웹 인터페이스가 뛰어납니다. 등)
Andrei Zubov

@SimonWhitehead TFS2008에서 TFS2012로 이동 한 사람으로서, 기본 사용자 수준의 차이점은 크게 바뀌지 않았습니다. 가장자리에 새로운 비트 (예 : 코드 검토, 스크럼 웹 페이지 등)가 있지만 여전히 미워합니다. 업그레이드 중 ... 잊어 버리십시오. 새로 설치하고 데이터를 복사해야합니다.
gbjbaanb

4
TFS 13조차도 JIRA Agile과 비교할만한 것이 없습니다. 현재의 "간반 보드"구현은이 죽은 아이에게 생명을 가져 오려는 한심한 시도입니다. Cofluence를 대체하기 위해서는 아무것도 찾을 수 없습니다. 왜 Atlassian 스택에서 TFS 스택으로 이동해야하는지 잘 모르겠습니다. 나는 수년 동안 TFS를 사용하고 있으며 동료들도 결코 만족하지 못했습니다.
Alexey Zimarev

Atlassian ecosysten에 이미 투자 했으므로 Git에서 실행되는 Atlassian Stash 를 언급 한 사람이 아무도 없습니다. 저장소 액세스 관리, 풀 요청, 코드 검토 및 자동 병합 전략과 같은 기능을 제공합니다. 꽤 좋습니다.
Mike Chamberlain

답변:


17

마틴 파울러 (Martin Fowler)의 작은 조사에 따르면 지난 몇 년간 TFS의 상태에 대해 많은 의견이 있었다. '위험한'이 옳습니다. (이것은 VS 외부에서 변경된 사항을 인식하지 못하는 방식을 의미한다고 생각하므로 WCF 프로젝트를 만든 다음 외부 svcutil 도구를 사용하여 클라이언트를 만든 다음 모든 변경 사항을 확인하십시오. VS 내에서 변경되지 않았으므로 클라이언트 변경 사항을 무시하십시오.

비용을 계산해야합니다 : 케이크를 얻는 데 필요한 VS 버전-코드 검토와 같이 MSDN을 통해 VS를 얻는 경우 훨씬 더 비싼 프리미엄 버전이 필요합니다 . 또한 비 VS 사용자를 위해 시스템에 액세스하는 것은 좋지만 컷 다운 웹보기 대신 전체 액세스를 원하면 CAL을 위해 셸을 만들어야합니다. TFS의 전체 비용은 상당히 클 수 있습니다. 최근 Forrester 보고서 조차(Microsoft가 위임 한 내용이므로 약간의 내용을 읽어야합니다) TFS는 상당한 관리 지원이 필요하다고 말합니다. 컨설턴트 2 명과 시간의 25 %를 소비 한 6 명의 관리자가 122 명의 사용자 사례 연구를 위해 TFS를 지원해야했습니다. (122 명의 사용자에 대해 4.5 명의 관리자가 작업합니다. 이것은 하루 종일 업무를 수행하면서 전체 SVN 솔루션을 설정하고 유지 관리하는 것과 비교할 때 훨씬 많습니다.) TFS는 사람들이 기대하는대로 계속 일하기 위해 많은 노력을 기울일 수 있습니다.

TFS2012에 대한 나의 경험에서 (이전 버전은 쓰레기이므로 잊어 버립니다), 특히 미리 정의 된 설정을 벗어나면 매우 복잡한 시스템 관리입니다. 예를 들어, MSBuild를 사용하여 모든 것을 빌드하면 괜찮습니다. 그러나 더 이상 MSBuild에서 지원하지 않는 오래된 .vdproj propjects를 가지고 있다면 거대한 xaml 빌드 스크립트를 편집하여 이러한 프로젝트를 빌드해야합니다. 며칠 후이 작업을 수행 한 후 솔루션을 devenv로 전달하여 솔루션을 다시 빌드하는 것이 가장 좋았으며 빌드 결과를 빌드 요약으로 가져 오는 것이 불가능했습니다. 테스트에 NUnit을 사용한 다른 팀에서도 비슷한 결과를 얻었습니다. 내장 MSTest를 사용하면 작동합니다. 그렇지 않으면, 당신은 꽤 박제입니다.

사용자로서 통합이 성가신 것임을 알게되었습니다. TortoiseSVN을 선호하며 SCM 작업을 거의 모두 수행합니다 (굉장한 도구이므로). TFS를 사용하면 모든 작업에 대해 VS 내부에 새 화면이 나타납니다. 따라서 환경에 팀 탐색기를위한 새 탭과 빌드를위한 새 탭 및보고자하는 각 빌드 요약을위한 새 탭이 있습니다 (빌드의 세부 사항을 보려면 오류가 있습니다) 너무 많은 링크를 클릭하십시오). TFS를 사용할 때 열어 본 문서 수가 소스 파일보다 많다는 것을 알았습니다!

체크인의 경우에도 동일하게 적용되어 VS의 보류중인 변경 사항 창에서 여러 탭을 클릭하여 변경 사항을 커밋하여 체크인에 작업 항목 및 주석을 지정합니다. 작은 일이지만 더 간소화 된 도구에 익숙해지면 성가신 것으로 나타났습니다.

빌드 시스템을 확장하는 것이 부족하다는 또 다른 영역이었습니다. xaml 구성으로 인해 새 기능을 빌드에 추가하는 것은 어렵고 해당 기능의 결과를 빌드 화면에 가져 오는 것은 매우 어렵거나 불가능합니다. 따라서 코드 복잡성이나 정적 분석 또는 셀레늄 또는 배포를 통한 자동화 된 테스트와 같은 것을 추가하고 싶다면 잊어 버리십시오. 이러한 측면에서 Microsoft 도구를 사용하지 않는 한 (예 : fxcop).

워크 플로 업데이트는 또 다른 문제였습니다 .Powertoys가 엄청나게 도움이되었지만 여전히 워크 플로우를 올바르게 얻는 것이 어색했으며 실제로보고 싶은 정보로 스크럼 보드를 구성 할 수 없습니다. 다시 기본값을 얻거나 아무것도 얻지 못합니다. .

병합도 고통 스럽습니다 .MS가 TFS에 git을 채택한 매우 좋은 이유가 있다고 생각합니다 (이것은 새로운 TFS 프로젝트에서만 작동하며 TFS에서 git 백엔드로 변환 할 수는 없습니다).

전체적으로, 그것이 작동하는 것처럼 나쁘지는 않지만 많은 다른 도구가 훨씬 낫다는 것을 알았습니다. 이러한 도구의 단점은 완전히 통합되지는 않았지만 IMHO는 원하는 최상의 비트를 선택하고 선택할 수있는 장점입니다. TFS를 사용하면 다른 사람이 원하는 것을 거의 얻을 수 있습니다. TFS의 버그 시스템이 좋지 않다고 판단하면 (그리고 그렇게 생각할 것입니다), 다른 것으로 변경하기가 어려울 것입니다.

TFS는 다른 크고 뚱뚱한 전체 수명주기 도구와 함께 고려해야합니다. 대부분의 개발자는 이러한 도구에 대한 제한을 싫어하는 것을 싫어합니다.

그래도 시도하고 30 일 평가판을 다운로드하여 설치하십시오. 평가할 때 여기저기서 약간 변경하는 것을 잊지 말고 소스 코드 체크인에 사용하지 말고 필요한 작업 항목으로 체크인하고 해당 작업 항목을 기반으로 보고서를 받으십시오. 체크인을 여러 작업 항목에 지정하고 작업 항목을 관련있는대로 결합하십시오. 빌드 시스템에 다른 것을 통합하고보고 서비스에서 일일 진행 보고서를 얻는 방법을 확인하고 문서를 워크 플로 요구 사항에 연결하고 버그 심사를 통해 코드를 추적하여 재 작업 및 빌드를 빌드합니다. 분기하고 많이 병합하십시오. 이 모든 것을 쉽게 할 수 없다면 git을 고수 할 수도 있습니다. 대부분의 ALM 기능을 활용하지 않으면 TFS를 사용할 필요가 없습니다.


1
당신의 경험을 공유해 주셔서 감사합니다. 기업에서 ClearCase를 얼마 전에 사용했는데 이것이 내가 사용해 본 최악의 SCM이었습니다. 관리상의 오버 헤드는 작은 시작에 관한 것이지만 현재 설정에 실제로는 관리가 필요하지 않습니다.
Sam

Serena Dimensions는 내가 사용한 것 중 최악이었습니다. Clearcase는 비교할 때 거의 나쁘지 않았습니다. 적어도 작동했습니다! MS는 클라우드 버전의 TFS를 사용하기를 원한다고 생각합니다. 자체 설치는 기업에 큰 돈을 팔 수있는 것입니다. 당신이 가진 것을 고수하겠습니다. 동일한 기능 (예 : ReviewBoard)을 제공하는 도구를 더 확보하십시오.
gbjbaanb

아, 그리고 나는 버그를 알고 있으므로 그것을 강조하는 것이 공정하지 않다. 그러나 TFS의 코드 검토 기능을 시도하고 이름이 바뀌고 수정 된 파일을 검토하려고하면 TFS는 "이전"을보고합니다 개정을 찾을 수 없습니다 "오류. 리팩토링을 많이하면 문제가 될 수 있습니다. 약간의 버그 일 수 있지만 TFS 백엔드 저장소에서 파일 이름을 추적하지 않으면 주요 아키텍처 문제 일 수도 있습니다.
gbjbaanb

2
답장을 늦게 미안해 결국 TFS 사용에 대해 이야기 한 것은 당신입니다. 감사.
Sam

1
잘 들으십시오-모두가 다양한 도구를 사용해야 할 때 모두가 TFS를 사용해야한다고 생각하는 것 같습니다. 그렇지 않으면 우리는 모든 IT 도구 (Microsoft와 Oracle 등)를 제공하는 1 ~ 2 개의 회사로 끝날 것입니다. 가장 살기 좋은 세상은 아닙니다.
gbjbaanb

12

Atlassian 스택이 많은 회사 (및 Mercurial)에서 무거운 TFS 스택이있는 회사로 이전했습니다. 두 가지 자극이 있습니다.

첫 번째는 소스 컨트롤 입니다.

DVCS에 익숙해지면 CVCS로 다시 전환하는 것은 쉽지 않습니다. TFS는 모든 통합 작업이 항상 서버에 연결되어 있어야하므로 특히 고통 스럽습니다.

그러나 다행히도 Microsoft는 최근 Git 버전 제어 를 나머지 TFS 스택 에 통합 할 수 있도록 허용했습니다 . 따라서 Git을 포기할 필요가 없으며 모든 사람들이 이미 알고 있다고 생각하지 말 것을 권합니다.

그래도 코드 검토 도구가 Git에 대해 얼마나 잘 작동하는지 잘 모르겠습니다. 스탠드 셋 (스 태쉬와 비슷하지만 강력하지는 않음)에 많이 의존하는 것 같습니다. 그러나 코드 검토를 위해 선반 세트에 의존하는 것은 규칙적인 커밋을 방해하기 때문에 고통 스럽습니다.

다른 자극은 대부분의 사람들이 TFS를 떠나는 것을 고려하지 않는 이유입니다 : The Visual Studio Integration .

나는 이것에 대한인지 적 추론을 아직 이해하지 못했지만, 내 경험 (그리고 이것이 일반화 된 것을 고려할 때)에서 TFS에 익숙한 사람들은 통합을 좋아합니다. 그들은 IDE 외부로 나가는 것을 좋아하지 않습니다.

반면에 나는 1 년이 지나도 따뜻하지 않았다. 하나의 브라우저 탭에 빌드 서버를 설치하고 다른 브라우저 탭에 티켓을 넣는 것과 비교하여 혼란스럽고 탐색하기가 어렵다는 것을 알았습니다. (편집 : Andrei가 지적했듯이 웹 인터페이스가 있지만 최신 버전의 Jira 및 Jenkins에 익숙 할 때 설명 할 수 없을 정도로 복잡하지만 여전히 IE 이외의 브라우저에서는 작동합니다. 그 거에요)

내가 시도하지 않는 한 빌드를 보지 않으면 다른 사람이 이미하고 있는지 확인하기가 어렵습니다. 검토를 요청받지 않으면 다른 사람의 변경 사항이 표시되지 않습니다.

그러나 마일리지가 다를 수 있습니다. 내가 말했듯이, 어떤 사람들은 그것이 없어서는 안될 것 같습니다. 나는 일반적으로 다른 방법으로 한 적이없는 사람들이라는 것을 알 수 없습니다.

또한, 이것은 매우 큰 인프라에서 2 개의 부정적인 것인데 그 중 하나는 개인적 일 수 있습니다. 내 경험의 대부분은 좋으며 TFS는 일부 사람들이 당신을 믿는 것만 큼 나쁘지 않습니다. 그리고 당신이 놓치고있는 대부분의 것들은 아마도 스위치를 켤 수 있습니다 (매우 구성 가능합니다). 한 사람이 아닌 팀 전체를 움직이면 저항이 줄어 듭니다.


1
이것은 기본적으로 내가 대답했을 것입니다. 내가 유일한 사람이 아니라는 것을 알게되어 기쁘다!
Simon Whitehead

1
커밋 된 코드의 코드 검토를 수행 할 수 있지만, 검토 후 사람들이이를 정확히 사용한다는 의미가 될 때까지 체크인을 방지 할 수 있다는 사실 만 알면됩니다. 모든 곳에서 기업 정책이 작성되므로 필수 사항이며 개발자를 화나게하는 또 다른 프로세스 병목 현상이 발생합니다.
gbjbaanb

5

TFS 2012 사용에 대해 매우 긍정적 인 경험을 가지고 있습니다. TFS 서버를 설정하고 실행하는 것은 매우 쉽고 CI 빌드 자동화는 매우 간단하고 간단합니다 (Gated 체크인 빌드는 정말 훌륭합니다). Team City와 함께). 팀 상호 작용도 매우 투명하고 간단합니다. 체크인을 TFS 작업 항목에 쉽게 연관시키고 백 로그를 관리하며 결함을 추적하고 코드 검토 등을 수행 할 수 있습니다. 메신저 빌드도 있습니다 =)

그러나 JIRA의 워크 플로우에 익숙하다면 TFS 워크 플로우를 설정하는 것은 어려운 작업 일 수 있습니다. 사전 정의 된 TFS 워크 플로우 중 하나를 채택 할 것을 제안합니다. 또한 TFS에 Wiki 빌드가 없으므로 지식 기반을 유지하거나 SharePoint로 전환 할 때 Confluence를 유지해야합니다.

MSDN 구독 (MS 기술 스택을 사용하는 대부분의 개발자 회사가 보유하고 있다고 생각하는 경우)이 TFS 인 경우 TFS가 훨씬 저렴합니다.

모든 개발자가 Visual Studio로 작업하는 경우 사이드 도구를 계속 사용할 이유가 없다고 생각합니다. TFS는 강력하지만 사용하기 쉬운 통합 ALM 시스템을 제공합니다. 궁금한 점이 있으면 기꺼이 답변 해 드리겠습니다.


1
의견을 보내 주셔서 감사합니다. 우리는 TFS가 포함되어 있다고 확신하는 BizSpark를 사용하고 있습니다. 나는 당신에게서 내가 원하는 유일한 것은 무게를 측정하기 위해 어떤 부정적인 것 같아요. SharePoint를 싫어하는 Confluence를 유지하게되어 기쁩니다.
Sam

TFS의 변경 알림 시스템은 다른 솔루션에 비해 다소 단순합니다 (예 : 테스트 트랙에 훨씬 강력한 시스템이 있음). TFS에서는 작업 항목이 사용자에게 지정된 경우에만 알림을받습니다. 예를 들어 특정 작업 항목의 변경 사항을 구독 할 수 없습니다. 민첩한 작업 프로세스에서는 큰 문제가 아니라고 생각하지만 작업 프로세스의 알림에 크게 의존하면 고통 스러울 수 있습니다. 소스 컨트롤에 익숙해 지려면 약간의 시간이 필요합니다. 특히 GIT 명령 행 명령에 익숙한 경우. 그러나 분기 시각화는 내가 생각하는 노력의 가치가 있습니다.
Andrei Zubov '

-3

사람들은 TFS가 VCS가 아니라 ALM 이라는 것을 알아야 합니다.

많은 사람들이 VCS를 원하지만 TFS로가는 것은 잘못된 길입니다.
CVCS의 경우 여전히 SVN을 선호합니다.
솔로 또는 오픈 소스의 경우 GIT로 이동하십시오.

그러나 TFS2012는 나쁘지 않으며 병합 / 포크와 SVN을 쉽게 이해할 수 있습니다.
그리고 팀 파운데이션 서비스는 5 명의 사용자 / 무제한 개인 저장소에 대해 무료입니다.

클라이언트도 무료이며, VS2010 위에 TFS 탐색기가 구축되어 있으며 무료입니다.
Eclipse의 경우 Eclipse 플러그인-TFS가 있습니다.

나는 그것에 비용 문제가 보이지 않습니다.
TFS express (무료)는 SQL Server Express와 함께 사용할 수 있습니다 (무료).


1
이것은 질문에 어떻게 대답합니까?
gnat
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.