Boss hoài nghi về việc sử dụng một hệ thống kiểm soát phiên bản cho dự án mới, dù sao tôi cũng nên?


9

Xem /software/109817/superior-refuses-to-use-subversion

Câu hỏi của tôi tương tự, nhưng đây là những khác biệt chính trong kịch bản của tôi:

  • Chúng tôi đang bắt đầu một dự án mới từ đầu, sử dụng PHP và công nghệ web. Sẽ không có thời gian phát triển vì chúng tôi sẽ áp dụng nó ngay từ đầu, nếu tôi có cách của mình.

  • Đội ngũ dev của tôi bao gồm tôi, và ông chủ của tôi. Chúng tôi là bộ phận "CNTT" của một công ty tương đối nhỏ.

Ứng dụng web sẽ thay thế một ứng dụng cũ mà hoàn toàn không có kiểm soát nguồn. Do sự khác biệt trong yêu cầu pháp lý địa lý, quyết định đã được đưa ra (trước khi tôi được thuê) để chia ứng dụng thành 7 thư mục hoàn toàn riêng biệt cho mỗi phiên bản. Các nhà phát triển khác nhau đã làm những việc khác nhau ở những nơi khác nhau vào những thời điểm khác nhau sau đó. Vá các thay đổi trên chúng, tốt, tôi nghĩ rằng nó có thể được thực hiện tốt hơn, tôi đoán đó là lý do tại sao tôi đăng.

Đề xuất của sếp tôi, được dán trực tiếp từ một email:

  • Các bản cập nhật phải được gửi dưới dạng các gói trong thư mục SUBMISSIONS. Gói phải chứa tất cả các tệp có liên quan cũng như tệp 'UPDATE.NFO' chứa mô tả về bản cập nhật, danh sách tất cả các tệp mới được bao gồm (có mô tả) và danh sách tất cả các tệp đã sửa đổi có chi tiết sửa đổi.

  • Các gói cập nhật nên tập trung vào một yếu tố riêng lẻ và không đi lạc khỏi mục đích dự định của nó. Mã nên được thiết kế để được mô-đun và tái sử dụng bất cứ khi nào có thể.

  • Tất cả các gói đã gửi phải được cài đặt trong môi trường thử nghiệm của mỗi nhà phát triển ngay sau khi gửi. Mỗi nhà phát triển phải xem xét bổ sung mới và nói lên bất kỳ mối lo ngại nào về việc cài đặt nó vào môi trường sản xuất. Một bản cập nhật gói tiêu chuẩn nên được tổ chức trong tối thiểu 3 ngày làm việc cho quy trình xem xét này trước khi được đưa vào môi trường sản xuất. Cập nhật / sửa lỗi ưu tiên cao có thể bỏ qua yêu cầu này.

Lý do kiểm soát nguồn được phát minh là để làm cho tất cả tự động, phải không? Tôi đề nghị lật đổ, vì đó là những gì tôi đã sử dụng ở trường đại học. Boss không thích lật đổ vì "Nó tạo ra một mớ hỗn độn của mã" (tức là sử dụng ma thuật nhị phân và không thể đọc được). Chúng tôi đã thử nó một lần, nhưng tôi nghĩ việc thử sử dụng nó trên các cửa sổ đã tạo ra các lỗi chữ thường / chữ hoa và chúng tôi không thể kiểm tra các tệp của mình. Tôi không biết liệu đó chỉ là lật đổ hay tất cả các sản phẩm kiểm soát nguồn bị phản đối.

Vì vậy, loại tranh luận nào tôi nên đưa ra cho sếp của tôi? Hoặc anh ấy đúng, và có thể có nguy cơ mất tất cả công việc của chúng tôi từ một số lỗi kỳ lạ?

Hay tôi hoàn toàn sai? Kiểm soát nguồn có thực sự cần thiết trong tình huống của tôi không? Đây là phần mềm quan trọng trong kinh doanh chính của chúng tôi mà chúng tôi đang nói đến, vì vậy nó sẽ không còn nghi ngờ gì nữa. Nhưng chỉ có 2 nhà phát triển (bây giờ).

Ngoài ra, nếu tôi không thể thuyết phục anh ta, liệu tôi có thể sử dụng nó cho riêng mình không? Tôi đang nói như một người có kinh nghiệm rất hạn chế thực sự sử dụng svn; tất cả những gì tôi thực sự biết là thanh toán và cam kết. Các tính năng của kiểm soát nguồn (có thể bao gồm các sản phẩm khác ngoài svn) sẽ hỗ trợ cho nỗ lực phát triển cá nhân của tôi là gì?

