Có phải By-Design Vugs lỗi là một dấu hiệu xấu?


29

Đây có phải là một dấu hiệu xấu nếu người dùng gửi báo cáo lỗi cho những thứ theo thiết kế?

Có phải nó thường có nghĩa là ứng dụng này gây nhầm lẫn hoặc không rõ ràng, hay tôi chỉ nên khắc phục lỗi này cho người dùng một lần trừ khi được quy định cụ thể?

(Tôi thực sự không có bất kỳ báo cáo nào như vậy. Đây hoàn toàn là một câu hỏi giả thuyết về việc liệu các lỗi "thiết kế phụ" có phải là một điều xấu hay không.)


19
Có lẽ một số lập trình viên tại Lotus Notes sẽ quan tâm bình luận, vì có câu trả lời tiêu chuẩn là "đó không phải là lỗi mà đây là một tính năng bạn không hiểu".
James Anderson

5
Nó gợi ý cho tôi rằng các yêu cầu của người dùng được đưa ra cho các nhà phát triển không phù hợp với những gì người dùng nghĩ họ yêu cầu.
cám dỗ

7
@teemar "Đó là những gì tôi yêu cầu, nhưng đó không phải là những gì tôi muốn."
StuperUser

5
Gần đây tôi đã được chỉ định một mục công việc "lỗi" cho hành vi chính xác, cụ thể, những gì được phát âm rõ ràng trong đặc tả (và đã được thảo luận trong giai đoạn đặc tả). Mặc dù hành vi rất có thể gây bất ngờ từ quan điểm của người dùng (một cài đặt cụ thể, được chú ý ở nơi khác, đã bị bỏ qua), nếu thông số kỹ thuật hoàn toàn có nghĩa là "hãy bỏ qua điều đó ngay bây giờ để tiết kiệm thời gian", sau đó với tôi đó không phải là một lỗi, mà là một yêu cầu thay đổi. Chắc chắn, một trường hợp tốt có thể được thực hiện vì muốn thay đổi, nhưng đừng gọi đó là lỗi .
CVn

7
@ Dunk: Tôi đã triển khai một hệ thống giả định 24 giờ mỗi ngày, vì chúng tôi không thuyết phục được khách hàng về sự tồn tại của Giờ tiết kiệm ánh sáng ban ngày. Họ sẽ không tin rằng có những ngày với 25 giờ. Đó có phải là một lỗi trong chương trình?
MSalters

Câu trả lời:


54

Đó có phải là một dấu hiệu xấu? Tôi nghĩ đó là một cảnh báo đáng để xem xét, nhưng tôi cũng nghĩ rằng nó chắc chắn sẽ xảy ra.

Khi mọi người gửi bất kỳ loại phản hồi nào cho tôi, tôi cố gắng lọc nó thành ba nhóm:

  • Lỗi
  • Yêu cầu tính năng
  • Hiểu lầm

Lỗi

Lỗi là khi một cái gì đó rõ ràng không hoạt động theo cách bạn mong đợi, cũng không phải là cách người dùng mong đợi. Giống như, nó hỏi tôi tên của tôi, tôi nhập "Scott", nhấn enter và nó nói, "Chào Joe!"

Yêu cầu tính năng

Điều này giống như "Tôi biết chúng tôi chưa bao giờ nói về điều này, nhưng chương trình có thể suy ra cử chỉ chuột của tôi rằng tôi thuận tay trái và di chuyển nút OK sang bên trái màn hình không?" Đây là khi hành vi hiện tại phù hợp với cả mong đợi của bạn và người dùng , nhưng họ muốn thay đổi kỳ vọng.

Hiểu lầm

Đây là khi bạn mong đợi một kết quả từ một kịch bản, nhưng người dùng mong đợi một kết quả khác. Đôi khi điều này trở thành một yêu cầu tính năng, nếu họ không truyền đạt được kỳ vọng của họ, nhưng họ nghĩ rằng họ đã làm. Đôi khi điều này trở thành một lỗi nếu kỳ vọng của bạn được chứng minh là sai.

