Một định nghĩa tốt của người Viking đã thực hiện cho một đội trưởng thành như thế nào?


9

Khi xem xét các ví dụ về định nghĩa thực hiện trong nhiều nguồn khác nhau, chúng thường bao gồm các điểm như

  • mã hoàn thành
  • chạy thử nghiệm đơn vị
  • mã được đánh giá ngang hàng hoặc được ghép nối
  • mã đã đăng ký
  • tài liệu cập nhật
  • Giáo dục

Trong nhóm của chúng tôi, chúng tôi có một danh sách tương tự, nhưng không ai từng nhìn vào nó bởi vì những điểm đó dường như rõ ràng đến mức không ai có thể bỏ qua bất kỳ bước nào trong số này. Vì vậy, chúng tôi đã tự hỏi liệu đó có phải chủ yếu là một công cụ cho các đội chuyển sang quy trình nhanh và liệu chúng ta không nên loại bỏ nó.

Mặt khác, rất nhiều tài liệu tuyên bố rằng tất cả các đội có hiệu suất cao đều có định nghĩa mạnh mẽ về việc thực hiện. Đây là loại gợi ý mà chúng ta có thể bỏ lỡ một cơ hội để cải thiện ở đây.

Vì vậy, các ví dụ về định nghĩa mạnh mẽ được thực hiện của một nhóm trưởng thành là gì? Những loại điểm nào họ bao gồm điển hình?


10
Khi khách hàng gọi nó xong.
Matt S

7
Không ai sẽ bỏ qua việc cập nhật các tài liệu?
JeffO

1
Có phải toàn bộ tổ chức của bạn có vấn đề với một số người nghĩ rằng mọi thứ đã được thực hiện khi những người khác nghĩ rằng vẫn còn việc phải làm? Nếu không, thì bạn không thực sự cần phải dành thời gian ở đây. Nếu họ làm , tốt, bạn có một điểm khởi đầu cho danh sách của bạn
AakashM

@MattS: Nếu bạn phải đợi khách hàng gọi nó xong, bạn có rất nhiều câu chuyện đang chờ hoàn thành. Phải có một số loại trạng thái "hoàn thành phát triển" hoặc "sẵn sàng cho UAT" cho một câu chuyện mà trong thông tục là "được thực hiện theo như nhóm biết".
KeithS

Chọn một hệ thống và gắn bó với nó. Kaizan thỉnh thoảng. Đây là một trường hợp mà tính nhất quán cải thiện năng suất. Phần khó là quá trình (nhà độc tài cho cuộc sống) ngay từ đầu cho đến khi mọi người nhìn thấy lợi ích (vâng, vâng, bán nó).
Paul

Câu trả lời:


9

Các hướng dẫn là có cho tất cả mọi người. Trong một nhóm trưởng thành, như bạn đã đề cập, mọi người đều làm việc đó, vì vậy điều đó không có nghĩa là không có chỗ cho điều đó. Giả sử, một thành viên mới tham gia, người chưa được tiếp xúc với phương pháp này trước đây. Có cấu trúc tại chỗ, sẽ rất quan trọng đối với anh ta. Anh ta sẽ không phải làm phiền các thành viên khác, hoặc sẽ không "quên" việc giao hàng.

Theo tôi, Liệt kê tất cả mọi thứ, bao gồm cả rõ ràng. Có lẽ, có một "danh sách gian lận ngắn" cho những người không rõ ràng nếu nó giúp những người muốn có một danh sách ngắn hơn, nhưng hãy xem xét trường hợp các thành viên mới nhảy vào.

Đó là một quá trình lặp đi lặp lại, mỗi khi bạn thấy điều gì đó bạn có thể cải thiện, hãy thêm nó vào định nghĩa hoàn thành. Làm thêm giờ, bạn sẽ phát triển một danh sách có liên quan đến công ty của bạn. Anann đã đề cập đến một số trong đó là giá trị.


Điểm tuyệt vời bạn thực hiện về các thành viên nhóm mới, Nasir.
Carson63000

Cảm ơn. Chúng tôi phải đối mặt với tình huống này khá thường xuyên và những người già như tôi cũng quên mất đôi khi.
Nasir

7

