1 điểm bởi GN⁺ 3 giờ trước | 1 bình luận | Chia sẻ qua WhatsApp
  • Con số 98% có thể trông cao đối với kết quả mang tính ngoại lệ như trúng xổ số hay đạt điểm cao nhất trong kỳ thi, nhưng trong những lĩnh vực vốn phải hoạt động mặc định như website thì có thể vẫn là chưa đủ
  • Trong các tình huống gắn với mức kỳ vọng cơ bản như nhà hàng không gây ngộ độc thực phẩm, người sử dụng lao động trả lương đúng hạn, hay khách hàng thanh toán trước khi rời đi, tỷ lệ thất bại 2% cũng trở thành thiệt hại lặp đi lặp lại
  • Nếu một website dùng tính năng trình duyệt mới chỉ hoạt động với 98% dân số thì phép tính cho thấy khoảng 150 triệu người sẽ bị loại trừ
  • “Hỗ trợ 98% tính theo toàn bộ dân số” có thể khác với phân bố khách truy cập thực tế; với một website khách hàng, trong số các trình duyệt đã truy cập trong 1 năm gần đây, tỷ lệ hỗ trợ nested CSS chỉ khoảng 70%
  • Nếu tính năng mới không thể suy giảm chức năng một cách mượt mà, thì mức hỗ trợ 98% không còn là “được hỗ trợ rộng rãi” mà trở thành trạng thái không đáp ứng điều kiện tối thiểu cơ bản đối với một số người dùng

Khi nào 98% là không đủ

  • 98% mang ý nghĩa rất khác nhau tùy theo ngữ cảnh
    • Khi chơi xổ số, xác suất thắng 98%, hoặc trong kỳ thi, xác suất đạt điểm cao nhất 98% là một kết quả rất tốt
    • Nếu khách ăn ở nhà hàng chỉ có 98% khả năng tránh bị ngộ độc thực phẩm, thì mỗi tháng hoặc mỗi tuần vẫn sẽ có người bị bệnh
    • Nếu người sử dụng lao động chỉ có 98% khả năng trả lương, hoặc khách hàng chỉ có 98% khả năng thanh toán trước khi rời nhà hàng, thì điều đó khó có thể chấp nhận
  • Trong các tình huống gắn với kỳ vọng cơ bản, tỷ lệ thất bại 2% cũng là vấn đề lớn
    • Nếu website chỉ hoạt động với 98% số người thì sẽ không hoạt động với khoảng 150 triệu người
    • Nếu một thay đổi trên website chỉ hoạt động với 98% khách truy cập thì về thực chất cũng giống như đẩy 2% người dùng hiện tại ra ngoài

Khác biệt giữa tỷ lệ hỗ trợ trình duyệt và khách truy cập thực tế

  • Tỷ lệ hỗ trợ tính theo dân số chung có thể khác với tỷ lệ hỗ trợ của khách truy cập thực tế vào website
    • Một tính năng có thể hoạt động với 98% toàn bộ dân số, nhưng với người dùng thực tế của một website cụ thể thì chỉ hoạt động với 70%
  • Trường hợp nested CSS cho thấy rõ sự khác biệt này
    • nested CSS là tiêu chuẩn từ năm 2023, nhưng với một số website cụ thể, nhận định rằng có thể “dùng an toàn” chưa chắc đã đúng nguyên vẹn
    • Khi kiểm tra phân bố trình duyệt trong 1 năm gần đây của một website khách hàng, các trình duyệt truy cập hỗ trợ tính năng CSS mới này chỉ chiếm khoảng 70%
    • Một tính năng nhìn chung có vẻ là “được hỗ trợ rộng rãi” nhưng vẫn có thể loại trừ 30% khách truy cập của chính website đó
  • Kỹ thuật vững chắc gần với việc xử lý các trường hợp ngoại lệ một cách mượt mà hơn là chỉ hoạt động với đa số
    • Nếu tính năng mới không thể suy giảm chức năng một cách mượt mà, thì mức hỗ trợ 98% sẽ vẫn là trạng thái không đáp ứng điều kiện tối thiểu cơ bản đối với 2% người dùng