Tuy nhiên, nhiều lần bạn có kiến ​​thức mà người dùng không có. Điều gì sẽ xảy ra nếu họ nói: "Trên màn hình này, tôi có thể thêm một bản ghi cho chính mình hai lần với cùng họ và tên! Đó rõ ràng là một lỗi!" Câu trả lời của bạn có thể là: "Có rất nhiều người trên thế giới có cùng họ và tên, vì vậy chúng tôi không yêu cầu sự kết hợp đó là duy nhất. Chúng tôi có một nhiệm vụ dọn dẹp chạy vào ban đêm và gửi email Báo cáo trùng lặp có thể dịch vụ khách hàng khi họ nghĩ rằng nó phát hiện một bản sao có tên và địa chỉ tương tự, và yêu cầu họ kiểm tra thủ công. "

Vì vậy, bạn nên đọc mọi báo cáo lỗi, nhưng hầu hết các hệ thống phức tạp sẽ có báo cáo lỗi thực sự chỉ là các yêu cầu tính năng hoặc có thể là thông tin sai về các yêu cầu. Không hiểu được sự phức tạp tiềm ẩn của thế giới thực có lẽ là nguồn gốc lớn nhất của những vấn đề này.


3
Giao tiếp sai cũng bao gồm ghi nhớ sai (hoặc quên đơn giản) những kỳ vọng được truyền đạt và đồng ý.
Peter Taylor

1
Sự khác biệt lớn, nhưng tôi vẫn nghĩ rằng ứng dụng nên cố gắng giải thích việc truyền thông sai nếu có thể. Với nhiều người có cùng tên, ứng dụng có thể nói: "Chúng tôi đã có 3 John Smith, bạn có chắc chắn đó không phải là một trong số đó" với 'Không tôi chắc chắn đây là tùy chọn mới của John Smith.
Alex Andronov

@Alex Andronov - một thông tin sai lệch không có nghĩa là không có hành động nào: thay đổi tài liệu, chú giải công cụ, v.v., cập nhật tài liệu đào tạo, hoặc có thể chỉ là một lời giải thích ngắn gọn và tiếp tục.
Scott Whitlock

7

Điều này đã không được đề cập đến trong các câu trả lời trước đó cho đến nay vì vậy tôi sẽ nói thêm rằng đó cũng có thể là dấu hiệu của một cơ sở người dùng không biết gì. Tôi không sử dụng từ "ngu dốt" theo cách xúc phạm hoặc hạ thấp, chỉ đơn thuần là một cách để thể hiện rằng họ không có kiến ​​thức hoặc giáo dục đúng đắn trong miền của họ hoặc về sự phức tạp của chính phần mềm.

Hầu hết người dùng không nhận thức được phần mềm phức tạp như thế nào để đáp ứng các yêu cầu nhất định. Một cái gì đó ảnh hưởng đến 80% nỗ lực chỉ đi vào 20% chức năng (rìa và trường hợp ngoại lệ).

Đôi khi, họ không hiểu tại sao phần mềm vốn cần phải hành xử theo một cách nhất định, nhiều lần để ngăn chặn vô số lỗi hoặc hỏng dữ liệu, v.v ...

Điều này không đáng lo ngại vì điều này trở nên tốt hơn với tài liệu và truyền thông rõ ràng và súc tích.


2
+1 nhưng vui lòng tìm kiếm sự khác biệt giữa phức tạp và phức tạp ... Phần mềm hoàn toàn không cần phức tạp, nhưng nó thường rất phức tạp.
Marjan Venema

Thật là quá đúng. Trường hợp phổ biến nhất mà tôi gặp phải là người dùng không nhận ra sự khác biệt giữa các mối quan hệ nhiều-một so với nhiều-nhiều. Một yêu cầu phổ biến tôi nhận được là "bạn có thể làm cho báo cáo hiển thị số thứ tự trong tiêu đề không?" và tôi phải giải thích rằng trong khoảng 95% trường hợp chỉ có một số thứ tự trên công cụ họ làm việc, có nhiều trường hợp truy vấn có thể bao gồm dữ liệu trên nhiều đơn hàng. Sau đó tôi phải hỏi, bạn có muốn tôi liệt kê tất cả các số thứ tự trong tiêu đề được phân tách bằng dấu phẩy hay bạn muốn số thứ tự trên mỗi dòng chi tiết trong báo cáo?
Scott Whitlock

@ScottWhitlock Vâng, đó là điều tương tự. Sau đó, một nhà phát triển hoặc nhà phân tích kinh doanh giỏi không nên làm những gì khách hàng yêu cầu mà cố gắng khám phá vấn đề cốt lõi mà họ đang gặp phải tại sao họ lại đưa ra yêu cầu như vậy ngay từ đầu. Khi bạn xác định được vấn đề của họ, bạn có thể xác định một giải pháp phù hợp và viết các yêu cầu phù hợp hoặc câu chuyện của người dùng.
maple_shaft