Chỉ vì các điểm rõ ràng không có nghĩa là mọi người sẽ luôn mang chúng ra ngoài. Hãy lấy hai ví dụ khác - phi công và bác sĩ phẫu thuật. Một buồng lái của một máy bay thương mại hoặc một phòng điều hành có nhiều người, với rất nhiều giáo dục và kinh nghiệm giữa họ. Tuy nhiên, mọi thứ vẫn đi sai - các bước được thực hiện không theo thứ tự, một cái gì đó bị lãng quên, một cái gì đó được thực hiện không chính xác. Tôi đã thấy một số trang web nguồn rằng một số lượng lớn (tới 70%) sự cố máy bay được cho là do lỗi phi công có thể đã được ngăn chặn bằng một danh sách kiểm tra . Trong thế giới y tế, có tới 29% các vụ kiện sơ suất ở Hà Lan có thể bị ngăn chặn bằng cách sử dụng danh sách kiểm tra, theo các nhà nghiên cứu. Mặc dù những người này đã được đào tạo, và nhìn nhận lại có lẽ sẽ dễ dàng xác định những gì họ đã làm sai, điều gì đó đã xảy ra khiến họ mất hiệu lực. Tôi chưa đọc nó, nhưng Bản kê khai Danh sách kiểm tra có liên quan. Nó được viết từ một nghề y, nhưng những lợi thế của việc lập danh sách kiểm tra hoặc lưu đồ hiển thị như một lời nhắc nhở về những việc cần làm có thể áp dụng cho bất kỳ ngành nghề nào.

Vì vậy, bước một sẽ là tạo một danh sách những thứ là một phần định nghĩa của bạn đã hoàn thành và làm cho nó hiển thị. Không quan trọng nhiệm vụ đó rõ ràng đến mức nào, nếu nó cần được hoàn thành để câu chuyện được xem là hoàn thành, nó cần phải nằm trong danh sách đó. Danh sách cần phải được hiển thị ở đâu đó cho nhóm. Lưu ý rằng nó không phải là bất cứ điều gì lạ mắt hoặc trang trọng - có lẽ chỉ là một loạt các câu hỏi mà mọi người cần phải tự hỏi mình trước khi một câu chuyện có thể được thực hiện.

Bước hai là quyết định những gì diễn ra trong danh sách kiểm tra cho định nghĩa hoàn thành của bạn. Tất cả mọi thứ bạn cần làm để hoàn thành một nhiệm vụ phải cụ thể, rõ ràng, chấp nhận được và thực tế. Nó cũng cần phải trong một bối cảnh thời gian để xem xét thực hiện. Ví dụ: bạn không cần bao gồm "sửa đổi mã" hoặc "sửa đổi thiết kế" trong định nghĩa hoàn thành - nếu bạn không cần thay đổi sản phẩm công việc, thì không cần câu chuyện.

Tôi nghi ngờ rằng một danh sách kiểm tra tốt để làm cơ sở cho định nghĩa hoàn thành sẽ là:

  • Tất cả các bài kiểm tra đơn vị, tích hợp, hệ thống và chấp nhận đã được cập nhật chưa?
  • Sản phẩm làm việc đã được chuyển đổi thành hình thức đáng tin cậy của nó? Ví dụ: mã được xây dựng, tài liệu ở định dạng tệp có thể xuất, v.v.
  • Tất cả các sản phẩm công việc liên quan đã được đánh giá ngang hàng? Ví dụ về các sản phẩm công việc bao gồm mã nguồn (sản xuất và thử nghiệm), ý kiến, tài liệu thiết kế, quy trình thử nghiệm và hướng dẫn sử dụng.
  • Tất cả các bài kiểm tra liên quan (ở tất cả các cấp độ kiểm tra) đã được thực hiện và vượt qua chưa?
  • Mã đã được hợp nhất vào kho tích hợp chưa?

Tất nhiên, bạn sẽ cần đưa ra một định nghĩa tốt về việc thực hiện bao gồm mọi hoạt động khác mà nhóm của bạn và khách hàng của bạn cảm thấy có giá trị. Nếu nó nằm trong danh sách kiểm tra, nó sẽ là thứ cần được thực hiện để tăng thêm giá trị cho ai đó (nhóm, khách hàng, người dùng). Bằng cách liệt kê rõ ràng những gì bạn làm, bạn cũng có thể xác định và loại bỏ các hoạt động bên ngoài để cải thiện quy trình.


Tất cả điều đó nghe có vẻ rất tốt trong lý thuyết, nhưng làm thế nào để bạn đưa ra một điều có liên quan? Ví dụ, tôi không cần một danh sách kiểm tra để đánh răng mỗi sáng, nhưng tôi vẫn làm điều đó. Các điểm bạn liệt kê (bài kiểm tra vượt qua, đánh giá ngang hàng ...) có cảm giác như đánh răng, vậy giá trị gia tăng ở đâu?
Tobias

@Tobias Giá trị đến trong độ lặp lại. Bây giờ bạn có thể hình dung quá trình của bạn và chia sẻ nó với những người khác. Bạn cũng có thể hình dung nó để xác định các khu vực cần cải thiện (những thứ mà mọi người không có trong danh sách, những thứ không cần có trong danh sách, những thứ mà mọi người không làm trong danh sách).
Thomas Owens

1

Điều này thực sự có vẻ như bạn là một anh chàng may mắn:

Trong nhóm của chúng tôi, chúng tôi có một danh sách tương tự, nhưng không ai từng nhìn vào nó bởi vì những điểm đó dường như quá rõ ràng