Xin vui lòng không có ý kiến ​​"nhận một công việc khác". Điều đó không hữu ích cho cuộc tranh luận.


25
'Và xin vui lòng không có ý kiến ​​"Nhận công việc khác".' Tại sao không? Sếp của bạn cam chịu.
S.Lott

9
Ngay cả khi bạn không thể thuyết phục anh ta, việc sử dụng nó cho riêng mình vẫn rất hữu ích. Vì vậy, bạn có thể tự do chỉnh sửa các tập tin của bạn mà không sợ hãi. Bạn có một loạt "lưu điểm" cho các tệp bạn làm việc. Ngay cả khi bạn phải có SVN trên hộp cục bộ của mình ... tốt hơn là không có gì cả.
Lord Tydus

10
@ S.Lott, tôi nghĩ OP có quyền chỉ định giới hạn của câu hỏi. "Kiếm một công việc khác" là không khả thi, chẳng hạn, nếu OP sống ở một quốc gia nhỏ và bố / mẹ vợ của anh ta là ông chủ của một công việc trong đó OP được trả gấp đôi hoặc gấp ba số tiền họ ' lại có giá trị trong thị trường mở. Nói tóm lại, nó không phải là một phần của câu hỏi.
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....Chà, ràng buộc cụ thể không hề ngớ ngẩn chút nào. Lời khuyên về nghề nghiệp không có chủ đề, và mặc dù câu trả lời sẽ trả lời câu hỏi và đưa ra lời khuyên nghề nghiệp là hoàn toàn tốt đối với tôi, tôi không nghĩ OP ngớ ngẩn khi chỉ định rằng anh ấy không quan tâm đến lời khuyên nghề nghiệp.
yannis

9
@ S.Lott Mặt khác, điều tôi thấy ngớ ngẩn, là lời khuyên về nghề nghiệp, đặc biệt là khi nó "tìm kiếm một công việc khác". Có rất nhiều biến số chưa biết, mà tôi thấy không thể thực hiện bất kỳ lời khuyên nào nghiêm túc như vậy.
yannis

Câu trả lời:


35

Đừng hỏi anh ấy. Đừng nói với anh ấy. Chỉ cho anh ta thấy.

Cài đặt svn, hoặc git hoặc bất cứ thứ gì bạn thích trên một số máy phụ. Thực hành sử dụng nó cho đến khi bạn cảm thấy thoải mái không chỉ sử dụng nó, mà còn giải thích nó. Nếu bạn sẽ làm cho anh ấy thoải mái với hệ thống mới của bạn, bạn sẽ cần phải thoải mái hơn với chính nó. Bạn sẽ cần có thể giúp anh ta phục hồi dễ dàng khi anh ta hợp nhất hoặc kiểm tra thứ gì đó không đúng chỗ.

Khi bạn đã sẵn sàng, hãy cho anh ấy thấy chính xác những gì bạn đang nói. Cho anh ta thấy nó không "làm bừa" bất cứ thứ gì. Chỉ ra rằng nó không chỉ cho phép bạn lấy bất kỳ phiên bản mã nào trước đó một cách dễ dàng, nó cũng giúp bạn có thể biết chính xác những gì đã thay đổi giữa hai phiên bản bất kỳ.

Chỉ ra rằng nếu có bất cứ điều gì xảy ra với máy chủ (lỗi nghiêm trọng, vi rút, tin tặc, sự cố đĩa ...) cả hai sẽ trông giống như anh hùng nếu bạn có thể tái tạo lại phiên bản cần thiết ngay lập tức. Cũng chỉ ra rằng, bạn sẽ trông tốt gấp đôi nếu bạn có thể sản xuất bất kỳ phiên bản nào theo yêu cầu. Tìm kiếm e-mail cũ của bạn và biên soạn một danh sách các vấn đề bạn gặp phải trong năm qua mà bạn có thể tránh được với kiểm soát phiên bản.

Đưa cho anh ta một bảng cheat sẽ giúp anh ta dễ dàng sử dụng hệ thống kiểm soát phiên bản của bạn.