5

Nếu bạn có một người dùng là một chuyên gia trong lĩnh vực của họ, bạn có thể gặp vấn đề lớn. Hãy tưởng tượng một kế toán tìm thấy phần mềm của bạn, theo thiết kế, không tuân theo các quy trình kế toán chung hoặc một kỹ sư phát hiện ra bạn có một công thức không chính xác. Điều này không nên quá khó để nghiên cứu để xem liệu chúng có đúng không. Thiết kế lại và sửa chữa nó nếu cần - nhanh chóng.

Một ý kiến ​​về một tính năng UI cụ thể hoặc một lĩnh vực mà họ nghĩ nên có ký hiệu tiền tệ hoặc một số hình thức khác, nên được xem xét, ít nhất là cho đến khi bạn nhận được nhiều phản hồi hơn. Nghiên cứu điều này có thể khó khăn hơn một chút.


1
Không có câu trả lời duy nhất, sau đó, tôi cho rằng. Nó nên được đánh giá trên cơ sở từng trường hợp. Tôi đã tìm ra nhiều.
Tối đa

5

Lỗi theo thiết kế theo kinh nghiệm của tôi có nghĩa là các trường hợp sử dụng của bạn không phù hợp với người dùng thực của bạn. Hãy thử đọc về việc sử dụng người dùng thực cho các trường hợp sử dụng của bạn (chỉ cần đặt tên cho họ và mô tả hình thu nhỏ sẽ làm nên điều kỳ diệu cho chất lượng của các trường hợp sử dụng.)

Khi các nhà cung cấp hệ điều hành nổi bật nói rằng "hành vi này là do thiết kế", họ thường dễ dàng thực hiện hoặc có lợi thế thương mại. Nếu đó không phải là bạn, hãy thử tìm hiểu người dùng và mối quan hệ thực sự với phần mềm của bạn. Họ có sử dụng nó cả ngày không? Cho vui ? Mỗi tuần một lần vì nó thay thế các hình thức TPS?


5

Giao diện người dùng phải tuân theo Nguyên tắc tối thiểu ngạc nhiên - báo cáo lỗi lặp đi lặp lại về một tính năng hoạt động như thiết kế là một dấu hiệu cho thấy nguyên tắc này chưa được tuân thủ chính xác.


3
Hoặc, có một nhóm người dùng được chia. Ví dụ: giả sử ứng dụng web của bạn mô phỏng máy tính để bàn. Bạn có mong đợi rằng việc đóng một cửa sổ sẽ đóng chương trình không? Có cho người dùng Windows, Không cho người dùng Mac.
keppla

1
@Keppla - bạn làm cho một điểm tốt. Bạn không thể làm hài lòng tất cả mọi người, vì vậy trong trường hợp "lỗi" như những lỗi được đề cập ở đây, một số điều tra là cần thiết để đảm bảo bạn sẽ không nhận được nhiều báo cáo lỗi sau khi "sửa" hơn trước.
Joris Timmermans

1
có thể, nhưng nó mạnh mẽ hơn nhiều khi trích dẫn dữ liệu của "hàng trăm người đã nộp lỗi về điều này!" hơn là có một vài người dùng dại dột nói với bạn rằng bạn đã vi phạm cách giải thích cá nhân của họ về Nguyên lý huyền diệu của sự ngạc nhiên tối thiểu và họ rất ngạc nhiên. Tôi hơi mệt mỏi vì điều này, vì "sự kinh ngạc" của một người là "sự thẳng thắn" của một người đàn ông khác.
Jeff Atwood

@Jeff Atwood - như câu nói "một con én không tạo ra mùa hè", "một báo cáo lỗi không ngụ ý lỗi thiết kế". Một báo cáo lỗi về một tính năng không phải là lý do để thiết kế lại và thậm chí một số báo cáo về một tính năng phổ biến không nhất thiết có nghĩa là phần lớn người dùng của bạn sẽ không vui hơn nếu không có "sửa chữa". Đặc biệt là nếu bản phát hành gốc của bạn đã phổ biến và mọi người đã quen sử dụng nó "theo cách đó".
Joris Timmermans

2

