Làm thế nào để bạn giải giáp một lập trình viên cao bồi? [đóng cửa]


37

Tôi đã tìm thấy một câu hỏi (cao bồi mã trong nhóm), nhưng nó liên quan nhiều hơn đến "Ninja Coder" thì vấn đề mà tôi gặp phải.

Tôi có một thành viên trong nhóm là một ví dụ sống thuần túy của " Cowboy Coder ". Tôi hiểu rằng người ta không thể thay đổi con người, nhưng có phải là một cách để khiến anh ta ngừng cư xử như một "Người giải mã cao bồi"?

Anh ta từ chối nghe nhóm, và gần đây anh ta đã dừng đánh giá mã, kiểm tra đơn vị, chia sẻ chi tiết thực hiện, v.v.

Có, anh ta "mã hóa" nhanh, nhưng mã của anh ta chỉ là một trình tạo lỗi. Các thành viên khác trong nhóm và tôi đang trong "giai đoạn sửa lỗi" và 80% lỗi đến từ mã của anh ấy. Tôi không muốn sửa lỗi của anh ấy. Và quản lý là mù quáng, hoặc không muốn thấy điều này, hoặc có thể họ thích "tốc độ" của anh ấy.

Có cách nào mà tôi (với tư cách là đồng nghiệp trẻ tuổi của anh ấy, không phải ông chủ của anh ấy) có thể làm gì đó không?

Làm thế nào tôi có thể giải giáp coder cao bồi này?

Tôi cảm thấy mình là người cuối cùng thực sự quan tâm đến dự án.


17
Anh chàng này cần sửa lỗi của mình. Tại sao mọi nhà phát triển không cần phải trải qua đánh giá mã?
lập trình viên

8
Theo thẩm quyền, ông đã dừng đánh giá mã?
Otávio Décio

14
Vì vậy, ... bạn không có ai quản lý điều này. Đó là vấn đề của bạn, không phải là lập trình viên cao bồi.
Otávio Décio

3
Nếu đó là trường hợp thì Scrum là tốt cho quá trình không có gì. Khi tất cả phụ trách, không ai chịu trách nhiệm và sản phẩm bị ảnh hưởng bởi người ngoài cuộc.
Otávio Décio

7
Nhưng làm thế nào để chúng ta giải giới những chàng cao bồi "gần gũi" ...
Rig

Câu trả lời:


22

Tôi thấy một vài lựa chọn:

  • Tiếp cận các coder với mối quan tâm của bạn. Nó phải được thực hiện như những lời chỉ trích mang tính xây dựng với những điểm cụ thể. Trước khi thực hiện các bước lớn hơn, nên đặt ra mối quan tâm trực tiếp và riêng tư để cung cấp cho người đó cơ hội để thay đổi.
  • Thu thập thông tin và số liệu thống kê và đưa nó đến quản lý. Quản lý có thể không quan tâm, nhưng điều quan trọng là phải nỗ lực bằng mọi cách trong trường hợp nó hoạt động. Hậu quả tiêu cực có thể xảy ra bao gồm xa lánh những người khác không đánh giá cao các khiếu nại đối với ban quản lý.
  • Tìm một đồng nghiệp của coder cao bồi và thảo luận về nó một cách riêng tư. Anh ấy / cô ấy có thể có cơ hội tốt hơn để khiến người đó lắng nghe.
  • Yêu cầu làm việc trên một nhóm khác. Sẽ không giải quyết vấn đề nhưng bạn sẽ giữ được sự tỉnh táo của mình. Ít nhất là luôn luôn làm việc hết khả năng của bạn và đừng để nó kéo bạn xuống.
  • Rời khỏi tổ chức nếu không ai nghe. Nghe có vẻ như một môi trường xấu.

6

Anh ấy từ chối lắng nghe nhóm và gần đây anh ấy đã dừng đánh giá mã, kiểm tra đơn vị, chia sẻ chi tiết thực hiện ...

Đánh giá mã không nhất thiết yêu cầu người viết mã phải gửi tác phẩm để xem xét.

Một cách dễ dàng để theo dõi những gì anh ta làm là theo dõi lịch sử của VCS, tìm kiếm các đăng ký của anh ta. Nếu bạn lo lắng về mã của anh ấy, đây là một cách dễ dàng để tìm thấy nó. Nhận một lịch sử khác biệt, nhìn vào những gì anh ấy đưa vào, và xem nếu có bất kỳ lá cờ đỏ nào nhảy ra khỏi bạn. Bắt các đăng ký của anh ta đủ nhanh và nếu bạn tìm thấy một vấn đề, bạn có thể khôi phục lại cam kết và gửi e-mail cho anh ta để có hiệu lực. Bạn được phép gọi ra các thành viên trong nhóm của mình, ngay cả với tư cách là một lập trình viên cơ sở, khi bạn thấy có gì đó không ổn.

