Làm thế nào để mã hóa Mục tiêu có xu hướng được xử lý bởi Người quản lý phát triển?


12

Đầu tiên cho phép tôi kiếm một thuật ngữ:

mã mục tiêu theo xu hướng: Kiểm tra mã vào buổi sáng, sau đó âm thầm xem xét tất cả các thay đổi được thực hiện bởi các nhà phát triển khác tệp ngày hôm trước bằng tệp, (đặc biệt là các tệp mã bạn đã phát triển ban đầu) và sửa định dạng, logic, đổi tên biến, tái cấu trúc phương thức dài, v.v., và sau đó cam kết thay đổi đối với VCS.

Thực tiễn này có xu hướng có một vài ưu và nhược điểm mà tôi đã xác định:

  • Pro : Chất lượng mã / khả năng đọc / tính nhất quán thường được duy trì
  • Pro : Một số lỗi được sửa do nhà phát triển khác không quá quen thuộc với mã gốc.
  • Con : Thường lãng phí thời gian của nhà phát triển chăm sóc mục tiêu.
  • Con : Thỉnh thoảng giới thiệu các lỗi gây ra cơn thịnh nộ của các nhà phát triển, những người nghĩ rằng họ đã viết mã không có lỗi vào ngày hôm trước.
  • Con : Các nhà phát triển khác trở nên trầm trọng hơn với quá trình nitpicking quá mức và bắt đầu không thích đóng góp cho mã của mục tiêu.

Tuyên bố miễn trừ trách nhiệm: Công bằng mà nói, tôi thực sự không phải là người quản lý phát triển, tôi là nhà phát triển thực sự đang thực hiện "xu hướng mục tiêu".

Để bảo vệ, tôi nghĩ rằng tôi đang làm điều này vì lý do chính đáng (để giữ cho cơ sở mã cực lớn của chúng tôi trở thành một cỗ máy được bôi dầu tốt), nhưng tôi rất lo ngại rằng nó cũng tạo ra một bầu không khí tiêu cực. Tôi cũng chắc chắn lo ngại rằng người quản lý của tôi sẽ cần phải giải quyết vấn đề.

Vì vậy, nếu bạn là người quản lý, bạn sẽ giải quyết vấn đề này như thế nào?

