Trong Scrum / Agile, làm thế nào để cung cấp công cụ xác thực / quy tắc tăng dần?


8

Giả sử bạn có một công cụ xác thực cần bao gồm 100 quy tắc để có ích.

Chúng ta cũng giả sử nhóm chỉ có thể cung cấp khoảng 10 quy tắc cho mỗi lần lặp.

Làm thế nào bạn có thể thực hiện một "gia tăng sản phẩm có khả năng đáng tin cậy" vào cuối lần lặp đầu tiên, khi công cụ quy tắc vẫn còn thiếu 90 quy tắc cốt lõi?

Ví dụ, bạn có thêm một lỗi / cảnh báo tạm thời luôn kích hoạt dựa trên thực tế là không phải tất cả các quy tắc đã được thực hiện không?

Chỉnh sửa cho ngữ cảnh: Tôi đang phát triển phần mềm trung gian cho một quy trình kinh doanh phức tạp với nhiều trường hợp sử dụng cũ, nhằm tái tạo và thay thế một khối nguyên khối lớn. Thật khó khăn để phát trực tiếp mà không có bảo hiểm 100%, vì chúng tôi có khả năng hạn chế hoặc quyết định hạn chế những trường hợp sử dụng khó khăn nào sẽ xuất hiện trong sản xuất yêu cầu được bảo trì.


Bạn đang xây dựng "công cụ xác nhận" hay bạn chỉ đơn giản là viết 100 quy tắc cho một công cụ hiện có?
Bryan Oakley

@BryanOakley: Trong trường hợp của tôi, đó là thiết lập bảng tính nhỏ giọt cơ bản, trong đó mỗi câu chuyện nhanh sẽ thêm / sửa đổi định nghĩa quy tắc hoặc chỉ thêm quy tắc mới trong quy tắc hiện có.
James Daily

bạn nên thử Kanban chứ không phải scrum tại đây ...
user666

Câu trả lời:


7

Làm thế nào bạn có thể thực hiện một "gia tăng sản phẩm có khả năng đáng tin cậy" vào cuối lần lặp đầu tiên, khi công cụ quy tắc vẫn còn thiếu 90 quy tắc cốt lõi?

Bạn phát hành mười đầu tiên trong lần chạy nước rút đầu tiên. Chỉ vì nó "có khả năng giải phóng" không có nghĩa là nó phải được sử dụng bởi khách hàng. Điều đó chỉ có nghĩa là chức năng nào đã được thử nghiệm và hoạt động như được thiết kế và không gây ra bất kỳ hồi quy nào trong sản phẩm.

Hãy nghĩ về "có khả năng đáng tin cậy" là "chúng tôi không còn phải làm gì cho tính năng này. Mã đã được thực hiện và nó đã được kiểm tra và ghi lại đúng cách".

Ví dụ, bạn có thêm một lỗi / cảnh báo tạm thời luôn kích hoạt dựa trên thực tế là không phải tất cả các quy tắc đã được thực hiện không?

Đó chắc chắn là điều bạn có thể muốn xem xét, nếu bạn muốn khách hàng thực sự thử nghiệm tính năng này.


Tôi thấy, do đó, có một sự phân biệt có ý nghĩa giữa "có khả năng tin cậy" và "đủ cho nhu cầu của người dùng" (trong đó người dùng có thể là người dùng UI hoặc khách hàng dịch vụ web hy vọng gọi API hoặc bất cứ điều gì)
James Daily

Tôi nhận ra rằng câu hỏi của tôi không thực sự về agile (khái niệm "Xong" trả lời một cách khéo léo), mà là một câu hỏi thiết kế - làm thế nào để API phát hiện và trả lời một cách duyên dáng các kịch bản không được hỗ trợ khi cung cấp các bản phát hành gia tăng có ý nghĩa?
James Daily

6

Từ Hướng dẫn Scrum, định nghĩa của Phần tăng cho biết :

Khi kết thúc một Sprint, Phần tăng mới phải là Xong, Xỏ có nghĩa là nó phải ở trong tình trạng có thể sử dụng được và đáp ứng định nghĩa của Nhóm Scrum về Xong. Nó phải ở trong tình trạng có thể sử dụng được bất kể Chủ sở hữu sản phẩm có quyết định phát hành nó hay không.

Nếu bạn không hoàn thành đủ các quy tắc, có thể Chủ sở hữu sản phẩm sẽ chọn không phát hành nó. Tuy nhiên, phần Tăng thêm phải là "Xong". Bất kỳ quy tắc nào bạn đã triển khai phải được hoàn thành theo Định nghĩa Hoàn thành của nhóm của bạn.

