마틴 파울러 (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를 사용할 필요가 없습니다.