CẬP NHẬT: Tôi không có nghĩa là điều này quá cục bộ, nhưng một số người đã hỏi, vì vậy có lẽ một số nền sẽ được chiếu sáng. Tôi đã được chỉ định một dự án khổng lồ (200K LoC) ba năm trước và chỉ gần đây (1 năm trước) là các nhà phát triển bổ sung được thêm vào dự án, một số trong đó không quen thuộc với kiến ​​trúc, những người khác vẫn đang học ngôn ngữ (C #). Tôi thường phải trả lời cho sự ổn định chung của sản phẩm và tôi đặc biệt lo lắng khi những thay đổi được thực hiện một cách đáng ngạc nhiên đối với các phần kiến ​​trúc cốt lõi của cơ sở mã. Thói quen này xuất hiện bởi vì ban đầu tôi rất lạc quan về những đóng góp của các nhà phát triển khác, nhưng họ đã tạo ra quá nhiều sai lầm gây ra những vấn đề nghiêm trọng không thể phát hiện ra cho đến vài tuần sau đó, nơi ngón tay sẽ chỉ vào tôi vì viết mã không ổn định. Thường là những "


3
Rõ ràng các nhà phát triển của bạn không bơm lốp xe của bạn đủ. Thay thế thủ môn của bạn bằng FxCop hoặc một cái gì đó tương tự và tự động thực thi các tiêu chuẩn đó để họ không thể đăng ký.
Jon Raynor

2
Con: Đó không phải là công việc của bạn. Những người này nên thực hiện mục tiêu của riêng họ.
Robert Harvey

10
với tư cách là một nhà phát triển, tôi sẽ thấy điều này gây phẫn nộ cho một nhà phát triển khác thực hiện điều này với tất cả những thay đổi tôi thực hiện và nếu lỗi được giới thiệu lại / giới thiệu thì kết quả là không thể chấp nhận được
Ryathal

4
@Ryathal: Cửa hàng nên thực thi một tiêu chuẩn mã. Mã thường được sở hữu bởi toàn bộ nhóm, vì vậy nếu bạn không muốn mọi người thay đổi nó, bạn nên làm cho nó ngay từ đầu.
Robert Harvey

1
@RobertHarvey đưa ra một tiêu chuẩn là một điều, một nhà phát triển giả mạo âm thầm thực thi quan điểm của mình về "quyền" là một vấn đề khác, và đây dường như là một trường hợp sau.
Ryathal

Câu trả lời:


52

Nghe có vẻ như những gì bạn đang làm về cơ bản tương đương với đánh giá mã ngoại trừ việc cung cấp phản hồi cho nhà phát triển, bạn đang thực hiện tất cả các thay đổi mà bạn sẽ đề xuất trong đánh giá mã. Bạn gần như chắc chắn sẽ tốt hơn khi thực hiện đánh giá mã thực tế nơi bạn (hoặc người khác) cung cấp phản hồi cho nhà phát triển ban đầu về các vấn đề về chất lượng mã và các lỗi rõ ràng và yêu cầu nhà phát triển ban đầu khắc phục chúng. Điều đó giữ cho chất lượng mã tăng lên nhưng nó cũng giúp nhà phát triển làm quen với mã gốc và những cạm bẫy của nó và giúp cải thiện các thay đổi mã trong tương lai. Thêm vào đó, nó không có nhược điểm là gây ra "cơn thịnh nộ kéo tóc" khi một lỗi được âm thầm giới thiệu hoặc khiến các nhà phát triển khác nghĩ rằng họ đang bị nói xấu sau lưng.


4
Lớn +1. Đánh giá mã giúp xây dựng đội ngũ trong khi "mục tiêu chăm sóc" mà anh mô tả có vẻ như có thể khiến mọi người hiểu lầm.
Doug T.

2
Điều này. Đánh giá mã thực sẽ là một con đường tốt hơn nhiều ở đây. Hai ưu điểm lớn, như bạn đã nói, nhà phát triển học kiến ​​trúc ứng dụng nhanh hơn vì bạn đang chỉ cho anh ta các vấn đề. Điều thứ hai là bạn sẽ không giới thiệu các lỗi vì bạn không hiểu đầy đủ mã mới được viết. Câu trả lời hoàn hảo cho câu hỏi này.
Mike Cellini

2
Câu trả lời rực rỡ và cảm ơn cho cái nhìn sâu sắc. Tôi nghĩ rằng một bản sao của câu hỏi này và một thái độ khiêm tốn cho người quản lý của tôi có thể thuyết phục anh ta rằng các đánh giá mã sẽ có lợi cho nhóm và sẽ giảm nhu cầu "chăm sóc mục tiêu".
Kevin McCormick

1
Đã đồng ý. Đừng muck với mã của người khác mà không cần hỏi. Bạn có thể nhận được một số lỗi sở thích theo cách đó. Tôi đã sửa các lỗi chăm sóc mục tiêu và chúng không dễ chịu. Nếu bạn lo ngại về độ mạnh của mã, hãy viết các bài kiểm tra đơn vị.
Paul Nathan

2
Ngay cả khi bạn không bao giờ chuyển sang đánh giá mã "thực", chỉ cần nói chuyện với người khác - hỏi tại sao họ làm một số việc nhất định và tại sao họ không làm điều đó [một cách khác], là một cách tuyệt vời để thực hiện nhiều điều tương tự bàn thắng. 1
TehShrike

14

Thành thật mà nói, IMHO, đây là một ý tưởng khủng khiếp.

Tôi hy vọng tinh thần sẽ rơi vào máng xối, nếu nó chưa có.

Để công bằng với bạn, bạn thừa nhận điều này.

Đánh giá mã ngang hàng là tốt, nó đặt onus cho các nhà phát triển ở một cấp độ, thay vì đó là một kịch bản "họ so với chúng tôi". (nơi họ là quản lý / khách hàng tiềm năng).

Có thể có một số nhà phát triển mà bạn có thể cần để mắt đến nhiều hơn những nhà phát triển khác, nhưng việc buộc tất cả các mã phải thông qua bạn trước tiên là vô lý.

Và mặc dù bạn nghĩ bạn giỏi đến mức nào, sẽ có lúc bạn sai, hoặc "chọn nit" và điều này sẽ khiến mọi thứ trở nên tồi tệ hơn.


Điều đó và người quản lý có thể có nhiều khả năng làm cho mã tồi tệ hơn.
Andy

5

Nếu tôi là người quản lý, để giải quyết vấn đề này:

  • Xem xét các tiêu chuẩn và thực hành mã với nhóm, đưa cho họ một bản sao của các tiêu chuẩn mã hóa
  • Mã đánh giá ngang hàng trên cơ sở thường xuyên để củng cố các tiêu chuẩn và thực hành cần tuân thủ
  • Thực thi nitpicking / định dạng bằng một công cụ tự động hóa để các nhà phát triển buộc phải tuân theo các tiêu chuẩn
  • Loại bỏ bất kỳ đồng đội xấu nào từ chối tuân theo các tiêu chuẩn
  • Ngừng làm thủ môn

Ý định của bạn là tốt, nhưng việc thực hiện là khủng khiếp và như những người khác đã chỉ ra, sẽ gây ra tinh thần kém và bắn tỉa giữa các thành viên trong nhóm.

Nếu dự án không bao giờ có bất kỳ tiêu chuẩn nào để bắt đầu, hãy cố gắng giảm bớt tiêu chuẩn mới trong các giai đoạn thay vì chỉ lật một công tắc.


3

Juju xấu.

Tôi không phải là người quản lý phát triển, nhưng nếu là tôi, tôi sẽ không muốn bất kỳ nhà phát triển nào của mình chạm vào mã không phải là một phần của lỗi hoặc tính năng được gán cho họ. Giai đoạn = Stage. Nếu bạn thấy có vấn đề với mã của người khác, thì bằng mọi cách, hãy đưa nó đến sự chú ý của (các) nhà phát triển, nhưng đừng chỉ tự mình sửa và sửa nó, đặc biệt là nếu bạn chưa phối hợp với nhà phát triển khác ( s) đầu tiên.

Các tác vụ dọn dẹp chỉ nên được thực hiện sau khi nhóm đánh giá mã chính thức và chỉ bởi (các) nhà phát triển mà những nhiệm vụ đó được giao.

Sáng kiến ​​là tốt nói chung, nhưng đôi khi nó có thể cắn vào mông bạn. Nếu bạn giới thiệu bất kỳ lỗi vào những gì đã đang làm việc, bạn có thể nhanh chóng được nhu cầu bạn muốn chọn một con đường sự nghiệp khác nhau.

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.