Cuối cùng, đề nghị một số lựa chọn nhưng để lại quyết định cho anh ta . Bạn có nên thiết lập máy chủ của riêng mình hoặc sử dụng một trong nhiều dịch vụ được lưu trữ không? Bạn nên sử dụng svn, git, hoặc cái gì khác? Bạn nên di chuyển tất cả bảy dự án vào hệ thống, hoặc thử nó với một hoặc hai lần đầu tiên?


9
+1 cho "không nói, hiển thị (sau khi thực hành)"
Javier

2
Nhưng như ai đó đã nói, NÊN sử dụng nó cho bản sao của chính bạn
0fnt

3
+1 chosearch 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

Ngoài ra, hiển thị có thể dễ dàng hơn nếu có thứ gì đó để hiển thị. Tôi khuyên bạn nên sử dụng một cái gì đó với GUI, ví dụ như SourceTree cho git. Theo cách đó, nó trông ít đáng sợ hơn, dễ học hơn, không ai phải sợ làm rối tung toàn bộ hệ thống với một lỗi đánh máy nhỏ và nó gần như đã là phiên bản đồ họa của bảng cheat mà bạn đề cập.
R. Schmitz

28

Lợi ích của kiểm soát nguồn vượt xa cho phép nhiều nhà phát triển làm việc trên một đoạn mã. Eric Sink, người sáng lập SourceGear , liệt kê một vài lý do thuyết phục để sử dụng kiểm soát nguồn như một nhà phát triển duy nhất :

- 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 cũng tình cờ có Cách kiểm soát nguồn của người mới bắt đầu rất hay . Có một hướng dẫn Mercurial trực tuyến miễn phí có sẵn bởi Joel Spolsky, Mercurial là một hệ thống kiểm soát phiên bản phân tán phổ biến.

Là bước tiếp theo, tôi khuyên bạn nên bắt đầu sử dụng kiểm soát nguồn cục bộ trên máy của mình, với tư cách là nhà phát triển duy nhất. Sếp của bạn sẽ sớm nhận ra rằng bạn có khả năng sử dụng phép thuật tuyệt vời, như nói trong vòng vài phút, nếu không phải vài giây, một lỗi cực kỳ nghiêm trọng sẽ xảy ra bao lâu và sau đó bạn sẽ nói cho anh ta biết chính xác tài khoản khách hàng nào bị ảnh hưởng và cần sửa chữa trước tất cả địa ngục vỡ ra. Hoặc có thể hoàn tác mọi thay đổi mà CEO không chấp nhận là siêu nhanh.

Và cuối cùng trước khi bạn cố gắng thuyết phục sếp, bạn có thể muốn đi sâu vào chủ đề xử lý phản đối . Đó là 101 doanh số.

Nếu không thành công - di chuyển càng sớm càng tốt trong thực tế, không có nhiều điểm lãng phí thời gian của bạn nghiêng về cối xay gió.


1
+1 cho bài viết Eric chìm. +1 để đề xuất hg. git là tất cả các cơn thịnh nộ, nhưng câu hỏi nói rõ rằng op là người mới bắt đầu kiểm soát nguồn và hg dễ dàng hơn một chút so với git. +1 cho hướng dẫn hg. +1 để cung cấp tài liệu tham khảo theo định hướng bán hàng, đó là cách bạn đối phó tốt nhất với các ông chủ có mái tóc nhọn (-0,5 cho đó là liên kết tìm kiếm của google). +1 cho tham chiếu Don Quixote. Đây là loại câu trả lời khiến tôi muốn tạo tài khoản trùng lặp để tôi có thể nâng cấp nhiều lần.
yannis

1
Câu trả lời này về cơ bản nói lên tất cả. Chỉ một lý do nữa tại sao bạn nên tự mình sử dụng kiểm soát nguồn: nếu và khi bạn tiếp tục, việc có một số kinh nghiệm với kiểm soát nguồn sẽ có vẻ tốt trong hồ sơ của bạn. Không có bất kỳ kinh nghiệm như vậy sẽ không nhìn tốt.
Mike Nakis

10

Có, sử dụng kiểm soát nguồn, ngay cả khi chỉ dành cho bạn, là hoàn toàn xứng đáng. Git, chẳng hạn, hoạt động thực sự tốt cho một nhà phát triển độc lập và cho phép bạn thực hiện những việc như chi nhánh và hợp nhất (với chi phí thấp nhất có thể) và phiên bản thay đổi của bạn khi bạn đi.