Có, anh ta "mã hóa" nhanh, nhưng mã của anh ta chỉ là một trình tạo lỗi. Các thành viên khác trong nhóm và tôi đang trong "giai đoạn sửa lỗi" và 80% lỗi đến từ mã của anh ấy. Tôi không muốn sửa lỗi của anh ấy. Và quản lý là mù quáng, hoặc không muốn thấy điều này, hoặc có thể họ thích "tốc độ" của anh ấy.

Mã xuất phát từ yêu cầu. Yêu cầu dẫn đến các bài kiểm tra có thể chạy được để xác minh các yêu cầu đã được đáp ứng. Các thử nghiệm này có thể được chia nhỏ hơn nữa và có thể được viết trước khi các thay đổi được thực hiện để xác minh rằng các thay đổi đáp ứng các yêu cầu (red-green-refactor; bản chất của TDD).

Thêm số liệu "phạm vi bảo hiểm mã" vào máy chủ xây dựng nhóm của bạn (hy vọng bạn có một; nếu không, đó là vấn đề đầu tiên của bạn). Chỉ cần kiểm tra các bài kiểm tra đơn vị đó sẽ không bắt gặp các vấn đề với mã không TDDed mới của anh ta, được thực hiện ở các khu vực không có bài kiểm tra đơn vị. Sau khi chạy tất cả các bài kiểm tra đơn vị, máy chủ xây dựng nên thực hiện mọi dòng mã một cách lý tưởng, nhưng thực sự có một số thứ bạn không thể kiểm tra đơn vị. Trên thực tế, bạn vẫn có thể mong đợi mức độ bao phủ 95% hoặc tốt hơn (hoặc loại trừ một số thư viện hoặc loại tệp nhất định khỏi phạm vi bảo hiểm). Sớm hay muộn, chàng cao bồi của bạn sẽ kiểm tra thứ gì đó phá vỡ bản dựng vì anh ta đã giảm mức bảo hiểm dưới ngưỡng và bạn gọi anh ta ra.

Và theo như "tốc độ" có liên quan, tốc độ là tốc độ bạn hoàn thành mọi việc "hoàn thành" và nó không "hoàn thành" cho đến khi nó được thực hiện một cách chính xác. Bạn có thể đưa nó cho người quản lý của bạn theo cách này; hãy xem xét một thợ sửa xe, khi người quản lý đưa chiếc BMW của mình đi thay dầu, quên không cắm chảo dầu vào, và kết quả là tất cả dầu mới đổ ra trước khi anh ta lái xe ra khỏi gara. Chắc chắn, việc thay dầu chỉ mất năm phút, nhưng người quản lý sẽ không quan tâm đến điều đó khi động cơ xe của anh ta bị kẹt trên đường về nhà. Anh ta sẽ quan tâm rằng thợ máy đã bỏ lỡ một bước, điều đó sẽ khiến anh ta tốn thêm rất nhiều thời gian và tiền bạc để sửa chữa. Ngay bây giờ, anh ấy trả một chàng cao bồi để thực hiện công việc rất nhanh, và sau đó anh ấy ' s trả cho phần còn lại của đội một khoản tiền lớn hơn nhiều để đến và thực hiện lại công việc một cách chính xác. Điều gì thực sự là lợi thế của việc tiếp tục để chàng cao bồi làm việc của mình?

Có cách nào mà tôi (với tư cách là đồng nghiệp trẻ tuổi của anh ấy, không phải ông chủ của anh ấy) có thể làm gì đó không?

Gọi anh ta ra. Khi bạn tìm thấy thứ gì đó anh ta làm hỏng, hãy cho anh ta thấy mã của anh ta bị lỗi như thế nào, làm thế nào anh ta có thể ngăn chặn vấn đề ngay từ đầu (bao gồm thiết kế phù hợp, TDD, đánh giá mã) và kết quả là bạn sẽ phải làm gì để sửa mã bị hỏng của mình.

Tôi cảm thấy mình là người cuối cùng thực sự quan tâm đến dự án.