Có hai loại lỗi: chức năng không phù hợp với ý định của lập trình viên hoặc chức năng không phù hợp với yêu cầu. Các lập trình viên có xu hướng tập trung vào cái trước để gây bất lợi cho cái sau. Nói một cách đơn giản, nếu người dùng của bạn báo cáo nhiều "lỗi do thiết kế", thì yêu cầu của bạn không phải là những gì bạn nghĩ.


2

Không cần thiết. Có thể là lỗi được báo cáo là trong việc sử dụng phần mềm nằm ngoài phạm vi được xác định ban đầu của nó. Xem xét phần mềm được thiết kế để thực hiện A, B và C (đối với một ví dụ tầm thường, vẽ các đường thẳng, hình tam giác và hình chữ nhật). Nếu D là bước tiếp theo hợp lý (ví dụ: ngũ giác), người dùng có thể cho rằng nó cũng nên làm điều đó và việc không làm như vậy là một lỗi. Nhưng nếu điều này nằm ngoài phạm vi ban đầu, thì đó không phải là lỗi. Thay vào đó, nó có thể là một sự giám sát (lỗi) trong thiết kế, hoặc một vùng màu xám trong thông số kỹ thuật hoặc một nhóm các giả định khác nhau được đưa ra bởi nhà phát triển và người dùng.

(Chỉnh sửa - đã thêm nhận xét của tôi vào câu trả lời theo đề xuất của @Marjan Venema.


Tôi không thực sự thấy rằng được đánh dấu là một báo cáo lỗi. Giống như một đề nghị hoặc tính năng yêu cầu. (Mặc dù, với một số hệ thống theo dõi lỗi, dù sao nó cũng có thể được tính là một.)
Tối đa

1
Tôi đồng ý, hầu hết thời gian, nhưng nó có thể có nghĩa là sự giám sát (lỗi) trong thiết kế, hoặc một vùng màu xám trong thông số kỹ thuật hoặc một nhóm các giả định khác nhau được đưa ra bởi nhà phát triển và người dùng.
James McLeod

1
James, nếu bạn thêm nhận xét đó vào câu trả lời của bạn, toàn bộ câu trả lời sẽ trở nên tốt hơn.
Marjan Venema

1

Tôi tin rằng đó là một dấu hiệu xấu chủ yếu do thực tế là thiết kế không chung chung và yêu cầu của người dùng không được hiểu / phân tích đầy đủ.

Tôi thấy hai catogories của thiết kế, - Thiết kế một cách tình cờ. - Thiết kế theo ý định.

Thiết kế do tai nạn dẫn đến các vấn đề như vậy thường xuyên và không thể duy trì.


1

Tôi muốn thêm vào câu trả lời của maple_shaft về "sự thiếu hiểu biết" của người dùng. Bạn cũng phải lưu ý rằng 90% người dùng sẽ chỉ quan tâm đến trải nghiệm của chính họ và cách sử dụng hệ thống. Họ không quan tâm đến người dùng khác, tại sao họ nên? Công việc của chúng tôi là các nhà thiết kế / nhà phát triển phải nhận đầu vào từ tất cả các loại người dùng khác nhau và tạo ra thứ gì đó phù hợp với mọi người tốt nhất có thể. Hầu hết các lần bạn không thể tạo ra một giải pháp tối ưu cho mọi người.

Nhưng tất nhiên bạn cần đọc và đánh giá phản hồi từ người dùng của bạn! Rốt cuộc, họ là những người sử dụng sáng tạo của bạn!


0

Người dùng gửi yêu cầu lỗi thường không được tư vấn về thiết kế nên không có gì đáng ngạc nhiên khi họ xem mọi thứ là lỗi do các quyết định thiết kế có chủ ý. Đối với người dùng, bất cứ điều gì không hoạt động như mong đợi là một lỗi.

Tôi đã tìm thấy vấn đề thường là một dấu hiệu cho thấy BA hoặc PM chỉ nhận được yêu cầu từ người quản lý chứ không phải người dùng thực tế. Những gì các nhà quản lý mong đợi ở hệ thống thường khác rất nhiều so với những gì người nhập dữ liệu thực sự cần. Tôi được dạy thu thập dữ liệu trực tiếp từ người dùng thực tế, nhưng hầu hết các BA mà tôi gặp phải gần đây chỉ nói chuyện với các nhà quản lý (và nói chung là các nhà quản lý tương đối cao cấp tạ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.