SVN - hoặc bất kỳ hệ thống kiểm soát phiên bản nào, thực sự - cũng cho phép bạn làm điều này, nhưng việc hợp nhất lại có vấn đề hơn một chút.


Tôi đồng ý với việc sử dụng Git. Tôi sử dụng nó cho các dự án, ngay cả khi tôi là nhà phát triển DUY NHẤT.
DanO

Tôi cũng bắt đầu như vậy. Tôi sẽ không làm với SVN ... nhưng với Git, thật dễ dàng để tạo và quản lý repo mà không cần giao dịch với máy chủ, điều đó trở nên khó khăn hơn khi không nói rằng git initbạn bắt đầu làm việc gì đó.
cHao

không có quyền, .gitignoremột repo git về cơ bản là vô dụng. Đó là điều duy nhất mà bạn phải có ở bên cạnhgit init
Dan Rosenstark

" Nhưng việc sáp nhập có vấn đề hơn một chút " - nếu OP chỉ sử dụng chính nó, sẽ không có nhiều sự hợp nhất, phải không? Có thể hợp nhất lại nhánh tính năng của riêng mình vào chủ nhân của mình, nhưng bất kỳ mã nào anh ta nhận được từ ông chủ của mình sẽ thà đi vào một cam kết mới, phải không? Tôi không có kinh nghiệm với SVN, chỉ có git.
R. Schmitz

1
Sẽ không có nhiều sự hợp nhất với nhau cho đến khi có. Bất kỳ dự án nào, ngay cả khi đó là một dự án sở thích, cuối cùng sẽ yêu cầu nhóm nhà phát triển (có thể là một người) làm việc trên hai việc cùng một lúc. Sau đó, bạn phải hợp nhất, và đến một lúc nào đó bạn sẽ gặp phải xung đột hợp nhất.
Dan Rosenstark

5

Nếu tôi không thể thuyết phục anh ta, liệu tôi có thể sử dụng nó cho riêng mình không?

Đúng. Có lợi ích khi sử dụng nó cho chính mình. Bạn nhận được lịch sử thay đổi để bạn có thể thấy những gì khác nhau.

Không. Không có lợi ích gì vì sếp của bạn đã làm hỏng dự án của bạn với rất nhiều việc làm vô nghĩa vì họ đã làm mọi thứ trở nên tồi tệ.


Không chỉ là bạn có thể thấy những gì khác biệt, bạn có thể chuyển đổi giữa phiên bản mới và bất kỳ phiên bản cũ nào trong vòng hai giây.
gnasher729

3

Tôi đặc biệt khuyên bạn nên đề cập trước khi sử dụng git, lý do số 1 là vì bất kỳ VCS nào cũng là mạng lưới an toàn trong trường hợp thảm họa. Hãy tìm kiếm trong trường hợp hỏa hoạn: git commit, git đẩy, rời khỏi nhãn dán tòa nhà. Mã có thể được lưu trữ ở một nơi khác, nhưng không có trong máy tính xách tay có thể bị hỏng, bị đánh cắp hoặc bất cứ điều gì ... ngay cả một máy chủ mạng cục bộ không phải là nơi an toàn nhất cho những thứ có giá trị như mã.

Số 2. Truy nguyên nguồn gốc của các thay đổi, ai đã làm gì, khi nào, v.v ... Sáp nhập, Hoàn tác. Số 3. Diff công cụ ma thuật cho # 2 và nhiều trường hợp khác. Số 4. Chi nhánh Số 5. Phiên bản gắn thẻ, bản phát hành, v.v.

Bạn có thể tìm thêm thông tin về một trong những quy trình công việc git phổ biến nhất tại đây: https://nvie.com/posts/a-successful-git-branching-model/

Tôi biết rằng ban đầu sử dụng git có thể đáng sợ, nhưng đó là một sự đầu tư tốt cho một kỹ năng và phải có cho bất kỳ nhóm phát triển nào.

Về vấn đề của bạn với trường hợp văn bản, tránh sử dụng Rùa, tôi biết hầu hết mọi người sử dụng nó làm GUI cho git, vì nó rất phổ biến đối với SVN, vì vậy nó có thể là lựa chọn đầu tiên, thay vì sử dụng dòng lệnh hoặc GUI khác như máy tính để bàn github hoặc SourceTree từ Atlasian.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.