Các quyết định mà bạn đưa ra phụ thuộc vào những gì sẽ được thực hiện với Phần tăng thêm. Trong câu hỏi của bạn, bạn đề cập đến việc ném ngoại lệ cho các quy tắc chưa được thực hiện. Điều này có thể hoạt động, nhưng nếu ai đó sẽ tích hợp với công cụ quy tắc của bạn, nó có thể tạo ra chi phí cho họ để xử lý trường hợp lỗi này, đặc biệt là nếu nó không tồn tại trong một sản phẩm hoàn chỉnh. Hoặc có thể đó là những gì sẽ làm cho cuộc sống của họ dễ dàng hơn. Xem xét mục đích của Tăng là gì, ai có thể sử dụng nó và đi từ đó.


"nhưng nếu có ai đó sẽ được tích hợp với công cụ quy tắc của bạn, nó có thể tạo ra chi phí cho họ để đối phó với trường hợp lỗi này" Hoàn toàn đúng, nhưng một điều ác cần thiết trong các tình huống doanh nghiệp hoặc chúng ta sẽ không bao giờ nhận bất cứ điều gì ra khỏi cửa :)
James Daily

@JamesD Daily Không, đó không phải là một điều ác cần thiết. Bạn có thể giảm thiểu nó bằng cách không ném một ngoại lệ mà hệ thống đã hoàn thành sẽ không ném hoặc bằng cách trả về các giá trị. Bất cứ điều gì có nghĩa là hệ thống kia không cần thêm mã xử lý lỗi chỉ để xử lý thực tế là hệ thống của bạn chưa hoàn thành để có thể chứng minh chức năng tối thiểu.
Thomas Owens

Có lẽ ném một ngoại lệ là quá khắc nghiệt. Các cảnh báo mềm hoặc thậm chí là chỉ báo xác thực Toàn phần so với Một phần là hợp lý hơn và dễ dàng hơn cho khách hàng phản ứng. Trong một nhận xét khác, tôi lưu ý rằng suy nghĩ của tôi đang hướng tới: làm thế nào một API duyên dáng phát hiện và phản ứng với các tình huống không được hỗ trợ khi cung cấp các bản phát hành gia tăng có ý nghĩa?
James Daily

3

Bạn đã xác định một tình huống không có lối thoát.

Tôi chắc chắn có những tình huống thực tế trong cuộc sống mà bạn có một khối chức năng phức tạp không thể tách rời. Nhưng trường hợp thông thường là bạn có thể chia một yêu cầu thành các yêu cầu phụ có lợi cho bản thân.

Ví dụ, yêu cầu của tôi là xác thực các địa chỉ thanh toán thẻ tín dụng của Vương quốc Anh. Điều này khá phức tạp, chúng tôi muốn đảm bảo tốt nhất có thể rằng địa chỉ là địa chỉ cư trú của người có tên trên thẻ để nếu họ mặc định thanh toán, chúng tôi có thể đuổi theo họ.

Có khả năng hàng trăm xác nhận và kiểm tra mà chúng tôi có thể làm để cải thiện độ tin cậy của séc, nhưng mỗi cá nhân đều có thể kiểm tra được và giảm rủi ro gian lận thực sự.

  • địa chỉ có số nhà và mã bưu điện
  • mã bưu điện là định dạng hợp lệ
  • tra cứu mã bưu điện với api bên ngoài thành công
  • mã bưu điện là mã bưu điện địa lý
  • địa chỉ được xác nhận với nhà cung cấp thẻ tín dụng, vv

Nếu thúc đẩy, khách hàng sẽ có thể kiếm tiền chỉ với một tập hợp các quy tắc được thực hiện. Rủi ro thêm có thể được chấp nhận hoặc xung quanh công việc thủ công có thể được thêm vào quy trình làm việc để giảm thiểu tình huống.

Phương pháp Scrum và nhanh nhẹn được thiết kế với ý tưởng này. Họ cố gắng tránh thất bại của toàn bộ dự án bằng cách đảm bảo rằng một số yêu cầu còn thiếu không làm cho toàn bộ giải pháp trở nên vô giá trị.

Nhưng họ không thể thay đổi thực tế, nếu bạn có một tên lửa không gian chắc chắn cần X, Y và Z để bay. Sau đó, bạn cần cả ba!

Bí quyết là nhận ra rằng nhìn chung trong các ứng dụng kinh doanh, đây không phải là trường hợp, mặc dù khách hàng có thể nói gì.


Có, tôi có thể tưởng tượng một cách tiếp cận lặp đi lặp lại với các cảnh báo thông tin tạm thời được trả về khi xác thực được biết là không đầy đủ cho một đầu vào nhất định. Ví dụ, bạn đã yêu cầu tôi xác thực địa chỉ cư trú địa phương và địa chỉ ngân hàng nước ngoài của bạn, nhưng công cụ phải bỏ qua địa chỉ nước ngoài vì nó chưa được hỗ trợ. PO có thể quyết định nó không đủ hoàn chỉnh để thực sự đi vào hoạt động, nhưng ít nhất API đang trung thực về những gì nó có hoặc chưa được xác thực.
James Daily
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.