✨Gỡ lỗi vịt cao su
thumb|Con [[vịt cao su trợ giúp người phát triển duyệt lại code]] Gỡ lỗi vịt cao su (tiếng Anh: Rubber duck debugging) là phương pháp gỡ lỗi sử dụng trong kỹ thuật phần mềm bằng cách trình bày lại thuật toán bằng ngôn ngữ tự nhiên.
Người ta nhận thấy rằng, khi chúng ta giải thích lại chi tiết những công việc chúng ta đã thực hiện với một vật vô tri, kẻ luôn biết "chịu khó lắng nghe, luôn luôn thấu hiểu", có thể giúp chúng ta bình tĩnh đánh giá khách quan những gì đã làm và có thể tìm ra các lỗi logic dễ dàng hơn. Nhiều lập trình viên đã có kinh nghiệm giải thích một vấn đề cho người khác, thậm chí có thể cho một người không biết gì về lập trình, và sau đó tìm ra giải pháp trong quá trình giải thích vấn đề. Khi mô tả những gì từng dòng code phải làm và quan sát những gì nó thực sự làm, bất kỳ sự không giống nhau nào giữa hai điều này đều trở nên rõ ràng. Nói một cách tổng quát hơn, việc giảng dạy một môn học buộc người giảng viên phải đánh giá lại nó từ những khía cạnh khác nhau và nhờ đó có thể mang lại sự hiểu biết sâu sắc hơn chính những gì mình giảng. Thay vì tìm một người chấp nhận lắng nghe mình, bằng cách sử dụng một đối tượng vô tri vô giác (vịt cao su), lập trình viên có thể cố gắng thực hiện điều này mà không cần phải làm phiền bất kỳ ai khác. Cách tiếp cận này đã được sử dụng để giảng dạy khoa học máy tính và kỹ thuật phần mềm, chẳng hạn như trong khóa học CS50 của Harvard và nhiều khóa học khác.
Lịch sử
thumb|right|Cửa sổ [[Vịt cao su trên Stack Exchange vào ngày 1 tháng 4 năm 2018]]
Khái niệm "Rubber Duck Debugging" xuất hiện lần đầu tiên ở trong cuốn "The Pragmatic Programmer" của Andy Hunt and David Thomas, trong đó một lập trình viên sẽ mang theo một con vịt cao su và gỡ lỗi mã của họ bằng cách buộc họ phải giải thích từng dòng một cho con vịt.
Con vịt cao su Quack Overflow mang theo thông điệp "Insights are often found by simply describing the problem aloud." có nghĩa là "Hiểu biết sâu sắc thường được tìm thấy bằng cách mô tả thành lời vấn đề một cách đơn giản."