1 bình luận

 
Các ý kiến trên Hacker News
  • 98% nhiều khi cũng là đủ
    Nếu một kế hoạch kinh doanh chỉ khả thi khi nhất thiết phải chiếm được nhiều hơn 98% thị trường, thì đó vốn đã là một kế hoạch thất bại, và khả năng chuyện đó xảy ra là rất thấp.
    Như mọi khi, đây là vấn đề “còn tùy tình huống”. Nếu nhóm người dùng nhìn chung không rành công nghệ, có thể bạn sẽ phải hỗ trợ cả những trình duyệt hơn 10 năm tuổi không còn được cập nhật; còn nếu không, có khi chỉ cần quan tâm đến những người dùng máy tính có thể cập nhật trình duyệt ít nhất khoảng mỗi năm một lần.
    Cuối cùng, sự đánh đổi là độ phức tạp của mã và thời gian phát triển so với thị trường lớn hơn, và mỗi công ty phải tự đánh giá riêng.

    • Với tư cách một cựu đầu bếp, từng làm ở 2 nhà hàng Michelin 2 sao, tôi thấy chỉ 5% thôi cũng đã hơn cả đủ, thậm chí là tuyệt vời.
      Có câu rằng “nếu nó hoạt động với 98% người dùng thì vẫn có khoảng 150 triệu người không dùng được”, nhưng nếu trong một tối bạn chỉ nấu được cho 70 người, thì ngay từ đầu bạn cũng không thể phục vụ toàn bộ 150 triệu người không có quyền truy cập trình duyệt mới nhất. Những người có thể dùng trình duyệt mới nhất mà vẫn không dùng có lẽ cũng không thích đồ ăn của tôi cho lắm.
      Để một nhà hàng sống sót, bạn không cần làm hài lòng 8 tỷ người; chỉ cần làm hài lòng khoảng 1.000 người sẽ tiếp tục quay lại vì ngày kỷ niệm, sinh nhật, hay niềm vui từ những món ăn sáng tạo.
      Khi làm đầu bếp trên du thuyền, tôi chỉ cần làm hài lòng 10 người, và tôi dùng cách để cả thủy thủ đoàn lẫn khách ăn cùng một món. Vì không phụ thuộc vào công ty cung ứng mà tự đi mua thực phẩm, chi phí ăn uống hằng tháng khi khách ở trên tàu trong một tháng giảm từ khoảng 30.000 USD xuống còn 10.000 USD. Khoảng năm 2005, nguyên liệu ở St. Barts được vận chuyển bằng đường hàng không hằng ngày từ Pháp nên rất đắt, nhưng nhờ vậy tôi có thể phục vụ cả thủy thủ đoàn những món như Chateaubriand hay osso buco.
      Vì thế, những món cân bằng, nhiều chất xơ và lành mạnh mà tôi muốn ăn mỗi ngày đã trở thành đồ ăn hằng ngày của tất cả mọi người.
      Có người hỏi chẳng phải khách hay chủ tàu sẽ nói họ muốn ăn gì mỗi ngày sao; người chồng là CEO của một công ty Fortune 500 và sau khi nghỉ hưu vẫn là chủ tịch hội đồng quản trị. Ông ấy là người mỗi ngày đưa ra các quyết định trị giá hàng tỷ đô la, và vợ ông ấy cũng rất bận. Việc trả lời thực đơn bữa tối mỗi ngày là một trong những việc họ ít muốn làm nhất, nên họ ủy quyền quyết định đó cho tôi. Tôi luôn làm những món tôi muốn ăn, và lần nào cũng đúng.
      Làm hài lòng tất cả mọi người là bất khả thi. Tốt nhất là đừng cố. Cố quá rồi bạn sẽ hỏng.
    • Đọc bài xong tôi có cảm giác “lại là kiểu lời khuyên gia trưởng đầy thiện chí giả vờ như ta có tài nguyên, thời gian và tiền bạc vô hạn”.
      Ai từng phát triển website hay di động đều biết tổ hợp trình duyệt và nền tảng nhiều khủng khiếp, và việc hỗ trợ cả cái đuôi dài các cấu hình đôi khi gần như bất khả thi, hiệu quả so với chi phí cũng gần như bằng không. Trước đây khi vận hành vài web app, tôi cũng gặp khá nhiều lỗi do các plugin trình duyệt bị hỏng, hoặc đôi khi độc hại. Không thể kiểm tra mọi tổ hợp plugin trình duyệt tùy ý xem có hoạt động với trang của tôi hay không.
      Rốt cuộc, vì điều này thật sự tùy tình huống, nên tôi không thích cách bài viết đưa ra một chỉ dẫn áp dụng hàng loạt như vậy. Nếu 2% người dùng Gmail đột nhiên không đăng nhập được, đó là một sự cố lớn ảnh hưởng tới hàng chục triệu người. Nhưng như châm ngôn “bạn không phải Google”, với nhiều trang thương mại điện tử nhỏ, cố sửa lỗi cho một người dùng trình duyệt hơn 10 năm tuổi là điều vô lý. Như bình luận khác nói, kiểu người dùng này dù sao cũng thường thuộc nhóm có khả năng chuyển đổi mua hàng thấp nhất.
    • Đó là phép tính bỏ qua hiệu ứng mạng lưới. Người ăn chay chiếm dưới 10% dân số Mỹ, nhưng nếu nhà hàng không hề có món chay, bạn không chỉ mất 10% đó mà mất cả nhóm đi ăn có ít nhất một người ăn chay.
      Tương tự, nếu một website có dù chỉ một chút hiệu ứng mạng xã hội, thì khi bỏ qua một phần dân số, mức giảm người dùng sẽ lớn hơn nhiều so với tỷ lệ bị ảnh hưởng trực tiếp.
      Ngay cả khi bản thân chức năng của trang không có yếu tố xã hội, mọi doanh nghiệp đều chịu ảnh hưởng của hiệu ứng mạng lưới từ truyền miệng. Con người chia sẻ trải nghiệm tiêu cực tốt hơn nhiều so với trải nghiệm tích cực, nên nếu 1 trong 50 người cảm thấy trang bị hỏng, một phần đáng kể phản hồi trực tuyến sẽ bị lấp đầy bởi ý kiến tiêu cực, gây hại cho danh tiếng trên toàn thị trường chứ không chỉ trong 2% đó.
      Trong kinh doanh, bạn phải nỗ lực ngay cả để giành được một phần nhỏ của tổng thị trường có thể tiếp cận. Cố ý thu hẹp tổng thị trường có thể tiếp cận vì quyết định chiến lược muốn tập trung vào một thị trường cụ thể thì không sao, nhưng loại trừ người khác mà không có lý do rõ ràng thì vô nghĩa. Một quán BBQ ở Texas không có món chay thì ổn vì chẳng ai đến đó với kỳ vọng như vậy, nhưng một nhà hàng thông thường mà không có lấy vài món chay thì thật ngớ ngẩn. Việc các lập trình viên web loại trừ người dùng chỉ vì lười dùng những cách đã hoạt động tốt suốt 20 năm qua và muốn dùng công nghệ mới bóng bẩy còn ngớ ngẩn hơn.
    • Đáng tiếc là một số doanh nghiệp là dịch vụ thiết yếu, nên người ta không có lựa chọn không dùng, hoặc chi phí để không dùng là rất lớn.
      Ví dụ như Uber, các website liên quan đến thị thực/di trú, hay trang đặt vé của hãng hàng không giá rẻ.
    • Mỗi lần có thể là một 2% khác nhau. Rốt cuộc, nếu gặp 2% đó 50 lần, bạn sẽ chạm tới 100% người dùng ít nhất một lần, và mọi người dùng có thể cảm thấy phần mềm đó chỉ hoạt động 98% thời gian. Khi đó sẽ hình thành danh tiếng là một nhà cung cấp không đáng tin cậy.
      Tất nhiên thường thì không cực đoan đến vậy, nhưng vẫn cần cân nhắc. Danh tiếng xấu lan nhanh hơn danh tiếng tốt.
      Và nếu thứ gì đó đã được hỗ trợ sẵn, bạn chỉ cần đừng làm hỏng nó. Thường việc đó dễ hơn nhiều so với làm cho nó hoạt động ngay từ đầu.
  • Năm nay sau Giáng sinh, khi tôi dọn cây thông khỏi phòng khách, trong lúc di chuyển thì lá kim rơi vãi khắp nơi. Tôi quét dọn, nhưng lần đầu vẫn sót vài chỗ; quét lần hai rồi vẫn còn vài chiếc.
    Lúc đó tôi chợt nhận ra rằng loại bỏ hơn 99% số lá kim vẫn hoàn toàn chưa đủ. Có vẻ nhiều việc dọn dẹp cũng như vậy. Vì chỉ một chút bừa bộn rất nhỏ cũng đã nổi bật về mặt thị giác. Thậm chí càng tiến gần 100%, phần bừa bộn còn sót lại càng trông nổi bật hơn.

    • Mỗi lần nhổ cỏ trong sân tôi đều có đúng cảm giác đó. Gom được cả đống cỏ dại rồi nhìn lại chỗ vừa làm, vẫn thấy cỏ dại ở khắp nơi.
    • Giống như xà phòng kháng khuẩn nói rằng diệt 99,9% vi khuẩn. Cũng không rõ đó là tính theo số lượng cá thể vi khuẩn hay theo chủng loại, nhưng dù theo cách nào thì phần còn lại có lẽ vẫn là hàng triệu con và cũng có nhiều loại.
  • Tôi đồng ý với tinh thần chung, nhưng vấn đề ở đây không phải là lập trình viên không quen với thống kê, mà là một sự thật đơn giản rằng hầu hết mọi thứ này đều xoay quanh lợi nhuận
    Tuần trước tôi định mua vé cho một sự kiện, nhưng kênh chính thức duy nhất là Ticketmaster. Họ bắt buộc xác minh tài khoản bằng số điện thoại, nhưng nhà cung cấp tin nhắn mà họ dùng không thể gửi mã đến số của tôi. Tôi cũng thử vài số ở nhà nhưng đều thất bại
    Tìm kiếm thì thấy rất nhiều người gặp cùng vấn đề, nên rõ ràng đó là vấn đề đã biết, nhưng thực tế tôi chẳng làm được gì. Với họ, đó chỉ là một phép tính đơn giản. Một nhà cung cấp SMS khác phủ được quốc gia EU nhỏ bé của tôi có thể đắt hơn. Cũng có thể họ muốn tránh những kẻ lừa đảo từng lợi dụng nhà mạng di động của tôi trước đây. Dù là gì đi nữa, nhiều khả năng chi phí khắc phục cao hơn doanh thu vé bị mất
    Trừ khi cơ quan nhà nước bắt buộc, họ không mấy quan tâm liệu tôi có xem được sự kiện đó hay không

    • Hạ tầng không nên vận hành thuần túy chỉ vì lợi nhuận. Cách dễ nhất để tăng lợi nhuận cho một nhà vận hành đường sắt là cắt các tuyến nối những vùng nhỏ và nông thôn. Vì chúng kém hiệu quả kinh tế hơn nhiều so với phục vụ các thành phố lớn. Vùng phủ sóng điện thoại di động và Internet băng rộng cũng vậy. Lựa chọn có lợi nhuận nhất là hoàn toàn không phủ sóng vài phần trăm dân số
      Có một ngưỡng mà công nghệ trở thành nền tảng để tham gia xã hội. Khi đó cần phải được quản lý để mọi người đều được cung cấp
    • Mỗi khi chủ đề này xuất hiện trên HN, luôn có những lời biện minh quen thuộc. Khó dùng phần mềm chạy được ở mọi nơi, kiểm thử trên hơn một trình duyệt mất quá nhiều thời gian, thuê người port sang nền tảng X quá đắt, đang bootstrap gấp nên không có thời gian hỗ trợ nhóm người Y, tại sao phải kiểm thử hệ thống cũ trong khi mọi người chỉ cần nâng cấp lên bản mới nhất, đại loại vậy
      Thái độ này xuất phát từ đặc quyền của những người chưa từng là 2% người dùng đó. Rất dễ nghĩ như vậy cho đến một ngày chính chúng ta trở thành 2% ấy và trực tiếp không dùng được hệ thống
      Khi làm ứng dụng iOS, tôi cứ bực mình vì tech lead và quản lý sản phẩm khăng khăng chỉ hỗ trợ phiên bản OS chính hiện tại và phiên bản ngay trước đó. Các kỹ sư dành thời gian để gỡ bỏ hỗ trợ iOS X-2 thay vì sửa lỗi, cải thiện hiệu năng hay phát triển tính năng. Đó là những đoạn mã không cản trở refactoring, không đặc biệt nhiều lỗi, cũng không phá hỏng kiến trúc. Với tôi, nó chỉ giống như làm khổ người dùng, và lúc đó tôi đã không hiểu, bây giờ cũng vẫn không hiểu
      Giờ tôi đang dùng một chiếc điện thoại 8 năm tuổi, và đúng như dự đoán, khoảng một nửa ứng dụng trên App Store không còn chạy nữa vì thái độ này. Vậy nên giờ thì chắc chắn tôi có vẻ đã nằm trong 2% rồi
    • Khi nói “động cơ lợi nhuận”, nguyên lý nền tảng thực ra gần với chủ nghĩa vị lợi hơn. Đó là cố gắng đem lại lợi ích lớn nhất cho số đông nhất, còn lợi nhuận chỉ là một chỉ báo thay thế không hoàn hảo cho điều đó
  • Ý rộng hơn là phần trăm có thể gây hiểu lầm. Vì thế nó thường được dùng như vậy và khiến mọi thứ trông có vẻ tốt hơn
    Thông thường cách chính xác hơn là dùng cách biểu diễn theo tỷ lệ xác suất như “1 trong 50 người” thay vì 98%. Phần trăm có một dạng điểm kỳ dị ở hai đầu, và thay đổi nhỏ về con số có thể tạo ra khác biệt lớn trong thực tế. Tỷ lệ thành công từ 98% lên 99% nghe có vẻ không đáng kể, nhưng đó là việc số lần thất bại giảm từ 1 trong 50 người xuống 1 trong 100 người. Tức là hiệu quả đã tăng gấp đôi

    • Tôi nghĩ đó chẳng phải là trọng tâm của bài viết sao
    • Bối cảnh sẽ khác tùy kết quả mong muốn nằm ở đầu nào của xác suất
      SPF là một ví dụ như vậy. SPF 30 cho 1/30, tức 3%, tia cực tím đi qua và chặn 29/30, tức 97%. SPF 50 cho 1/50, tức 2%, đi qua và chặn 49/50, tức 98%. Trong trường hợp này, biểu diễn bằng mẫu số cho thấy hiệu quả trực quan hơn nhiều
      So sánh SPF 30 với 50 thể hiện mức tăng hiệu quả tốt hơn so với so sánh 97% với 98%
      Cũng có thể biểu diễn bằng lượng đi qua, nhưng tên là Sun Protection Factor chứ không phải Sun Transparency Factor
    • Trong nhiều trường hợp, tỷ lệ cược tốt hơn xác suất. Đặc biệt là khi khác biệt nhỏ ở hai đầu của xác suất lại có nghĩa là khác biệt lớn trong thực tế
      Nhưng cũng có trường hợp khác biệt nhỏ ở hai đầu thực sự cũng nhỏ. Đặc biệt là với giá trị kỳ vọng. Ví dụ, hãy xét trường hợp nhận 100 đô la với xác suất 98% và nhận 100 đô la với xác suất 99,9%
      Giá trị kỳ vọng của trường hợp sau chỉ cao hơn trường hợp trước một chút. Chênh lệch là 99,9 đô la trừ 98 đô la, tức 1,90 đô la. Trong khi đó chênh lệch về tỷ lệ cược lại rất lớn. (0.999/0.001)/(0.98/0.02)≈20.39. Tức là xác suất 99,9% có tỷ lệ cược 999 ăn 1, còn xác suất 98% là 49 ăn 1, nên cái trước cao hơn hơn 20 lần, nhưng lợi nhuận kỳ vọng thì gần như như nhau
    • Bạn đã nâng hiệu quả từ 98 lên 99, đó không phải là thay đổi lớn. Điều thực sự làm được là giảm một nửa phần không hiệu quả, và đó là thay đổi lớn
  • Bài liên quan: Science is a strong-link problem
    https://news.ycombinator.com/item?id=35712694
    Những thứ như xổ số là vấn đề liên kết mạnh. Giá trị của hệ thống bằng giá trị của liên kết mạnh nhất. An toàn thực phẩm là vấn đề liên kết yếu. Độ an toàn của bữa ăn được quyết định bởi miếng ăn kém an toàn nhất
    Tác giả có vẻ ủng hộ tiêu chuẩn liên kết yếu đối với CSS. Ý là việc đa số nhìn thấy gì quan trọng hơn, và một hai lần thành công lớn cũng không bù được cho thất bại

  • Tôi nhớ đến bài hát “Two Out of Three Ain’t Bad” của Meat Loaf. Ở Nhật, nó được phát hành với tựa kiểu 66%の誘惑 “66% is Good Enough” https://www.discogs.com/release/8303076

    • Tôi nghĩ 誘惑 gần nghĩa với “quyến rũ, cám dỗ, sự dụ dỗ” hơn
  • Tôi nghĩ vấn đề đại khái có hai loại. Những vấn đề có thể nhận điểm từng phần và những vấn đề không thể
    Ví dụ nhà hàng thuộc loại không thể nhận điểm từng phần. 98% thức ăn an toàn là chưa đủ; hoặc tất cả, hoặc vô nghĩa. Tiền lương nhân viên cũng vậy: hoặc đầy đủ, hoặc thành vấn đề lớn. Chỉ cần lỡ một kỳ trả lương thôi cũng đã là vấn đề cực lớn
    Nhưng CSS của một website có thể nhận được một mức điểm từng phần nào đó. Dù không hoàn hảo, về lý thuyết nó vẫn có thể đem lại một phần giá trị
    Khi đo tỷ lệ phần trăm “hoàn thành”, việc biết mình đang xử lý loại vấn đề nào là thực sự quan trọng

  • Tôi nhớ đến một thống kê rằng nếu một số món đồ họ muốn mua không còn được bán nữa, phần lớn khách hàng sẽ không đến một siêu thị cụ thể nữa
    Việc không nhập một thương hiệu chocolate spread nào đó có thể trông như chuyện nhỏ, nhưng nếu vì thế mà một khách hàng cũng không mua 12 món thực phẩm khác họ cần ở cửa hàng đó, thì việc mặt hàng bị ngừng bán chỉ chiếm 2% tổng số cũng chẳng có nhiều ý nghĩa. Danh mục hàng hóa của siêu thị ổn định không phải vì không ai tạo ra sản phẩm mới, mà vì ngay cả thay đổi với tỷ lệ nhỏ cũng làm khách hàng khó chịu
    Nếu tôi không đặt hàng được trên một website nào đó, tôi sẽ không thử nữa. Tuần sau trình duyệt ESR có thể được cập nhật và hoạt động, nhưng đến lúc đó tôi đã không còn nhấp vào liên kết đó trong kết quả tìm kiếm nữa

    • Aldi chẳng phải đang đi ngược lại lý thuyết đó sao?
  • Một phần của vấn đề là các website của chính phủ Mỹ và chính phủ Anh dùng “quy tắc 2%” và chính thức chỉ hỗ trợ 98%
    3 năm trước có nói rằng thị phần Firefox 2,2% đã tiến gần đến nguy cơ bị ngừng hỗ trợ trên các website chính phủ, còn giờ đã giảm xuống 1,9%
    https://news.ycombinator.com/item?id=36776603
    Theo https://analytics.usa.gov/, “trong 30 ngày qua có 1,66 tỷ phiên”. Nếu tính đúng thì 2% là 33 triệu phiên

    • Đây là vấn đề của cách tiếp cận dựa trên phần trăm. Trong hầu hết trường hợp, chọn 3 implementation hàng đầu sẽ tốt hơn. Với ví dụ trình duyệt, cách đó sẽ bao gồm WebKit, Blink, Gecko; dù sao long tail cũng bị bỏ qua theo cách nào đi nữa, nên như vậy nhiều khả năng là đủ
    • Nếu ngừng hỗ trợ Firefox, điều đó có nghĩa là chủ động chặn Firefox sao?
  • Tôi không thích việc đối xử với con người như những con số
    98% không nhiều cũng không ít. Nó chỉ đơn giản là sai
    Nếu tôi là một trong 2% đó, thì với tôi đó là tất cả. Có thể có lý do chính đáng khiến tôi nằm trong 2% đó. Và thái độ không quan tâm đến điều đó có thể là sai
    Tôi cho rằng một website chỉ hoạt động với 2% người dùng vì những lý do đúng đắn còn tốt hơn một website không hoạt động với 2% người dùng vì những lý do sai lầm