Hôm nay trước đó có một giao dịch bị thất bại trên tôi, hoàn toàn không liên quan đến dự án nào cả. Một số phê duyệt nào đó... không diễn ra, không rõ lý do, và tôi đã hơi bực bội trong một giây trước khi tiếp tục với ngày của mình như thường.
Sau đó, vì tò mò, tôi quay lại với tác vụ Newton Protocol và giao dịch bị lỗi đó cứ tiếp tục làm tôi bận tâm suốt thời gian, vì những lý do mà tôi không ngờ tới.
Vì vấn đề là ở chỗ thứ thực sự khiến tôi thấy kỳ lạ là—tôi nghĩ mình đã dành nhiều năm để coi "giao dịch thành công" là kết quả tốt và "giao dịch bị chặn" là phần khó chịu. Mọi trải nghiệm UX của ví, mọi lựa chọn thiết kế đều củng cố điều đó. Dấu tick xanh là tốt, lỗi màu đỏ là tệ. Nhưng khi ngẫm về cách tiếp cận phạm vi cấp quyền của Newton, tôi bắt đầu tự hỏi liệu mình có bị đảo ngược điều đó nhiều hơn mức tôi muốn thừa nhận hay không. Giao dịch bị chặn không phải là sự thất bại của hệ thống. Đôi khi đó là việc hệ thống đang làm đúng một việc hữu ích mà nó được thiết kế để thực hiện.
Phiên bản đơn giản của cơ chế — mọi người mặc định rằng công việc của một ví là thực thi những gì bạn yêu cầu, trơn tru, mỗi lần, và mọi thứ cản trở điều đó đều là trở ngại hoặc là một lỗi. Nhưng những gì thực sự xảy ra với các quyền được phân phạm vi là khác: ví không phải đang hỏi "liệu tôi có thể thực thi việc này không", mà đang hỏi "việc này có nằm trong phạm vi mà tôi đã đồng ý cho phép từ trước không". Khi nó không nằm trong phạm vi đó, việc từ chối không phải là một trục trặc, mà là lớp quyền đang hoạt động đúng như thiết kế. Tôi đã tự động xếp mọi hành động bị chặn vào nhóm “bực bội”, chứ không phải “đúng đắn”.

Nhưng đây là phần khiến tôi bận tâm, và tôi vẫn chưa vượt qua được. Nếu việc từ chối bắt đầu trông có vẻ bình thường và thậm chí còn “tốt”, thì làm sao để phân biệt giữa "bị chặn vì nó nằm ngoài phạm vi an toàn" với "bị chặn vì phạm vi được đặt sai ngay từ đầu"? Cả hai đều giống hệt từ phía người dùng — một giao dịch thất bại. Tôi đã nghĩ rằng việc ngồi lại suy ngẫm về ý này trong một thời gian sẽ giúp tôi phân biệt được điều đó. Nhưng không. Tôi thực sự không chắc người dùng được cho là sẽ biết cách phân biệt một lời từ chối “thông minh” với một lời từ chối bị “hỏng” như thế nào nếu không đào vào chính sách, mà hầu hết mọi người sẽ không làm.
Tại sao điều này quan trọng, tôi nghĩ, phụ thuộc rất nhiều vào việc ai đang xem giao dịch bị chặn. Với một người xây dựng (builder) hoặc ai đó đang kiểm tra logic phân quyền, việc từ chối là dữ liệu — hữu ích, được mong đợi, đôi khi còn là toàn bộ mục đích. Với một người dùng trung bình chỉ cố gắng làm một việc gì đó lặp lại, việc từ chối chỉ là trở ngại, dừng lại ở đó, bất kể nguyên nhân là gì. Cái khoảng cách giữa hai phản ứng đó trước đúng cùng một sự kiện khiến tôi thấy nó quan trọng hơn cả cơ chế bên trong.
Một khoảnh khắc nhỏ — sau giao dịch thất bại của chính tôi lúc trước, tôi thực sự đã đi kiểm tra phạm vi phê duyệt theo thói quen, kỳ vọng là do lỗi. Không phải. Tôi chỉ đặt nó quá hẹp từ vài tháng trước và quên mất. Vậy nên trong trường hợp của tôi, kết quả “an toàn” và kết quả “bực bội” thực ra là cùng một sự kiện, và chỉ có sự đãng quên của riêng tôi quyết định nó cảm giác như kiểu nào.
Dù sao thì. Không hạ cánh trên một đánh giá “sạch” ở đây. Có lẽ chỉ cần để mắt xem thông điệp từ chối có phát triển theo hướng thực sự giải thích bản thân hay vẫn mơ hồ như hiện tại.
@NewtonProtocol #Newt $NEWT