Định luật Kidlin: viết ra là giải được một nửa

8 phút đọc ·

Trong máy mình có một thể loại tin nhắn đặc biệt: những tin nhắn gõ xong rồi xoá, chưa bao giờ được gửi đi. Và mình dám cá dân dev nào cũng có một kho y chang vậy.

Chuyện thường diễn ra thế này. Mình kẹt một con bug, ngồi nhìn nó cả buổi chiều. Thử đủ cách, log đủ chỗ, vẫn bí. Cuối cùng đành xuống nước, mở khung chat lên định hỏi đồng nghiệp. Mà hỏi thì phải hỏi cho đàng hoàng — không ai muốn gửi đi một câu “ê code tao không chạy” rồi bị hỏi ngược hai chục câu — nên mình bắt đầu gõ tử tế: “Mình có cái hàm này, input là A, kỳ vọng ra B, nhưng thực tế nó ra C. Mình đã thử X rồi, thử Y rồi, cũng đã kiểm tra Z…”

Gõ tới chữ Z thì khựng lại. Ủa khoan. Mình chưa kiểm tra Z.

Alt-Tab qua kiểm tra Z. Ra bug. Quay lại khung chat, lặng lẽ nhấn giữ phím xoá, đóng cửa sổ, và không một ai trên đời biết chuyện gì vừa xảy ra =))

Định luật Kidlin

Cái hiện tượng “gõ tin nhắn xong tự ra đáp án” đó, hoá ra cũng có tên: định luật Kidlin (Kidlin’s Law):

“If you can write the problem down clearly, the matter is half solved.”
Nếu bạn viết được vấn đề ra một cách rõ ràng, thì vấn đề đã được giải quyết một nửa.

Nói nhỏ chỗ này: mình đã thử tra xem ông Kidlin là ai, sống thời nào, làm nghề gì — và tra không ra. Các bài viết trên mạng cứ trích qua trích lại chứ không ai chỉ được nguồn gốc. Có khi ông Kidlin không tồn tại thật, hoặc tồn tại mà bị chú Murphy ở bài trước giấu mất hồ sơ =)) Nhưng thôi kệ, ông có thật hay không thì cái định luật vẫn đúng — và đúng theo kiểu rất dễ tự kiểm chứng, ngay tối nay luôn cũng được.

Vì sao viết ra lại “thần kỳ” vậy?

Mình nghĩ nó không thần kỳ gì đâu, nó chỉ là chuyện dung lượng.

Bộ nhớ làm việc của não người bé một cách đáng thương: cùng lúc chỉ giữ nổi vài mẩu thông tin. Trong khi một vấn đề đang rối thường gồm cả chục mẩu — dữ kiện, giả định, thứ đã thử, thứ chưa thử, cộng thêm cảm giác bực bội và nỗi lo trễ deadline chen vào chiếm chỗ. Kết quả là trong đầu, tất cả trộn thành một cục “khó chịu” chung chung. Não giữ cục đó thì được, nhưng nhìn rõ từng phần bên trong thì chịu — giống chục tab trình duyệt mở cùng lúc, tab nào cũng load được một nửa.

Viết ra giải quyết đúng chỗ đó, theo hai cách. Một, tờ giấy trở thành bộ nhớ ngoài: mẩu nào viết xuống rồi thì não được phép buông, dành chỗ cho việc suy nghĩ thay vì việc ghi nhớ. Hai, chữ viết ép mình phải tuyến tính — câu trước rồi mới tới câu sau. Muốn viết “kỳ vọng ra B nhưng thực tế ra C” thì phải trả lời được B là gì, C là gì, không lấp lửng được. Chính động tác ép rõ ràng đó lột dần từng lớp sương mù. Nhiều khi lột tới lớp thứ ba là thấy đáp án nằm sẵn đó từ đầu, chỉ bị che mất.

Dân lập trình có hẳn tên gọi cho trò này: rubber duck debugging — giải thích code của mình cho một con vịt cao su nghe, và tự tìm ra bug trong lúc giải thích. Con vịt không biết gì về code cả. Nó chỉ ngồi đó. Nhưng nó ép mình phải nói thành lời cho mạch lạc, và vậy là đủ. Tin nhắn không-bao-giờ-gửi của mình chính là con vịt phiên bản chat đó thôi.

Thời AI, Kidlin còn đúng gấp đôi

Có một chỗ mình thấy định luật Kidlin ứng nghiệm mỗi ngày mà ít ai để ý: lúc hỏi AI.

