Đến nội dung chính
Thư viện GKNơi khơi nguồn tò mò
Tiếng Việt

Sự phức tạp không biến mất: Định luật Tesler (Tesler's Law of Conservation of Complexity)

Camera trên điện thoại thông minh tự điều chỉnh tiêu điểm và độ sáng chỉ với một lần chạm màn hình. Trước đây, người chụp ảnh phải tự tính toán khẩu độ và tốc độ màn trập, nhưng giờ đây máy móc đảm nhận việc tính toán đó. Vậy sự phức tạp trong việc chụp ảnh đã thực sự biến mất hay chưa? Nguyên tắc trả lời câu hỏi này rằng “sự phức tạp không biến mất mà chỉ chuyển chỗ” chính là “Định luật Tesler (Tesler's Law of Conservation of Complexity)”.

Nói một cách đơn giản, định luật Tesler là nguyên tắc cho rằng “mọi hệ thống đều có một mức độ phức tạp không thể giảm thêm, và vấn đề còn lại là ai sẽ gánh vác nó”. Nguyên tắc này do Larry Tesler, nhà khoa học máy tính từng cải tiến giao diện người dùng tại Trung tâm Nghiên cứu Palo Alto của Xerox (Xerox PARC) và Apple, đúc kết, và còn được gọi là “định luật bảo toàn sự phức tạp”.

Trong tài liệu này, chúng ta sẽ lần lượt tìm hiểu bối cảnh ra đời của định luật Tesler, ba chủ thể cùng đảm nhận sự phức tạp, các ví dụ trong đời sống, cũng như những nguyên tắc và giới hạn khi vận dụng vào thiết kế.


Định luật Tesler: Thiết kế quyết định nơi đặt sự phức tạp

Định luật Tesler là gì?

Một người dùng hai tay cầm điện thoại thông minh, chuẩn bị chụp một cây đang nở hoa trong công viên sáng sủa

Tại Trung tâm Nghiên cứu Palo Alto của Xerox, Larry Tesler nghiên cứu phương thức chỉnh sửa “không chế độ (modeless)”, giúp người dùng không bị mắc kẹt trong một chế độ cụ thể. Đến năm 1980, ông chuyển sang Apple và tham gia xây dựng giao diện người dùng cho máy tính Lisa. Ông cũng nổi tiếng là người phổ biến cách cắt, sao chép và dán mà ngày nay ai cũng sử dụng.

Trong một bài hồi tưởng, Tesler cho biết khi có ý kiến phản đối rằng chức năng lưu tạm nội dung đã cắt sẽ làm tăng gánh nặng phát triển, ông đã lập luận rằng “để nhà phát triển gánh vác thì tốt hơn là để người dùng chịu”. Sau đó, ông hoàn thiện lập luận ấy và đúc kết vào khoảng năm 1984 như sau.

“Mọi ứng dụng đều có sự phức tạp vốn có không thể giảm thêm. Chỉ còn duy nhất một câu hỏi: ai trong số người dùng, nhà phát triển ứng dụng và nhà phát triển nền tảng sẽ xử lý nó?”

Từ “bảo toàn (Conservation)” xuất hiện trong tên định luật cũng mang ý nghĩa đó. Giống như năng lượng chỉ thay đổi hình thức mà không biến mất, sự phức tạp có thể được che khỏi màn hình nhưng không thể bị loại bỏ. Người ta cũng gọi đây là “lý thuyết đệm nước (Waterbed Theory)”, ví nó với chiếc đệm nước mà khi ấn xuống một bên thì bên kia sẽ phồng lên.


Ba chủ thể cùng đảm nhận sự phức tạp

Hai nhà phát triển ngồi trước máy tính xách tay trong văn phòng sáng sủa, vừa chỉ vào bản phác thảo các hình hộp và mũi tên đơn giản trên giấy vừa thảo luận

Theo cách đúc kết của Tesler, sự phức tạp không thể giảm bớt cuối cùng sẽ do một trong ba chủ thể sau đây đảm nhận.

  • Người dùng (User): Người dùng phải tự lựa chọn cài đặt, ghi nhớ trình tự và sửa lỗi.
  • Nhà phát triển ứng dụng (Application Developer): Người tạo ra sản phẩm suy nghĩ nhiều hơn và viết nhiều mã hơn để giảm công sức của người dùng.
  • Nhà phát triển nền tảng (Platform Developer): Hệ điều hành hoặc công cụ phát triển cung cấp sẵn các chức năng chung, giúp nhiều sản phẩm cùng chia sẻ một gánh nặng.
Sơ đồ giải thích định luật Tesler. Giảm sự phức tạp không cần thiết và chia sẻ gánh nặng không thể giảm bớt. Trong ví dụ giả định về nhập địa chỉ, người dùng đảm nhận việc chọn địa chỉ và xác nhận địa chỉ chi tiết; nhà phát triển ứng dụng thiết kế chức năng tìm kiếm các địa chỉ phù hợp và kiểm tra tính hợp lệ của dữ liệu nhập; nhà phát triển nền tảng cung cấp chức năng tìm kiếm địa chỉ dùng chung. Ba chủ thể có vai trò song song, đồng thời vẫn giữ lại các phương tiện để người dùng lựa chọn, xác nhận và chỉnh sửa.
Sơ đồ khái niệm tổng hợp các vai trò xử lý dựa trên định nghĩa gốc của Tesler. Sơ đồ phân biệt việc loại bỏ sự phức tạp không cần thiết với việc phân bổ gánh nặng của những công việc không thể giảm bớt. Ba chủ thể không phải là các giai đoạn tuần tự, và kích thước của các thẻ không biểu thị lượng hay tỷ lệ gánh nặng. Việc nhập địa chỉ là ví dụ giả định do chúng tôi tự xây dựng; cách phân bổ vai trò thực tế thay đổi tùy theo cấu trúc sản phẩm. Nguồn: Larry Tesler, “The Law of Conservation of Complexity”, Phát biểu ban đầu (khoảng 1984), Định nghĩa gốc

Trong những lựa chọn này, Tesler đặc biệt cảnh giác với việc chuyển gánh nặng sang người dùng. Trong một cuộc phỏng vấn được đăng trong sách của nhà thiết kế Dan Saffer, ông chỉ ra rằng nếu một triệu người dùng mỗi ngày đều lãng phí 1 phút vì sự phức tạp mà kỹ sư chỉ cần nỗ lực thêm một tuần là có thể loại bỏ, thì điều đó chẳng khác nào trừng phạt người dùng để giảm việc cho kỹ sư.

Định luật này có trọng tâm khác với định luật Hick (Hick's Law), theo đó càng có nhiều lựa chọn thì quyết định càng chậm, hay định luật Fitts (Fitts's Law), theo đó mục tiêu càng xa và càng nhỏ thì càng khó nhấn. Nếu hai định luật ấy là khuôn khổ đo lường thời gian người dùng cần bỏ ra, thì định luật Tesler đề cập đến vấn đề trách nhiệm trong việc quyết định giao sự phức tạp cho ai.


Hiểu sự dịch chuyển của sự phức tạp qua các ví dụ đơn giản

Giữa ban ngày sáng sủa, người lái xe đang cầm vô lăng, còn màn hình dẫn đường bên cạnh bảng đồng hồ hiển thị bản đồ có đường chỉ lộ trình

Chúng ta có thể dễ dàng nhận thấy sự phức tạp chuyển chỗ trong những dịch vụ sử dụng hằng ngày.

(1) Ô tìm kiếm
Người dùng chỉ nhập vài ký tự, nhưng phía sau là hàng loạt phép tính để sửa lỗi gõ, gợi ý từ khóa và xếp hạng kết quả. Hệ thống đã đảm nhận thay người dùng công sức nghĩ ra từ khóa chính xác.

(2) Nhập địa chỉ
Màn hình tự điền phần địa chỉ còn lại chỉ sau khi nhập mã bưu chính hoặc vài ký tự của tên đường là kết quả của việc chuyển gánh nặng viết chính xác một địa chỉ dài sang phía dữ liệu và phát triển.

(3) Ô tô và chỉ đường
Trong cuốn “Living with Complexity” xuất bản năm 2010, Donald Norman giải thích rằng hệ thống máy tính trong ô tô ngày càng phức tạp qua từng năm, nhưng chính sự phức tạp ẩn bên trong ấy lại giúp việc lái xe trở nên đơn giản và an toàn hơn. Giờ đây, việc tính toán tuyến đường tốt nhất cũng do hệ thống dẫn đường đảm nhận thay cho người lái.

Trong cả ba ví dụ, công việc của người dùng đều nhẹ đi, nhưng thiết kế và tính toán ở phía tạo ra sản phẩm cũng nặng nề hơn tương ứng. Tổng lượng phức tạp vẫn giữ nguyên, chỉ có người gánh vác sức nặng ấy là thay đổi.


Ứng dụng và giới hạn trong thiết kế

Trong một phòng làm việc sáng sủa, nhà thiết kế sắp xếp vài tấm thẻ giao diện bằng giấy theo thứ tự trên bàn, bên cạnh máy tính bảng có màn hình trống, để tổ chức luồng thao tác

Để đưa định luật Tesler vào thiết kế, trước hết cần xác định phần phức tạp nào của công việc rốt cuộc không thể giảm bớt. Sau đó, nên chỉ giữ lại những phần người dùng nhất thiết phải tự quyết định, còn lại giao cho hệ thống đảm nhận thông qua các giá trị mặc định, tự động điền và hướng dẫn từng bước. Khi làm điều này, thay vì giả định một người dùng lý tưởng luôn hành động hợp lý, sẽ hiệu quả hơn nếu hiển thị hướng dẫn ngắn ngay tại nơi người dùng thực tế gặp vướng mắc, đúng vào lúc họ cần.

Tuy nhiên, che giấu toàn bộ sự phức tạp không phải là đáp án. Nếu che giấu quá mức, người dùng sẽ mất cách điều chỉnh theo ý muốn, vì vậy cần phân chia, chẳng hạn cung cấp hướng dẫn từng bước cho người mới và dành riêng phần cài đặt nâng cao cho người đã quen. Ngoài ra, nhà thiết kế giao diện Bruce Tognazzini cho rằng con người không dễ dàng chấp nhận việc sự phức tạp trong cuộc sống giảm đi. Khi chương trình trở nên dễ sử dụng hơn, người dùng sẽ thử sức với những công việc phức tạp hơn tương ứng.


Định luật Tesler cho chúng ta thấy rằng một màn hình trông đơn giản là kết quả của việc có ai đó gánh vác sự phức tạp thay cho người dùng, chứ không phải sự phức tạp đã bị loại bỏ. Vì vậy, có thể đánh giá một thiết kế tốt dựa vào việc nó đặt sự phức tạp ở đâu hơn là đã giảm được bao nhiêu.

Người tạo ra sản phẩm chủ động gánh vác trước phần gánh nặng mà người dùng phải chịu: đó chính là bước đầu tiên của thiết kế vì người dùng.