TFS? Chạy cho những ngọn đồi! Di chuyển ra càng nhanh càng tốt. Nó làm rất nhiều thứ khác nhau nhưng không có cái nào tốt như những công cụ tốt nhất hiện có.
Nhưng nghiêm túc:
Khi bạn có một hệ thống kiểm soát phiên bản phù hợp (SVN, GIT, v.v.), tôi khuyên bạn nên thiết lập các quy tắc để quản lý chi nhánh, ví dụ: khi nào tạo chi nhánh, khi nào nên hợp nhất, ai và nhiều hơn nữa.
Cho đến gần đây, chúng tôi đã sử dụng một nhánh duy nhất để phát triển mới ('thân cây'). Để phát hành, chúng tôi sẽ tạo một nhánh ra khỏi thân cây. QA cuối cùng sẽ được thực hiện tại chi nhánh đó và sau khi hoàn thành, chúng tôi sẽ phát hành (chúng tôi đang phát hành hàng tháng).
Chúng tôi đã chuyển sang khái niệm 'không có rác trong cốp xe' để giảm rủi ro lịch trình. Khái niệm này về cơ bản chứa một quy tắc theo đó bạn tạo các nhánh cho công việc phát triển tách biệt với thân cây. Ví dụ: bạn có thể có một nhánh riêng cho một tính năng, cho một nhóm phát triển nhỏ hoặc tương tự. Chúng tôi sử dụng 'sử thi' để mô tả một tính năng nhỏ hoặc một phần đáng tin cậy của một tính năng và tạo một nhánh cho mỗi sử thi. Ít nhất một lần một ngày tất cả các thay đổi từ thân cây được hợp nhất vào nhánh sử thi. Key là hỗ trợ hợp nhất tốt bởi kiểm soát phiên bản hoặc một công cụ riêng biệt (ví dụ: hợp nhất ba cách). QA cho sử thi sẽ được thực hiện trên nhánh sử thi. Sau khi vượt qua nhánh sử thi sẽ được sáp nhập vào thân cây và một bài kiểm tra tích hợp sẽ được chạy. Chúng tôi vẫn có chi nhánh để phát hành.
Với các nhánh sử thi, chúng tôi đã giảm đáng kể rủi ro lịch trình vì hiện tại chúng tôi đang ở trong một vị trí để phát hành ra khỏi thân cây và bao gồm tất cả các sử thi đã được sáp nhập thành công vào thân cây. Epics không hoàn thành bỏ lỡ xe buýt và sẽ phát hành tiếp theo (tháng tới).
Điều này tất nhiên có thể chỉ làm việc trong môi trường của chúng tôi. Rất có khả năng bạn sẽ có các yếu tố khác với chúng tôi sẽ ảnh hưởng đến những lựa chọn tốt nhất cho quản lý chi nhánh.
Ví dụ: nếu bạn có một nhóm có nhiều người làm việc từ xa và không phải lúc nào cũng được kết nối với máy chủ kiểm soát phiên bản, thì bạn sẽ muốn sử dụng hệ thống kiểm soát phiên bản hỗ trợ mô hình phân tán. GIT và một vài người khác sẽ rơi vào loại này. TFS theo hiểu biết tốt nhất của tôi yêu cầu kết nối với máy chủ để chỉ tạo các tệp có thể ghi (cố định trong phiên bản 2010?).
Tôi hy vọng tôi có thể chỉ ra rằng không có "một kích thước phù hợp với tất cả". Bắt đầu với các quy trình của bạn trong quản lý chi nhánh cụ thể, xác định các yêu cầu và cuối cùng chọn công cụ phù hợp nhất cho nhu cầu của bạn. Có lẽ đó là TFS, có thể không.