Nhóm của bạn đã "trưởng thành" ;-). Nhưng luôn có chỗ để cải thiện!

Cho câu hỏi của bạn:

Vì vậy, các ví dụ về định nghĩa mạnh mẽ được thực hiện của một nhóm trưởng thành là gì? Những loại điểm nào họ bao gồm điển hình?

Trên đầu danh sách của bạn, bạn có thể thêm:

Các số liệu chất lượng mã khác nhau: - Tính không ổn định, Trừu tượng - LỘC so với DLOC (được ghi lại) - v.v ...

Nguyên tắc chung có thể là số liệu không nên trở nên tồi tệ hơn với cam kết của bạn. Trên hết, bạn có thể hình thành một "xong: withExcellence" nếu ai đó thực sự làm cho các số liệu trở nên tốt hơn. Mặc dù điều này (số liệu trở nên tốt hơn) thường không phải là một phần của các giai đoạn phát triển (tính năng mới) mà là tái cấu trúc các giai đoạn.

Trong một trong những công ty trước đây của tôi, chúng tôi đã có một định nghĩa về "thực hiện" nói rằng số liệu của bạn cần phải ở dưới ngưỡng nhất định, nếu bạn vượt lên trên, bạn vẫn chưa hoàn thành. (Độ phức tạp theo chu kỳ không bao giờ nên vượt quá 15, trừ khi bạn có một lý do rất rất rất tốt, như các calcs phức tạp.)

Điều tương tự cũng xảy ra đối với loại vi phạm của Checkstyle, đặc biệt nếu bạn có bộ quy tắc tùy chỉnh để kiểm tra kiểu mã nhóm của bạn. Nếu bạn vi phạm tiêu chuẩn mã hóa, bạn chưa hoàn thành.

Sau đó, bạn không chỉ thực thi UnitTest, bạn có thể đo phạm vi bảo hiểm mã. Nếu không có ít nhất 50% được bảo hiểm, bạn đã không làm xong. Mặc dù đây là một loại khiếm khuyết dễ thực hiện, vì bạn nên có các bài kiểm tra cho các phương pháp cốt lõi / chính / quan trọng và không nhất thiết phải là 100% cơ sở mã của bạn.

Ồ vâng ... và nếu bạn có (bạn nên) một máy chủ CI có tích hợp chi nhánh tự động ... bạn chỉ được thực hiện nếu cam kết của bạn trong Chi nhánh DEV được hợp nhất với Chi nhánh LIVE hiện tại và không gây ra lỗi. (Bài kiểm tra đơn vị, v.v.)

hmmm ... đó là tất cả những gì tôi có thể nhớ ngay từ các công ty / dự án trước đây, vốn chưa được đề cập trong danh sách của bạn.

Tôi hy vọng điều đó đã cho bạn một số ý tưởng ;-)

Chúc mừng

anann


Số liệu chất lượng mã là một ý tưởng thú vị mà chúng tôi chưa nghĩ đến. Phần còn lại (kiểu mã hóa, CI xanh sau khi hợp nhất) đã là một phần của "các phần rõ ràng".
Tobias

1

Trong môi trường TDD / BDD, định nghĩa "thực hiện" (về mặt kỹ thuật là "Hoàn thành mã", vì định nghĩa "thực sự" của Matt S là chính xác) khá đơn giản:

  • Tất cả các bài kiểm tra tự động đều vượt qua (những bài kiểm tra tự động đó phải bao gồm những bài kiểm tra mới được viết cho câu chuyện được đề cập để xác minh chức năng hoặc hành vi cần thiết tồn tại và hoạt động)
  • Đánh giá mã đã được thông qua (ít nhất một nhà phát triển cấp cao trong nhóm là nội dung để cho công việc của bạn trở thành một phần của cơ sở mã và rằng bạn đã không "gian lận" hoặc "hack" theo cách của mình trong câu chuyện)
  • Cam kết thành công (bao gồm bot xây dựng vượt qua tất cả các kiểm tra tự động, số liệu bảo hiểm mã, kiểm tra cảnh sát kiểu, v.v.)

Tại thời điểm này, bạn có thể di chuyển trên. Ba điểm này rất quan trọng, nhưng chúng là tất cả những gì mà lập trình viên nhóm trung bình phải quan tâm. Viết hoặc bất thành văn, chúng là bất khả xâm phạm trong môi trường TDD. Tài liệu, khi các lập trình viên là những người làm tài liệu, là một điểm bổ sung. Trong nhóm Agile cuối cùng của tôi, tài liệu được xử lý bởi BAs / QAs; họ biết khách hàng muốn gì, đã chạy UAT và do đó tốt nhất có thể ghi lại tính năng mới theo cách có ý nghĩa với khách hàng, vì vậy tài liệu không phải là một phần của định nghĩa "được thực hiện" của người viết mã, mặc dù đó là một phần định nghĩa của đội.

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.