Developer tản mạn bút ký: " 5 whys tự hỏi tự trả lời"

Đã bao giờ bạn phát bực với những câu hỏi của mọi người xung quanh. Kiểu wtf hỏi thế cũng hỏi, đơn giản thế mà không biết.

Kĩ năng hỏi, đối với mọi người nói chung và developer nói riêng là rất rất quan trọng, câu hỏi đúng, sẽ giúp bạn hiểu rõ ngọn ngành vấn đề, tim phương hướng giải quyết. Chúng ta cùng lướt qua câu chuyện dưới đây chút nhé.

Vào một ngày đẹp trời, mà cũng không đẹp trời lắm, minh đi làm muộn, đến công ty tự dưng lại ngẫm nghĩ, sao mình đi làm muôn nhỉ?
Hỏi: Tại sao đi làm muộn ?

Đáp: Mọi hôm đẹp trời thì thời gian đi đều là 30 phút từ nhà đến cty, thế nhưng hôm lại 45 phút, wtf, do tắc đường quá
Hỏi: Tại sao đường lại tắc ?

Đáp: Vì đi vào tầm công nhân viên chức đi làm thì chả tắc, cộng với trời mưa nữa, nên tắc hơn mọi hôm là đúng rồi.
Hỏi: Vậy tại sao trời mưa, Đến lúc này thì mình đã bị mình đấm vào mặt 1 cái :))

Kết: Hôm nào trời mưa thì cố đi làm sớm hơn tí nhé.

Qua câu chuyện đi làm muộn của mình bên trên. thì cách đặt câu hỏi liên tiếp liên tiếp như thế đến khi ra vấn đề cốt lõi đã được thể hiện rất rõ ràng đó. Và không phải do mình xuất thần nghĩ ra đâu. Trên đây là nguyên tắc 5 Whys được phát triển bởi một bác người Nhật tên là Sakichi "Maria" Toyoda ban đầu dùng cho hãng Toyota. Nó là một trong những kĩ năng problem-solving cơ bản mà ta có thể ứng dụng để tìm ra nguyên nhân sâu xa của vấn đề

Các bước thực hiện:

  • Đặt ra vấn đề một cách cụ thể và chi tiết.
  • Đặt câu hỏi tại sao vấn đề đó lại xảy ra và trả lời.
  • Nếu bạn nghĩ đáp áp đó chưa phải là nguyên nhân cốt lõi (root cause), quay lại bước 1 với đáp án đó là vấn đề và làm cho đến khi nào toàn bộ team nghĩ rằng đó là nguyên nhân cốt lõi.
Ví dụ:

Vấn đề: Hệ thống ngừng hoạt động trong sáng nay.

1st Why: Vì sao hệ thống ngừng hoạt động sáng nay?

Bởi vì database server đột nhiên lăn ra chết.

2nd Why: Vì sao database server lại đột nhiên lăn ra chết?

Bởi vì có một câu query không timeout khiến cho các server không tìm thấy nhau.

3rd Why: Vì sao câu query đó không timeout?

Vì hệ thống của chúng ta cài đặt thời gian timeout là vô cực.

Tất nhiên là nếu bạn không nghĩ đó là root cause thì bạn hoàn toàn có thể tiếp tục hỏi Why, hỏi đến khi nào đồng bọn quay qua tán vỡ mặt thì thôi.

Một số chú ý

  • Cố gắng đừng trả lời theo kiểu "Bởi vì thằng A code cái chức năng gì mà câu query chạy đến 8 tiếng mới xong" hay "Thằng B cài đặt server kiểu gì mà set timeout là vô cực", hãy tập trung vào vấn đề thay vì con người.
  • Không bao giờ chấp nhận một root cause là "sai lầm con người", sai lầm con người hầu như lúc nào cũng có nhưng process sẽ là thứ giúp giảm bớt chúng.
  • Đừng kết luận hàm hồ, từng bước đặt câu hỏi và trả lời vấn đề.

Leave a reply

Success Comment, please wait admin approved

Your email address will not be published !

EST. READING TIME less than a minute
Category
STAT 201 Views
Shared Facebook Twitter Reddit