klaxons sáng chói, đèn nhấp nháy, còi báo động rền rĩ - nếu bạn thực sự cảm thấy mình là người duy nhất quan tâm đến chất lượng mã do nhóm sản xuất, thì có vấn đề NGHIÊM TRỌNG. Nếu bạn cảm thấy bạn đang cố gắng kéo toàn bộ đội đá và hét vào kỷ nguyên mã hóa tốt, và nó chỉ quá nặng để lôi, hãy bỏ nó đi. Nếu có một đội khác tại công ty đang làm đúng, hãy yêu cầu chuyển nhượng, nếu không thì hãy biến đi.


5

Đi đến quản lý với số liệu thống kê của bạn về việc có bao nhiêu lỗi / vấn đề đến từ nhà phát triển này. Giải thích cho họ rằng sửa lỗi của họ ảnh hưởng đến năng suất của nhóm bạn. Nếu thực sự 80% vấn đề đến từ một người, điều đó chắc chắn cần được giải quyết. Miễn là bạn giải thích cho quản lý về các điều khoản mà họ có thể đồng ý (nghĩa là "lãng phí thời gian là lãng phí tiền bạc"), họ sẽ can thiệp.

Ngoài ra, nhà phát triển này nên sửa các lỗi / vấn đề của riêng họ, vì vậy có thể hữu ích khi gán các vấn đề này cho họ. Nhóm của bạn không nên bao gồm cho một người này.


4

Có cách nào mà tôi (với tư cách là đồng nghiệp trẻ tuổi của anh ấy, không phải ông chủ của anh ấy) có thể làm gì đó không?

Áp lực ngang hàng và dẫn đầu bằng ví dụ là những cách tốt duy nhất. Những cách tốt nhất được thực hiện bởi ông chủ / lãnh đạo của họ. Nếu bạn không phải là ông chủ / lãnh đạo của họ thì hãy nói chuyện với những người này. Nhưng cuối cùng, công việc của họ là chăm sóc nó chứ không phải của bạn. Hãy chắc chắn rằng bạn đang làm một công việc tốt và mọi thứ có xu hướng tự giải quyết.


1
Các lập trình viên cao bồi có thể miễn nhiễm với áp lực, nếu quản lý không hiểu tác động thực sự của anh ta, họ có thể bị mù bởi tác động nhận thức của anh ta.
mhoran_psprep

Anh ta có thể biện hộ cho những sai lầm của mình rất tốt trước khi quản lý, để các lỗi lớn hoặc các vấn đề trông nhỏ đối với quản lý, nhưng cuối cùng, mã vẫn bị hủy hoại. Và đó là điều mà ban quản lý không quan tâm.
Adronius

2
@mhoran_psprep - Ồ chắc chắn rồi. Tôi không hy vọng anh ta sẽ thành công , nhưng tôi cũng nghĩ rằng cố gắng sửa chữa những thứ khác có nhiều rủi ro hơn liên quan đến việc có hậu quả tiêu cực. Làm ầm ĩ về nó là một cách nhanh chóng và dễ dàng để khiến bản thân bị tẩy chay, đặc biệt là nếu nhận thức của OP về chàng cao bồi là không chính xác.
Telastyn

0

Anh ấy từ chối lắng nghe nhóm và gần đây anh ấy đã dừng đánh giá mã, kiểm tra đơn vị, chia sẻ chi tiết thực hiện ...

Bạn không có một đường dẫn tài liệu cho mã thông qua xem xét, thử nghiệm và thực hiện? Nếu không, bạn có một vấn đề rộng hơn. Nếu bạn làm, thì đây là một cái gì đó cần phải được leo thang.


Chắc chắn, chúng tôi có hàng tấn các quy trình và tài liệu. Nhưng đó là về những người họ sử dụng chúng.
Adronius

Nhưng không có gì nên được đưa vào sản xuất mà không có được dấu hiệu liên quan. Bạn đang nói với tôi anh ấy cắt bao quy đầu kiểm soát thay đổi bình thường?
cám dỗ

Không chính xác, nhưng loại. Anh ta thực hiện thay đổi mã, sau đó anh ta thực hiện các bước "chính thức" để thực hiện đánh giá mã = ​​chỉ sử dụng một số công cụ, do đó, mã đã "đánh giá" hoặc yêu cầu người bạn đời của mình (không quan tâm đến mã) "Xem lại" mã của anh ấy. Sau đó, anh ta "giải thích" mã trong một phút và thế là xong. Nhanh lên, và anh ấy đi nộp những thay đổi.
Adronius
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.