Mình xài Claude với ChatGPT khá thường xuyên cho công việc. Và quy luật rõ như ban ngày: hỏi mơ hồ thì nhận về câu trả lời mơ hồ, dài dòng, chung chung. Còn khi mình chịu khó gõ tử tế — bối cảnh là gì, mình muốn gì, ràng buộc ra sao, đã thử gì rồi — thì chất lượng câu trả lời khác hẳn. Nhưng cái hay nhất nằm ở chỗ này: nhiều lần gõ xong cái prompt tử tế đó, mình chưa kịp bấm gửi đã tự thấy đáp án. Y chang vụ tin nhắn cho đồng nghiệp. AI chưa làm gì hết mà vấn đề đã giải được một nửa — nửa đó là công của Kidlin, không phải của con bot =))

Nên giờ mình hay nói vui: kỹ năng “prompt engineering” mà người ta bàn tán rôm rả, một nửa của nó thật ra là kỹ năng có từ trước khi máy tính ra đời — kỹ năng viết vấn đề ra cho rõ.

Cái blog này là con vịt cao su của mình

Nói thiệt, một trong những lý do mình mần blog là vì định luật Kidlin, dù lúc bắt đầu mình chưa biết tên nó.

Nhiều thứ mình tưởng mình hiểu — Zone 2 là gì, tại sao phải backup, thói quen xây kiểu gì — tới lúc ngồi viết thành bài cho người khác đọc mới lòi ra là hiểu lỗ chỗ. Đang viết ngon trớn tự nhiên khựng lại: ủa chỗ này chính xác là sao ta? Thế là phải đi tra lại, đọc lại, hiểu lại cho tới nơi mới viết tiếp được. Viết trơn tru nghĩa là hiểu thật. Viết cứ vòng vo là dấu hiệu đang gõ về thứ mình chưa nắm. Blog với mình vừa là chỗ chia sẻ, vừa là cái máy phát hiện “tưởng là hiểu” — mà máy này chạy chính xác lắm =))

Kidlin cho những cục lo không tên

Kidlin không chỉ xài cho bug với công việc. Chỗ mình thấy nó thấm nhất lại là mấy chuyện đời thường.

Từ ngày có con nhỏ, thỉnh thoảng đầu mình xuất hiện một cục lo không tên — trộn giữa chuyện tiền, chuyện con, chuyện công việc, chuyện sức khoẻ, mỗi thứ một ít, không thứ nào rõ hình. Cục đó khó chịu ở chỗ nó không giải được, vì có biết nó là cái gì đâu mà giải. Nó chỉ ngồi đó, chiếm chỗ, nặng đầu, nhất là lúc 11 giờ đêm chuẩn bị ngủ.

Những lúc vậy mình lôi giấy ra viết hết xuống, không cần văn vẻ, gạch đầu dòng cũng được. Và lần nào cũng vậy: cục sương mù to đùng trong đầu, viết ra giấy thì hoá ra chỉ có bốn năm dòng. Trong đó thường hai dòng là chuyện có thể làm gì đó được, hai dòng là chuyện ngoài tầm kiểm soát — lo cũng vậy à — và một dòng viết ra xong tự thấy… ủa chuyện này có gì đâu mà lo =)) Vấn đề chưa chắc giải xong, nhưng cục lo có hình dạng rồi. Mà thứ có hình dạng thì bớt đáng sợ hơn thứ vô hình nhiều lắm.

Ba câu để xài Kidlin ngay

Nếu bạn muốn thử, đây là công thức tối giản mình hay xài. Trước khi mang một vấn đề đi hỏi ai — sếp, đồng nghiệp, bác sĩ, hay AI — viết nó ra thành đúng ba câu:

Một: chuyện gì đang xảy ra (sự thật, không phán xét). Hai: mình muốn nó ra sao. Ba: mình đã thử những gì rồi.

Chỉ vậy thôi. Một là bạn tự ra đáp án giữa chừng như mình với cái tin nhắn không bao giờ gửi. Hai là bạn có trong tay một câu hỏi rõ ràng đến mức người được hỏi trả lời được ngay, đỡ tốn thời gian cả hai bên. Đằng nào cũng lời. Định luật gì mà chơi kiểu gì cũng thắng, hèn chi không tra ra tác giả — chắc ổng giấu tên để khỏi bị đòi tiền bản quyền =))

Viết ra giúp giải quyết vấn đề. Nhưng có những "vấn đề" tốt nhất là... đừng đụng vào vội. Bài tiếp theo nói về một định luật lười một cách khôn ngoan → Định luật Falkland: chưa cần quyết thì đừng quyết