Lập trình cặp và ISO 27001


16

Tôi đã làm việc trong một nhóm lập trình eXtreme và làm lập trình cặp trong hơn 7 năm trong môi trường windows. Khi chúng tôi lần đầu tiên bắt đầu thực hiện, ai đó sẽ đăng nhập bằng thông tin đăng nhập windows của họ và do đó, tất cả quyền truy cập vào tài nguyên miền và kiểm soát phiên bản cụ thể hơn sẽ chịu trách nhiệm với người dùng windows đó. Cuối cùng, chúng tôi đã phát triển để có các tài khoản ghép nối các cửa sổ cho các trạm ghép nối cụ thể (ví dụ: cặpA, cặpB, PairC, v.v. Tất cả các nhà phát triển đều biết mật khẩu của các tài khoản này. Trách nhiệm đối với các cam kết (đăng ký) đạt được bằng cách đưa các lập trình viên viết tắt vào bình luận trong quá trình cam kết.

Cho đến bây giờ điều này đã làm việc tốt cho chúng tôi, nhưng công ty của tôi hiện đang trải qua một cuộc kiểm toán ISO 27001 và điều này đã bị kiểm toán viên đánh dấu là một rủi ro. Tôi có một số giải pháp khả thi như tạo tài khoản ghép nối cho mọi kết hợp cặp, nhưng tôi thực sự muốn biết liệu có ai khác gặp phải vấn đề này không và họ đã giải quyết nó như thế nào?

Giải pháp nào được các kiểm toán viên chấp nhận?


11
Tôi nghĩ rằng hầu hết những người sử dụng thực hành lập trình cặp đều nghĩ rằng tất cả những gì ISO làm là định dạng ngày và mã hóa ký tự.
Lars Viklund

6
Tại sao bạn cần phải có tài khoản ghép nối? Sẽ không hoạt động để giữ các tài khoản cá nhân mà bạn có thể đăng nhập trên bất kỳ máy nào?
Hội trường Garrett

Bạn không thể sử dụng tài khoản cá nhân vì điều gì xảy ra nếu ai đó đi làm sớm / đi vệ sinh, v.v. và máy được đăng nhập như người dùng khác?
John Sizable

@JohnSizable Bạn có nghĩa là trong trường hợp muốn tiếp tục với công việc đang tiến hành trên tài khoản đó? Nếu không, bạn sẽ có thể mở một phiên khác trên máy tính với tư cách là người dùng của riêng bạn.
Sinjo

2
@JohnSizable, sau đó trình điều khiển đăng xuất và cho phép đăng nhập ngang hàng. Nếu họ đi đến nhà vệ sinh, hãy khóa máy nếu bạn không tin tưởng đồng nghiệp của mình. Tuy nhiên, không có niềm tin là một vấn đề lớn hơn cần được khắc phục.
CaffGeek

Câu trả lời:


13

Tôi cho rằng các kiểm toán viên muốn các nhà phát triển đăng nhập như chính họ chứ không phải là một số "cặp" có mật khẩu dùng chung. Rủi ro nên rõ ràng - một nhà phát triển thêm một số mã độc hại là "PairA" và đặt tên viết tắt của người khác vào bình luận (hoặc hoàn toàn không bình luận nó). Làm thế nào để bạn theo dõi lại nhà phát triển độc hại?

Tôi khuyên mọi người nên lái xe trước (trong một phiên) đăng nhập bằng ID của chính mình và cặp này tiếp tục đưa cả hai chữ cái đầu của họ vào bình luận - theo cách đó, mã vẫn có thể truy nguyên được cho nhà phát triển thực tế.


+1, đây là những gì được thực hiện tại công ty của tôi. Chúng tôi có sự lựa chọn của đánh giá mã ngang hàng hoặc lập trình cặp. Trường hợp lập trình cặp chỉ là một trường hợp đặc biệt của đánh giá ngang hàng, trong đó ngang hàng đã được xem xét liên tục trong khi mã được viết.
Daniel Pryden

@Daniel cảm ơn vì đã chia sẻ kinh nghiệm của bạn. Khi chúng tôi lần đầu tiên bắt đầu ghép nối, đó là trình điều khiển sẽ đăng nhập. Tuy nhiên, các phiên ghép nối của chúng tôi bây giờ trở nên bừa bãi hơn và thường thì một cặp sẽ trao đổi trước khi một nhiệm vụ hoàn thành. Mặc dù điều này không lý tưởng, đôi khi cần phải sắp xếp các giao dịch hoán đổi của chúng tôi vì mọi người đều bắt buộc phải ghép mã sản xuất. Điều này có nghĩa là 'tài xế' ban đầu phải bỏ đi và do đó đăng xuất. Chúng ta có thể kiểm tra mã đó mà không có chúng, nhưng sự gián đoạn đối với cặp, những người có khả năng đang gỡ lỗi ứng dụng, không được xem nhẹ.
Martin Hughes

7

Tôi sẽ giữ các tài khoản như hiện tại, thông thường chỉ có một người đang lái xe và ngay cả khi người kia sử dụng máy (không chính thức), người đăng nhập vẫn nên biết những gì đang xảy ra trên máy của họ.

Tuy nhiên, Checkins vẫn cần bình luận để cho biết cặp đôi này là ai.


Bạn có nghĩa là giữ các tài khoản cặp ("giữ nguyên tài khoản") hoặc sử dụng các tài khoản cá nhân ("người đã đăng nhập")?
Caleb

@Caleb, cá nhân là người đăng nhập đang lái xe
CaffGeek

6

Thay vì tạo các tài khoản riêng biệt để công việc không bị khóa đối với người dùng có thể vắng mặt, hãy sử dụng hệ thống kiểm soát phiên bản của bạn. Khi một cặp bắt đầu làm việc, tạo một nhánh nhiệm vụ. Cam kết mã cho nhánh nhiệm vụ bất cứ khi nào các bài kiểm tra vượt qua. Khi tác vụ hoàn thành, hợp nhất lại và đóng nhánh tác vụ.


5

Cho đến bây giờ điều này đã làm việc tốt cho chúng tôi, nhưng công ty của tôi hiện đang trải qua một cuộc kiểm toán ISO 27001

ISO 27001 hay không, hệ thống hiện tại của bạn chỉ hoạt động vì bạn là một công ty nhỏ nơi có mức độ giao tiếp và tin cậy lẫn nhau cao. Loại điều đó không mở rộng rất tốt, vì vậy dù sao bạn cũng có thể phải xem xét các lựa chọn khác trong tương lai.

Tạo một tài khoản riêng cho mỗi cặp có thể thậm chí còn ít thực tế hơn: bạn cần 90 tài khoản cho một nhóm 10 nhà phát triển và mỗi trong số 10 nhà phát triển đó sẽ phải biết 9 kết hợp đăng nhập / mật khẩu khác nhau.

Giải pháp thực tế duy nhất là sử dụng các tài khoản cá nhân, như những người khác đã đề xuất và theo dõi danh tính của người thứ hai theo cách khác (nhận xét trong cam kết kiểm soát phiên bản của bạn, trường trong hệ thống theo dõi vấn đề, v.v.).


2

Vì lợi ích của Pete, hãy để thành viên lái xe của cặp đôi nhận được tín dụng / khả năng đáp ứng cho việc đẩy / cam kết. Lần sau các thành viên khác sẽ lái xe. "Người lái xe" sẽ không làm bất cứ điều gì anh ta không đồng ý với người phi công.

Lập trình là một nỗ lực tập thể. Không có chứng thư lập trình là 100% cá nhân. Không cần phải khó tính muốn phản ánh rằng một cú đẩy / cam kết nhất định đã được thực hiện bởi Tom và Harry chứ không chỉ Tom. Những lợi ích của lập trình cặp là đáng để xem xét sắc thái đó.

Kiểm toán viên là đúng, nên tránh các tài khoản "pool".

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.