Con người không nên phải học cách suy nghĩ như hệ thống
Complexity nên thuộc về system trước khi nó thuộc về human.
Start With the Human — Đừng bắt đầu bằng sản phẩm. Hãy bắt đầu bằng con người.
Software thường expose internal model ra user
Field, status, permission, folder, role, object, workflow — nhiều khi đó là cách system tổ chức chính nó, không phải cách con người nghĩ về công việc.
Khi internal model bị đưa thẳng ra interface, user phải học architecture trước khi đạt được intention.
Internal structure should not automatically become human structure.
User không cần hiểu database để hoàn thành intention
Một người muốn gửi proposal, quản lý project, lưu thông tin hay chia sẻ profile không cần hiểu record, relation, schema hay storage model.
Nếu system bắt họ học các khái niệm nội bộ chỉ để hoàn thành một việc đơn giản, complexity đã bị export sai chỗ.
Users should understand their goal, not your architecture.
Internal complexity không phải user responsibility
System có thể rất phức tạp bên trong. Điều đó đôi khi là cần thiết.
Nhưng việc backend phức tạp không phải lý do để frontend bắt con người gánh cùng mức complexity.
Complex systems can still create simple human experiences.
Good defaults là một form của empathy
Default tốt giảm số decision mà user phải tự tạo từ đầu.
Nó không lấy đi quyền kiểm soát. Nó chỉ nói: system đã cố hiểu context đủ để không bắt bạn làm mọi thứ từ zero.
A good default is a small act of understanding.
Progressive disclosure giúp complexity xuất hiện đúng lúc
Không phải mọi option đều cần xuất hiện ngay từ đầu. Những control nâng cao có thể chỉ xuất hiện khi context cần.
Product tốt không giấu capability. Nó sắp xếp capability theo thời điểm human cần đến.
Show complexity when it becomes useful, not when it merely exists.
Language của system phải gần với language của human
Nếu user nghĩ theo project, đừng bắt họ nghĩ theo object. Nếu họ nghĩ theo người, đừng bắt họ nghĩ theo record. Nếu họ nghĩ theo việc cần làm, đừng buộc họ hiểu trạng thái kỹ thuật.
Naming là một phần của product architecture.
Use the user’s mental model before asking them to learn yours.
Good technology hấp thụ complexity thay vì export nó
System nên tự nối dữ liệu, giữ context, chọn default, xử lý state và làm rõ consequence khi có thể.
Human nên tập trung vào intention, judgment và meaning — những phần mà machine không nên thay thế.
Good technology absorbs complexity instead of exporting it to the user.
Gửi tôi khi tôi muốn giải thích system thay vì đơn giản hóa nó
Nếu một ngày tôi thấy mình viết tutorial dài chỉ để user hiểu flow, tôi muốn tự hỏi liệu problem có nằm ở user thật không.
Có thể documentation là cần thiết. Nhưng cũng có thể product đang yêu cầu con người học một internal logic đáng lẽ system phải che đi.
Giải thích tốt là hữu ích. Nhưng đơn giản hóa đúng nơi còn tốt hơn.
Do not teach the user your complexity before asking whether they should ever see it.