Liệu lập trình cặp có bao giờ biến thành cuộc thảo luận dài dòng không hiệu quả?


8

Tôi chỉ nghĩ về lập trình cặp và một ý nghĩ thoáng qua trong đầu tôi rằng chắc chắn đôi lúc hai lập trình viên sẽ không đồng ý và nó sẽ biến thành một cuộc thảo luận dài (có thể nóng) về việc triển khai mô hình hoặc thuật toán, v.v. Tôi hy vọng đây có thể là những cuộc chiến 'tôn giáo' đối với công cụ? Điều này có xảy ra không?

Chưa bao giờ 'cặp đôi được lập trình', đây có phải là điều gì đó xảy ra không? Có quá trình để dừng các cuộc thảo luận dài?


5
Xem câu trả lời của tôi trên StackOverflow
Sklivvz

1
Một số công việc hiệu quả nhất của tôi dựa trên các cuộc trò chuyện vừa thảo luận vừa sôi nổi. Nếu những cuộc trò chuyện này thực sự chỉ là "cuộc thảo luận" mà không có bất kỳ khoảnh khắc "Eureka" nào thì đó có thể là một vấn đề.
Ramhound

A. Vâng. Tại điểm chúng tôi gọi nó là xây dựng đội ngũ . ;-)
vẽ

Có bất cứ điều gì liên quan đến nhiều hơn một người mà đôi khi không biến thành một cuộc thảo luận dài dòng không hiệu quả?
mjfgates

@mjfgates Điểm công bằng! cười lớn.
Gary Willoughby

Câu trả lời:


4

Các cuộc thảo luận khó khăn đôi khi là một tác dụng phụ của lập trình cặp, nhưng điều này không phải lúc nào cũng là điều xấu. Khi thảo luận về cách tiếp cận nào có nghĩa là bạn đang nghĩ về mã trước khi bạn viết nó và bạn có nhiều hơn một đôi mắt về nó.

Lấy từ: http://wundasworld.blogspot.com/2007/11/joy-of- Pair-program.html :

Tình huống ghép đôi lý tưởng đòi hỏi cả hai người phải là chuyên gia phát triển. Họ cần phải cởi mở với ý tưởng của người khác. Và trong trường hợp này (chuyên gia phát triển với ý kiến ​​tốt, mạnh mẽ), nó có khả năng mang lại nỗi đau.

Tuy nhiên, "các cuộc chiến tôn giáo", nếu chúng sắp xảy ra, sẽ đưa ra một đánh giá mã hoặc ở nơi khác, nếu chúng không đưa ra lập trình cặp. Tránh thảo luận không hiệu quả là điều cần phải được xác định và tránh trong bất kỳ khía cạnh nào của lập trình. Cách chính để tránh nó kết hợp lập trình, là tập trung vào hoàn thành công việc, học cách chọn giải pháp đáp ứng nhiều mối quan tâm và học khi nào nên từ bỏ khi một lựa chọn không đáng để mất thời gian để tranh luận về nó.


3

Tôi đã không thực hiện nhiều chương trình cặp và thường dành nó cho các trường hợp tôi thực sự gặp khó khăn hoặc các vấn đề thiết kế lớn. Tuy nhiên, đây chính xác là những tình huống mà các cuộc thảo luận xuất hiện. Đây là kinh nghiệm của tôi:

  • Các cuộc thảo luận lớn xuất hiện cho dù bạn có lập trình cặp hay không. Sự khác biệt là lập trình cặp đưa chúng lên bề mặt sớm hơn và có thêm bộ não làm việc về vấn đề này ngay lập tức. Vì điều này, tôi có xu hướng tìm kiếm một đối tác lập trình khi tôi đưa ra các quyết định mã quan trọng và khó khăn.
  • Các cuộc thảo luận sôi nổi thường không hướng vào nhau nhiều như tại vấn đề. Khi vấn đề không còn nữa hoặc có thể xử lý được (ví dụ: 'chúng ta hãy có một cuộc họp để giải quyết vấn đề này'), những cảm giác tồi tệ sẽ biến mất và giải quyết.
  • Thảo luận sôi nổi là dấu hiệu cho thấy mọi người quan tâm đến vấn đề và muốn tìm giải pháp. Loại đam mê này thường dẫn đến sự sáng tạo và giải pháp tuyệt vời.
  • Lợi ích của lập trình cặp không chỉ lớn hơn nguy cơ thất vọng, mà còn bảo vệ chống lại rủi ro đó. Thành công và mã tốt có thể xóa đi rất nhiều thất vọng hoặc cảm giác khắc nghiệt.
  • Tôi thấy nhiều cuộc thảo luận sôi nổi hơn xuất hiện khi một người đang viết mã một mình và đi sai hướng. Vào thời điểm đó, lập trình viên đã đầu tư sai hướng và cần nhiều nhân vật hơn để thừa nhận họ cần làm lại một khối lượng lớn công việc hơn là làm lại một vài dòng mã hoặc phác thảo cho dự án.
  • "Chiến tranh thần thánh" thường được giải quyết theo sở thích của công ty hoặc quản lý, thảo luận hợp lý về ưu và nhược điểm hoặc thâm niên. Các cuộc chiến tranh thần thánh không thể được giải quyết bằng một trong những điều này thường chỉ ra rằng ai đó phù hợp với công ty và chủ đề chiến tranh thần thánh cuối cùng sẽ xuất hiện như một nguồn ma sát ngay cả khi không lập trình cặp. Kháng cáo lên cơ quan khác thường có thể giúp giải quyết các vấn đề này - ví dụ: hãy để sếp / khách hàng của chúng tôi quyết định vấn đề này.

1

Thông thường khi tôi ghép chương trình và một điểm thảo luận chính xuất hiện, chúng tôi cố gắng hết sức để đặt nó sang một bên cho một cuộc thảo luận riêng. Sẽ có những điều không được xem xét khi pha chế thiết kế ban đầu, hoặc ý kiến ​​khác nhau về cách thực hiện một cái gì đó. Tốt nhất là cứ duy trì phiên lập trình tiến lên, vì những kiểu thảo luận đó có thể được xử lý bằng các phương tiện hiệu quả hơn so với smack-dab ở giữa lập trình cặp.


0

Những cái ở tủ tiếp theo từ tôi dường như LUÔN LUÔN kết thúc theo cách đó.


0

Theo kinh nghiệm của tôi, lập trình cặp đã được thực hiện như một phần của cách tiếp cận "cực đoan" chung, trong đó trọng tâm ngắn hạn là lấy một cái gì đó và chạy, với sự hiểu rằng việc tái cấu trúc sẽ được thực hiện sau đó. Do đó, các cuộc thảo luận sôi nổi có thể có xu hướng kết thúc với việc ai đó nói rằng "Tốt thôi, chúng ta sẽ viết mã theo cách của bạn bây giờ và xem điều đó diễn ra như thế nào; chúng ta luôn có thể thay đổi nó sau."

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.